]> git.llucax.com Git - z.facultad/75.42/euler.git/blob - documentacion.h
Se separa el TP en varios archivos.
[z.facultad/75.42/euler.git] / documentacion.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  * Ejercicio 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: dom ago 24 03:12:43 ART 2003
14  *
15  * $Id$
16  */
17
18 /** \mainpage Taller de Programación I (75.42)
19
20 \section objetivo Objetivo.
21     Desarrollar un \ref main "programa" que resuelva, utilizando un
22     \ref metodo "método iterativo", una \ref funcion "función diferencial"
23     en un intervalo de tiempo dado.
24     \note Utilizar sólo funciones ANSI C.
25
26 \section desarrollo Desarrollo.
27     \subsection parte1 Parte 1.
28         Dada una \ref funcion "función diferencial" \f$df_{(t)}\f$,
29         desarrolle un \ref main "programa" que calcule la integral de la
30         misma utilizando el método iterativo (\ref metodo "Euler explícito"),
31         tal como se explica a continuación. Almacene estos resultados en un
32         \ref Resultados "vector".
33
34         \subsubsection funcion Función diferencial.
35             \f[
36                 df_{(t)} = \frac{500 - f_{(t)}}{30}
37             \f]
38
39         \subsubsection variables Variables.
40             - \f$t_i\f$:     \ref T0 "Tiempo inicial de la iteración" = 0.
41
42             Solicitar al usuario el ingreso de las restantes variables por
43             línea de comandos:
44             - \f$f_{(t)}\f$: Estado inicial del sistema.
45             - \f$t_f\f$:     Tiempo final de la iteración (segundos).
46             - \f$step\f$:    Paso (en segundos).
47
48         \subsubsection metodo Método de iteración (Euler explícito).
49             \f[
50                 f_{(t + step)} = f_{(t)} + df_{(t)} \cdot step
51             \f]
52
53     \subsection parte2 Parte 2.
54         Grafique los primeros 70 pasos (si los hay) de la
55         \ref funcion "función" en formato texto, entre los valores máximos y
56         mínimos que tome en este intervalo, utilizando 20 líneas horizontales.
57
58         Por ejemplo:
59         \verbatim
60
61             t0 =  0
62             tf = 10
63             step = 0.5
64             400        ***
65             390 *    **   ****
66             380  *  *         ******
67             370   **
68
69         \endverbatim
70
71 \section resolucion Resolución.
72     El \ref main "programa principal" se divide en FIXME N tareas principales,
73     cada una realizada por una función particular.
74
75     \subsection obtencion Obtención y validación de parámetros del usuario.
76         Antes de comenzar a hacer cálculos es necesario obtener los valores de
77         las \ref variables "variables" de la entrada del usuario (en este caso
78         a través de parámetros de línea de comandos). Esto es realizado
79         por la función cargar_datos().
80
81     \subsection integracion Integración de la ecuación diferencial.
82         Reemplazando la \ref funcion "ecuación diferencial" \f$ df_{(t)} \f$
83         en la solución por el \ref metodo "método de Euler", obtenemos
84         la siguiente función:
85         \f[
86             f_{(t + step)} = f_{(t)} + \frac{500 - f_{(t)}}{30} \cdot step
87         \f]
88         Resultando, en realidad, una función númerica de dos variables
89         (\f$ step \f$ y \f$ f_t \f$):
90         \f[
91             f_{t + step} = f_{(step, f_t)} = f_t + \frac{500 - f_t}{30} \cdot step
92         \f]
93         Este paso es realizado por el macro FUNCION() para que sea más
94         veloz.
95
96         Todo lo que resta es iterar, paso a paso, calculando los valores de la
97         función y almacenándolos en el \ref Resultados "vector de resultados",
98         tarea realizada por la función calcular().
99
100 */
101