Matlab - Problema con Dsolve para EDOS hiladas

 
Vista:

Problema con Dsolve para EDOS hiladas

Publicado por Harold (3 intervenciones) el 09/10/2011 04:05:33
Hola. Mi problema es que tengo una EDO del tipo:

Ds1+K1*s1=K2+K3*exp(-K4*z)

,donde Ki son constantes; z es la variable independiente y s1 es la función buscada.

Esta ecuación la resuelvo sin problemas con Dsolve.

Luego necesito resolver una nueva EDO que utiliza como argumento el resultado de la EDO anterior, es decir:

Ds2+K1*s2=K2+K3*exp(-K4*z)+K5*s1

Luego debo resolver una EDO para s3 que utiliza el resultado de s2, es decir:

Ds3+K1*s3=K2+K3*exp(-K4*z)+K5*s2

Después debo resolver la EDO de s4 y así sucesivamente.

Mi problema es que para resolver la EDO de s2 no se como ingresar de manera automática el resultado explícito de s1, ni tampoco puedo hacerla en las sgtes. ecuaciones. Esto porque al ingresar el comando Dsolve:

Dsolve('Ds2+K1*s2=K2+K3*exp(-K4*z)+K5*s1','s2(0)=0','z')

toma s1 como una variable simbólica, y no la reemplaza con la función hallada en la solución de la EDO anterior.

Intenté explicarlo lo más detalladamente posible.

Muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema con Dsolve para EDOS hiladas

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/10/2011 07:20:33
HOLA Harold.

UTILIZA EL METODO DE RUNGE KUTTA DE 4TO ORDEN PARA SISTEMAS.
PARA RESOLVER TU PROBLEMA.


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con Dsolve para EDOS hiladas

Publicado por Harold (3 intervenciones) el 09/10/2011 15:58:56
Hola Jose.

Ya había pensado en métodos numéricos, pero no me sirven porque yo necesito ir traspasando una fórmula a la siguiente ecuación, no un valor numérico. Es decir que de la primera EDO voy a obtener algo como:

s1=f(z), como por ejemplo s1=K5+K6*exp(-K7*z) y luego necesito que en la siguiente EDO se reemplace s1 por K5+K6*exp(-K7*z) y no por un número, como lo harían según entiendo los métodos numéricos.

En resumen necesito obtener la función s1(z) para luego reemplazar esta (como fórmula) en la EDO de s2; obtener la función s2(z) para reemplazarla en la EDO de s3 (como fórmula) y así sucesivamente.

Estoy complicado porque el Dsolve no me permite ir reemplazando de forma automática las fórmulas de los s1, s2, etc. , en las EDO posteriores.

Seguramente no fui lo suficientemente claro en la explicación anterior, espero haberlo sido ahora.

Ojalá me puedas ayudar y muchas gracias por tu respuesta. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema con Dsolve para EDOS hiladas

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/10/2011 03:17:03
hola Harold
Aqui un avance de lo que quieres hacer.
%==================
clear all
f1='Ds1-K1*s1-K2+K3*exp(-K4*z)=0'; F1=dsolve(f1),
f2=['Ds2-K1*s2-K2-K3*exp(-K4*z)+K5*',char(F1),'=0']; F2=dsolve(f2),

%========================
EJECUCION
>> edo3
F1 =
(K3 + C2*exp(K1*t) - K2*exp(K4*z))/(K1*exp(K4*z))

F2 =
C5*exp(K1*t) - (K2 + K3/exp(K4*z) + (K2*K5)/K1 - (K3*K5)/(K1*exp(K4*z)) + C2*K5*t*exp(K1*t - K4*z))/K1


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con Dsolve para EDOS hiladas

Publicado por Harold (3 intervenciones) el 11/10/2011 04:37:01
Hola Jose.

Muchísimas gracias por tu respuesta. Es exactamente lo que necesitaba. Me faltaba conocer el comando char.

Saludos y nuevamente muchas gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar