[C con Clase] Codigo de Euler en C

Steven Davidson srd4121 en njit.edu
Mar Jun 15 05:27:50 CEST 2010


Hola Ainhize,

ainhize goenaga wrote:
> Hola,
> Somos estudiantes de 1 de ingenieria informatica y como proyecto de
> fin de curso nos han mandado hacer un programa que resuelva un
> circuito de un filtro pasivo RC con el codigo de euler.
> 
> Hasta ahora tenemos esto:
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> #define PI 3,141592653

Esto no es correcto. En C, se usa el punto para separar la parte entera 
de la decimal. Esto es,

#define PI 3.141592653

Por cierto, algunos compiladores definen la constante simbólica 'M_PI' 
para definir el número pi. Podrías intentar lo siguiente:

#ifndef M_PI
   #define M_PI 3.141592653
#endif


En cuanto al problema que estás (estáis) teniendo, sinceramente se me 
hace un poco difícil seguir las fórmulas de Maple que has escrito al 
igual que las ecuaciones del modelo del comportamiento del circuitio RC. 
De todas maneras, nos centraremos en el método de Euler. Sospecho que te 
refieres al método para aproximar la solución del siguiente problema:

dy/dt = f(t,y),  a <= t <= b,  y(a) = A

con (N+1) "muestras" tomadas del intervalo [a,b].

El pseudo-código del método de Euler es:

Real solucion( Real a, Real b, Entero N, Real A )
1.  h <- (b-a)/N
2.  t <- a
3.  res <- A
4.  Para: i <- 1 hasta N, repetir
5.     res <- res + h*f(t,res)
6.     t <- a + i*h
7.  Terminar( res )

(Nota: <- significa "asignar").

Creo que el pseudo-código es bastante claro, por lo que no deberías 
tener problemas al implementarlo en C.


Espero que esto te ayude.

Steven




Más información sobre la lista de distribución Cconclase