Matlab - Sistema de ecuaciones EDO y EDP

 
Vista:

Sistema de ecuaciones EDO y EDP

Publicado por Kenny (2 intervenciones) el 13/08/2009 13:44:18
Hola, suelo consultar bastante los foros para resolver dudas pero esta es la primera vez que soy yo el que escribe. En fin, ya me iba tocando.

Mi duda es la siguiente, necesito implementar en Matlab un sistema compuesto por 3 ecuaciones diferenciales ordinarias (EDO) y 2 ecuaciones en diferencias parciales (EDP) con una variable temporal t y una espacial x, y que dependen unas de valores de las otras. Se resolver las EDOs con el resolvedor "ode45", y las EDPs se pueden resolver con "pdepe" (aunque tengo algunas dudas sobre las condiciones de frontera). Pero como soluciono los dos conjuntos de ecuaciones a la vez?? lo primero que he pensado es en ir ejecutando paso a paso, es decir, primero ejecuto un paso de "pdepe" para solucionar las EDPs con los valores iniciales de las EDOs, luego coger los resultados y ejecutar un paso de las EDOs con el resolvedor "ode45", coger los resultados y ejecutar el siguiente paso de las EDPs, luego EDOs, luego EDPs, etc etc.
De esta manera, no he conseguido todavía resolver el sistema ya que no se como definir las ecuaciones de las derivadas parciales (c,f y s para "pdepe") para que cojan los valores de las soluciones de las EDOs. Un lio!
¿No hay ninguna manera de implementar todas las ecuaciones juntas y resolverlas de una vez? por ejemplo, utilizando solo "pdepe" para resolver tanto las PDE como las ODE????
Otra posible solución es discretizar la variable espacial de las ecuaciones con derivadas parciales obteniendo un conjunto de ecuaciones diferenciales ordinarias y resolver todo junto con "ode45". El problema es que no se realizar esta discretización.

Como veis es un problema con bastante carga matemática y ando un poco perdido (es posible que haya metido alguna barbaridad), así que cualquier sugerencia será bien aceptada.

Graciass.
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

RE:Sistema de ecuaciones EDO y EDP

Publicado por fismat (391 intervenciones) el 13/08/2009 16:12:36
Hola Kenny,

Quizas la solución sea, utilizar el toolbox de PDE en modo de lınea de comandos de Matlab.

http://personales.unican.es/segurajj/pdetool.pdf

Fismat
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

RE:Sistema de ecuaciones EDO y EDP

Publicado por andres (1 intervención) el 14/09/2009 22:31:30
Tengo el mismo problema, lo primero que debes de tener en cuenta es que en cualquier programa interno (odes) de matlab no se puede fijar el paso de incremento de tiempo, ya que utiliza un rk4 y corrige con uno de orden 5 en el caso de no linealidad. por otra parte para resolver una ecuacion EDP se necesitan criterios de estabilidad para la solucion que dependen de constantes, incrementos de tiempo y de espacio, la verdad he buscado bastante sobre como hacer esto pero todavia no he tenido respuesta, en caso de tenerla te escribiria de nuevo, al igual le estaria muy agradecido si alguien me podria dar informacion sobre como se pueden resolver este problema de forma conjunta.
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

RE:Sistema de ecuaciones EDO y EDP

Publicado por Kenny (2 intervenciones) el 15/09/2009 09:45:43
Hola, pues en mi caso ya lo he solucionado. He discretizado las EDPs convirtiéndolas en ODEs, y obteniendo unas 40 ODEs de cada una de las EDP. Mis PDEs dependían de dos variables, w (peso) y t (tiempo), por lo que he eliminado la w de la ecuación y le he dado el rango de valores apropiados, luego obtengo una ODE dependiente del tiempo para cada valor de w. Por lo tanto, al final obtengo un sistema de ODE fácil de solucionar. La discretización es sencilla, solo hay que sustituir las derivadas parciales según el método de las diferencias finitas. http://en.wikipedia.org/wiki/Finite_difference_method

f '(a) = (f (a+h) - f (a)) / h -> donde h sería la distancia entre cada punto de la 2ª variable que discretizas (en mi caso w, con h=0.6, ya que tomo 40 valores para w, desde 0.6 hasta 24, w = 0.6, 1.2, 1.8,... ,23.4, 24).
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

RE:Sistema de ecuaciones EDO y EDP

Publicado por Ivan (1 intervención) el 22/10/2009 23:43:59
Pss, he encontrado esto buscando respuesta a algo parecido,creo xD.
Lo primero , sry pero no se la respuesta a tu problema , pero necesito aclarar una cosa , que en parte tenga algo que ver.

Mi duda es sobre diferencias finitas ( a mano) :

Mi pregunta es, tengo una EDP(calor , p.ej), y condiciones Newmann(las de las derivadas).Para calcular un punto de uno de los bordes , aproximando con euler, necesito el punto de una posicion anterior , que no tengo , por que esta fuera del borde.
Entonces, y eso es lo que me contaron y no me enterè , necesito discretizar la variable espacial(no se para que xD) , y lo "hago" haciendo una aproximacion de la derivada de x de orden 2(necesito que sea de ese orden), por ejemplo la centrada.
A partir de aqui , no se ni para que la tengo que discretizar , ni que hacer con la aproximacion , ni si tengo que sustituir la aprox. de la condicion de borde en mi algoritmo crea-solucion, ni nada.

Y tiene que ver con lo tuyo en el sentido de que discretizar lo hace aproximando , y esa aproximacion de puede fabricar con matlab, creo.Menudo lio de sistema de todas formas.

Como ves , no soy todo un experto, llevo 3 semanas viendo esto xD.Bueno , aver si te has enterado de mi duda , y entre los 2 sacamos algo en claro xD.

Un saludo
PD:veo que el ultimo te dijo como discretizar xD.
A ver si alguien me lo entiende , xD
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