Autor Tema: ¿Cómo programar la solución numérica de una ecuación diferencial fraccionaria?

0 Usuarios y 1 Visitante están viendo este tema.

06 Diciembre, 2016, 05:53 am
Leído 2440 veces

Francois

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 293
  • Karma: +0/-0
  • Sexo: Masculino
Tengo el  siguiente sistema de ecuaciones diferenciales fraccionarios.

\( D^{0.8}y_{1}=2y_{1}(1-\dfrac{y_{1}}{2y_{2}}-\dfrac{y_{1}}{2}) \) , \( y_{1}(0)=0.5 \)
\( D^{0.8}y_{2}=3y_{2}(1-\dfrac{y_{2}}{2y_{1}}-\dfrac{y_{2}}{2}) \) , \( y_{2}(0)=0.3 \)

utilizando el siguiente algoritmo quiero tratar de resolverla
\(
y(t_{j})=\dfrac{h^{\alpha}}{\Gamma(\alpha+2)}((j-1)^{\alpha +1}-(j-\alpha -1)j^{\alpha})f(t_{0},y(t_{0}))+y(0)+\dfrac{h^{\alpha}}{\Gamma(\alpha +2)}\displaystyle\sum_{i=1}^{j-1}((j-i+1)^{\alpha +1}-2(j-i)^{\alpha +1}+(j-i-1)^{\alpha +1})f(t_{i},y(t_{i}))+\dfrac{h^{\alpha}}{\Gamma(\alpha +2)}f(t_{j},y(t_{j-1})+\dfrac{h^{\alpha}}{\Gamma(\alpha +1)}f(t_{j-1},y(t_{j-1}))) \)

Este último es obtenido generalizando el método de Euler y la Regla del trapecio.(Es cierto es muy densa.. .pero fue para mí la más práctica a la hora de resolverlo manualmente)

Bueno sinceramente no sé como programarlo ni tengo idea.Lo único que hice fue hacer todo en cálculo manual.Del siguiente modo
Consideramos

\( f(t,y_{1}(t),y_{2}(t))=2y_{1}(1-\dfrac{y_{1}}{2y_{2}}-\dfrac{y_{1}}{2}) \)
\( f(t,y_{1}(t),y_{2}(t))=3y_{2}(1-\dfrac{y_{2}}{2y_{1}}-\dfrac{y_{2}}{2}) \)

Luego
\( y_{1}(t_{0})=0.5  \hskip 3.4cm y_{2}(t_{0})=0.3  \)
\( y_{1}(t_{1})=0.498952082 \hskip 1.9cm y_{2}(t_{1})=0.3482673535 \)
\( y_{1}(t_{2})=0.507047263469 \hskip 1.4cm y_{2}(t_{2})=0.38354740181 \)
\( y_{1}(t_{3})=0.517592091433 \hskip 1.4cm y_{2}(t_{3})=0.414598722 \)

Pero no sé como continuar en el sentido de que me demanda mucho tiempo hacerlo uno por uno.
Por eso ya no sé como continuar porque necesito la gráfica con varios puntos.

Busque por youtube métodos y me tope con uno de "DIFERENCIAS DIVIDIDAS" ya que se me ocurrió interpolar una gráfica por los puntos que ya había obtenido y con él sacar los otros puntos.

\( P(x)=-8.9246x^{3}+3.16731x^{2}-0.157012x+0.5 \) este es para \( y_{1} \)

Intente calcular el siguiente punto y era un 0.52 ........  y ese punto esta bien lo malo es que di otro punto más  y retrocedió y otro más y siguió retrocediendo lo cual no es correcto porque esos puntos según el documento que tengo llegan hasta el 1 .Por eso no me sirvió de mucho.
En verdad quisiera terminar esto  :'(...ya que lo único que me queda es seguir dando punto tras punto  pero eso es muy agotador.

Espero encontrar alguna ayuda cualquiera...no sé otra forma de que con esos 4 puntos obtenidos pueda pasar un polinomio y obtener como se aproximan ambas gráficas hacia el número uno.El Journal que tengo dice que utilizaron el Método PECE(PREDICTOR EVALUATE CORRECTOR EVALUATE) y luego dan las gráficas,pero cuando leí aquel método me resulto más denso.

Cualquier ayuda será demasiado importante para mí.
Saludos cordiales.
Gracias.

07 Diciembre, 2016, 10:50 am
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 55,996
  • País: es
  • Karma: +0/-0
Hola

 No he examinado en detalle el método, pero hay algo que no acabo de entender. Por lo que escribes parece que sabes aplicarlo manualmente pero no sabes programarlo. ¿Es eso?.
 
 ¿En qué lenguaje tienes que programarlo?.

Saludos.

07 Diciembre, 2016, 11:57 am
Respuesta #2

Francois

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 293
  • Karma: +0/-0
  • Sexo: Masculino
Hola el_manco

Es cierto si le di muchas vueltas y veo como utilizarlo manualmente.

Lo que sucede es que no sé como programar toda la fórmula
conozco sólo algo de matlab.

Pero si hubiera otro programa que haga poner de forma sencilla
la fórmula estaría bien .

Gracias por leer el problema,

Saludos cordiales.