0% encontró este documento útil (0 votos)
92 vistas5 páginas

Ecuaciones Diferenciales en Matlab

Este documento resume cómo resolver ecuaciones diferenciales en Matlab usando métodos analíticos y numéricos. Explica cómo encontrar soluciones exactas simbólicamente y cómo calcular soluciones aproximadas para una ecuación dada definiendo funciones y usando funciones como ode45. También cubre cómo representar gráficamente las soluciones y comparar los resultados de los diferentes métodos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
92 vistas5 páginas

Ecuaciones Diferenciales en Matlab

Este documento resume cómo resolver ecuaciones diferenciales en Matlab usando métodos analíticos y numéricos. Explica cómo encontrar soluciones exactas simbólicamente y cómo calcular soluciones aproximadas para una ecuación dada definiendo funciones y usando funciones como ode45. También cubre cómo representar gráficamente las soluciones y comparar los resultados de los diferentes métodos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ecuaciones diferenciales en Matlab

En este documento veremos un resumen de las ecuaciones diferenciales en el entorno de Matlab.

A lo largo del documento trabajaremos con la ecuación:

Resolución simbólica de EDOs


La resolución simbólica nos permite encontrar la solución exacta de una EDO. Para ello, deberemos:

1- definir las variables dependiente e independiente mediante el comando syms

syms y(x)

2- definir la EDO

edo_ana = diff(y,x)==3*y-x*y;

3- usar el comando dsolve para encontrar la solución de la ecuación

sol_ana=dsolve(edo_ana,cond)

sol_ana =

Si además nos dan condiciones iniciales, podemos añadir un nuevo paso 3 como

3- definir las condiciones iniciales

cond= y(1)==3;

4- y de nuevo aplicar el comando dsolve

sol_ana=dsolve(edo_ana,cond)

sol_ana =

Resolución numérica de EDOs


Para resolver numéricamente una EDO deberemos seguir pasos parecidos a la resolución analítica. Sin
embargo, deberemos usar las funciones propias de la resolución numérica.

1- Definimos la ecuación diferencial

1
edo_num= @(x,y) 3*y-x*y;

2- Definimos el instante de tiempo inicial y todos aquellos de los que queremos la solución.

tiempos= 1:0.1:3;

3- Definimos la ocndición inicial para la variable dependiente

var_dep= 3;

4- calculamos la solución del a ecuación diferencial

[xi,yi]=ode45(edo_num,tiempos,var_dep)

xi = 21×1
1.0000
1.1000
1.2000
1.3000
1.4000
1.5000
1.6000
1.7000
1.8000
1.9000

yi = 21×1
3.0000
3.6459
4.3869
5.2258
6.1633
7.1966
8.3196
9.5221
10.7899
12.1049

Alternativamente, podemos definir la ecuación diferencial mediante una función. Para ello, vamos a generar un
nuevo archivo mediante New-> Function. Copia la función siguiente:
function [xs] = edo_script(x,y)
%EDO_EJ3 ecuación diferencial del ejemplo 3 del tema 4 (Mat 3 - GOI)
% xs es la variable de salida.
% x es la variable de entrada

xs = 3*y-x*y;
end

Una vez definido generado el archivo y guardado podemos continuar como:

2- Definimos el instante de tiempo inicial y todos aquellos de los que queremos la solución.

2
tiempos= 1:0.1:3;

3- Definimos la ocndición inicial para la variable dependiente

var_dep= 3;

4- calculamos la solución del a ecuación diferencial

[xi,yi]=ode45(@edo_script,tiempos,var_dep)

xi = 21×1
1.0000
1.1000
1.2000
1.3000
1.4000
1.5000
1.6000
1.7000
1.8000
1.9000

yi = 21×1
3.0000
3.6459
4.3869
5.2258
6.1633
7.1966
8.3196
9.5221
10.7899
12.1049

Representación gráfica
Para realizar la representación gráfica vamos a utilizar las funciones fplot (para las soluciones analíticas) y
plot (para la solución numérica). También usaremos el comando hold on para realizar la gráfica de las dos
funciones en el mismo diagrama

Representamos la solución analítica

fplot(sol_ana,[0 3])

Indicamos a Matlab que queremos dibujar una nueva gráfica en la misma ventana

hold on

Represetnamos la solución numérica

plot(xi,yi)

3
Indicamos que ya hemos acabado de representar todas las funciones

hold off

añadimos la leyenda de las gráficas

legend(["analítica","numérica"])

Comparación de resultados
Finalmente, podemos comparar los resultados obtenidos mediante los dos métodos.

Primero calculamos los valores de la solución analítica en los puntos xi en los que tenemos la aproximación de
la solución numérica. Para ello usamos la función subs que nos permite substituir en una expresión simbólica
una variable por un valor. Si el nuevo valor es un vector, hara tantas substituciones como valores tiene el
vector.

so_an_i=subs(sol_ana,x,xi); %encontramos los valores en xi

A continuación calculamos la diferencia entre la solución analítica y la numérica.

dif_i=so_an_i-yi; %calculamos la diferencia

4
Finalmente dibujamos al gráfica de las diferencias para ver la evolución del error de la solución numérica..

plot(xi,dif_i) %realizamos la representación gráfica

También podría gustarte