]> git.llucax.com Git - z.facultad/75.42/euler.git/blob - calculo.h
Se agrega el modo del uso al informe y se cambia una corrida.
[z.facultad/75.42/euler.git] / calculo.h
1 /* vim: set et ts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Trabajo Práctico Número 1:
6  * Graficador de la solución de una ecuación diferencial por el método
7  * de Euler (explícito).
8  *
9  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
10  * Puede copiar, modificar y distribuir este programa bajo los términos de
11  * la licencia GPL (http://www.gnu.org/).
12  *
13  * Creado: sáb ago 23 16:59:01 ART 2003
14  *
15  * $Id$
16  */
17
18 #ifndef H_CALCULO
19 #define H_CALCULO
20
21 #include "tipos.h"
22
23 /**
24  * \ref integracion "Calcula" el siguiente paso de la función numérica.
25  * Obtiene el siguiente valor de \f$ f \f$, integrando numéricamente la \ref
26  * funcion "ecuación diferencial" por el \ref metodo "método de euler".
27  * \f[
28  *     f_{t + step} = f_{(step, f_t)} = f_t + \frac{500 - f_t}{30} \cdot step
29  * \f]
30  *
31  * \note Se pone en un macro para poder reemplazar fácilmente la función sin la
32  *       pérdida de velocidad que agrega la indirección de un llamado a una
33  *       función.
34  */
35 #define FUNCION(paso, ft) ((ft) + ((500.0 - (ft)) / 30.0) * paso)
36
37 /**
38  * \ref integracion "Calcula" todos los valores de la función.
39  *
40  * \param res  Vector donde se guardan los resultados.
41  * \param paso Paso de iteración.
42  * \param ti   Tiempo de inicio de la iteración.
43  * \param tf   Tiempo final de la iteración.
44  * \param f0   Valor inicial de la función.
45  *
46  * \return Cantidad de pasos realizados.
47  */
48 size_t resultados_calcular(Resultados* res, Real paso, Real ti, Real tf, Real f0);
49
50 #endif