0% encontró este documento útil (0 votos)
460 vistas28 páginas

Odes de Matlab

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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
460 vistas28 páginas

Odes de Matlab

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 DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERIA QUIMICA

CARRERA DE INGENIERIA QUIMICA

ASIGNATURA: CONTROL AUTOMATICO DE PROCESOS

DOCENTE: [Link] VILLA

ESTUDIANTES:

DIEGO ALEXANDER PALOMEQUE PALOMEQUE

JOSEPH SAUL CAGUA MERA

ACTIVIDAD: INVESTIGAR TODO LOS ODE EN MATLAB

PARALELO: 8-1

PERIODO LECTIVO CII 2022-2023

“SI LA INSPIRACION EXISTE DEBE ENCONTRARTE TRABAJANDO”


ECUACIONES DIFERENCIALES ORDINARIAS

Una ecuación diferencial ordinaria (ODE) contiene una o más derivadas de una variable
dependiente, y, con respecto a una variable independiente única, t, a la que normalmente se hace
referencia como tiempo. La notación que se utiliza aquí para representar las derivadas de y con
respecto a t es y′ para una primera derivada, y′′ para una segunda derivada, etc. El orden de la
ODE es igual a la derivada de orden más alto de y que aparece en la ecuación.
Por ejemplo, esta es una ODE de segundo orden:
y′′=9y
En un problema de valores iniciales, la ODE se resuelve empezando por un estado inicial. La
solución se obtiene de forma iterativa utilizando la condición inicial, y0, así como un periodo de
tiempo durante el que obtener la respuesta, (t0,tf). En cada salto, el solver aplica un algoritmo
particular a los resultados de saltos anteriores. En el primero de esos saltos, la condición inicial
proporciona la información necesaria que permite que la integración continúe. El resultado final
es que el solver de ODE devuelve un vector de unidades de tiempo t=[t0,t1,t2,...,tf], así como la
solución correspondiente en cada salto y=[y0,y1,y2,...,yf].

Tipos de ODE
Los solvers de ODE de MATLAB® solucionan estos tipos de ODE de primer orden:
 ODE explícitas con el formato y′=f(t,y).
 ODE linealmente implícitas con el formato M(t,y)y′=f(t,y), donde M(t,y) es una matriz de
masa no singular. La matriz de masa puede ser dependiente del tiempo o del estado, o puede
ser una matriz constante. Las ODE linealmente implícitas implican combinaciones lineales
de la primera derivada de y, que están codificadas en la matriz de masa.
Las ODE linealmente implícitas siempre se pueden transformar a formato explícito, y
′=M−1(t,y)f(t,y). Sin embargo, especificar la matriz de masa directamente en el solver de
ODE evita esta transformación, que no es práctica y puede ser computacionalmente costosa.
 Si faltan algunos componentes de y′, las ecuaciones se llaman ecuaciones algebraicas
diferenciales o DAE, y el sistema de DAE contiene algunas variables algebraicas. Las
variables algebraicas son variables dependientes cuyas derivadas no aparecen en las
ecuaciones. Un sistema de varias DAE se puede reescribir como un sistema equivalente de
varias ODE de primer orden tomando derivadas de las ecuaciones para eliminar las variables
algebraicas. El número de derivadas necesario para reescribir una DAE como una ODE se
denomina índice diferencial. Los solvers ode15s y ode23t pueden resolver DAE de índice 1.
 ODE totalmente implícitas con el formato f(t,y,y′)=0. Las ODE totalmente implícitas no se
pueden reescribir con formato explícito y pueden contener también algunas variables
algebraicas. El solver ode15i está diseñado para problemas totalmente implícitos, incluidas
DAE de índice 1.
Puede proporcionar información adicional al solver para algunos tipos de problemas utilizando la
función odeset para crear una estructura de opciones.
Sistemas de varias ODE
Puede especificar cualquier número de ecuaciones de ODE acopladas para resolver y, en principio, el número de
ecuaciones solo está limitado por la memoria de ordenador disponible. Si el sistema de ecuaciones
tiene n ecuaciones.

la función que codifica las ecuaciones devuelve un vector con n elementos, que se corresponden con los valores
para y′1, y′2, … , y′n. Por ejemplo, considere el sistema de dos ecuaciones.

Una función que codifica estas ecuaciones es


% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ODE
clear
clc
function dy = myODE(t,y)
dy(1) = y(2);
dy(2) = y(1)*y(2)-2;
end

ODE de orden superior


Los solvers de ODE de MATLAB solo resuelven ecuaciones de primer orden. Debe reescribir
las ODE de orden superior como un sistema equivalente de ecuaciones de primer orden
utilizando las sustituciones genéricas.

El resultado de estas sustituciones es un sistema de n ecuaciones de primer orden

Por ejemplo, considere la ODE de tercer orden

Utilizar las sustituciones


da como resultado el sistema de primer orden equivalente

El código para este sistema de ecuaciones es

% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph Saul Cagua Mera


%Paralelo:8-1 , Tema: ODE
clear
clc
function dydt = f(t,y)
dydt(1) = y(2);
dydt(2) = y(3);
dydt(3) = y(1)*y(3)-1;
end
Selección de un solver básico
ode45 funciona bien con la mayoría de los problemas de ODE y debería ser, en general, la
opción de solver preferida. Sin embargo, ode23, ode78, ode89 y ode113 pueden ser más
eficientes que ode45 para problemas con requisitos de precisión menos o más estrictos.
Algunos de los problemas de ODE presentan rigidez o dificultad en la evaluación. "Rigidez" es
un término difícil de definir con precisión, pero, en general, la rigidez se produce cuando hay una
diferencia de escalado en algún lugar del problema. Por ejemplo, si una ODE tiene
dos componentes de solución que varían en escalas de tiempo drásticamente diferentes, la
ecuación puede ser rígida. Puede identificar un problema como rígido si los solvers no rígidos
(como ode45) no pueden resolver el problema o son extremadamente lentos. Si observa que un
solver no rígido es muy lento, pruebe a usar un solver rígido como ode15s en su lugar. Cuando
usa un solver rígido, puede mejorar la fiabilidad y la eficiencia proporcionando la matriz
jacobiana o su patrón de dispersión.
Esta tabla proporciona directrices generales sobre cuándo usar cada uno de los diferentes solvers.
Tipo de
Solver Precisión Cuándo utilizarlo
problema

ode45 No rígido Media La mayoría de las veces. ode45 debería ser el primer solver que pruebe.
ode23 Baja ode23 puede ser más eficiente que ode45 en problemas con tolerancias crudas o si hay rigidez moderada presente.
ode113 De baja a alta ode113 puede ser más eficiente que ode45 en problemas con tolerancias de error estrictas o cuando resulta caro evaluar la función de ODE.
ode78 Alta ode78 puede ser más eficiente que ode45 en problemas con soluciones suaves que tienen requisitos de precisión elevada.
ode89 Alta ode89 puede ser más eficiente que ode78 con problemas muy suaves, cuando se integran en intervalos de tiempo largos o cuando las
tolerancias son especialmente estrictas.

ode15s Rígido De baja a media Pruebe ode15s cuando ode45 falle o sea ineficiente y sospeche que el problema es rígido. Utilice también ode15s cuando resuelva
ecuaciones algebraicas diferenciales (DAE).

ode23s Baja ode23s puede ser más eficiente que ode15s en problemas con tolerancias de error crudas. Puede resolver algunos problemas rígidos para los
que ode15s no es efectivo.

ode23s calcula la jacobiana en cada salto, así que es útil proporcionar la jacobiana mediante odeset para maximizar la eficiencia y la
precisión.
Si hay una matriz de masa, debe ser constante.
ode23t Baja Utilice ode23t si el problema solo es moderadamente rígido y si necesita una solución sin amortiguación numérica.

ode23t puede resolver ecuaciones algebraicas diferenciales (DAE).

ode23t Baja Al igual que ode23s, el solver ode23tb puede ser más eficiente que ode15s en problemas con tolerancias de error crudas.
b
ode15i Totalmente Baja Utilice ode15i para problemas totalmente implícitos f(t,y,y’) = 0 y para ecuaciones algebraicas diferenciales (DAE) de índice 1.
implícito
ODE45

Resolver ecuaciones diferenciales no rígidas; método de orden intermedio


Sintaxis
[t,y] = ode45(odefun,tspan,y0)
[t,y] = ode45(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode45(odefun,tspan,y0,options)
sol = ode45(___)
Descripción
[t,y] = ode45(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferenciales y′=f(t,y) de t0 a tf con condiciones iniciales y0. Cada fila del arreglo de
solución y se corresponde con un valor devuelto en el vector columna t.
Todos los solvers de ODE de MATLAB® pueden resolver sistemas de ecuaciones con el
formato y′=f(t,y), o problemas que incluyen una matriz de masa, M(t,y)y′=f(t,y). Todos los solvers
utilizan sintaxis similares. El solver ode23s solo puede resolver problemas con una matriz de
masa si la matriz de masa es constante. ode15s y ode23t pueden resolver problemas con una
matriz de masa que es singular, conocidos como ecuaciones algebraicas diferenciales (DAE).
Especifique la matriz de masa utilizando la opción Mass de odeset.
ode45 es un versátil solver de ODE y es el primer solver que debería probar para solucionar la
mayoría de problemas. Sin embargo, si el problema es rígido o requiere mucha precisión, existen
otros solvers de ODE que podrían ser más adecuados para resolverlo. Para obtener más
información, consulte Elegir un solver de ODE.

[t,y] = ode45(odefun,tspan,y0,options) también utiliza la configuración de integración


definida por options, que es un argumento creado utilizando la función odeset. Por ejemplo,
utilice las opciones AbsTol y RelTol para especificar tolerancias a errores absolutas y relativas, o
la opción Mass para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode45(odefun,tspan,y0,options) también encuentra dónde son cero las
funciones de (t,y), denominadas funciones de evento. En la salida, te es el tiempo del
evento, ye es la solución en el momento del evento e ie es el índice del evento activado.
Para cada función de evento, especifique si la integración debe terminar en un cero y si la
dirección del cruce por cero tiene importancia. Hágalo estableciendo la propiedad 'Events' en una
función, como myEventFcn o @myEventFcn, y creando una función correspondiente:
[value,isterminal,direction] = myEventFcn(t,y). Para obtener más información, consulte ODE
Event Location.
sol = ode45(___) devuelve una estructura que puede usar con deval para evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede utilizar cualquiera de las combinaciones de
argumentos de entrada de las sintaxis anteriores.
Ejemplo
Las ODE sencillas que tienen un solo componente de solución pueden especificarse como
función anónima en la llamada al solver. La función anónima debe aceptar dos entradas (t,y),
aunque una de las entradas no se utilice en la función.
Resuelva la ODE

y′=2t.
Especifique un intervalo de tiempo de [0 5] y la condición inicial y0 = 0.

25

20

15

10

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 45
clear
clc
tspan = [0 5];
y0 = 0;
[t,y] = ode45(@(t,y) 2*t, tspan, y0)
plot(t,y,'-o')
ODE23

Resolver ecuaciones diferenciales no rígidas: método de orden bajo


Sintaxis
[t,y] = ode23(odefun,tspan,y0)
[t,y] = ode23(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode23(odefun,tspan,y0,options)
sol = ode23(___)
Descripción
[t,y] = ode23(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.
[t,y] = ode23(odefun,tspan,y0,options)también usa la configuración de integración definida
por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode23(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode23(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.

Ejemplo
Resuelve la EDO

y′= 2t .
Especifique un intervalo de tiempo [0 5]y la condición inicial y0 = 0.

25

20

15

10

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 23
clear
clc
tspan = [0 5];
y0 = 0;
[t,y] = ode23(@(t,y) 2*t, tspan, y0)
plot(t,y,'-o')

ODE113

Resolver ecuaciones diferenciales no rígidas: método de orden variable


Sintaxis
[t,y] = ode113(odefun,tspan,y0)
[t,y] = ode113(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode113(odefun,tspan,y0,options)
sol = ode113(___)
Descripción

[t,y] = ode113(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones


diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.

[t,y] = ode113(odefun,tspan,y0,options)también usa la configuración de integración definida


por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode113(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode113(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.
Ejemplo
Resuelve la EDO

y′= 2t .
Especifique un intervalo de tiempo [0 5]y la condición inicial y0 = 0.

30

25

20

15

10

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 113
clear
clc
tspan = [0 5];
y0 = 0;
[t,y] = ode113(@(t,y) 2*t, tspan, y0)
plot(t,y,'-o')
ODE78

Resolver ecuaciones diferenciales no rígidas: método de orden superior


Sintaxis
[t,y] = ode78(odefun,tspan,y0)
[t,y] = ode78(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode78(odefun,tspan,y0,options)
sol = ode78(___)
Descripción

[t,y] = ode78(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones


diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución y corresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Los solucionadores usan sintaxis
similares. El ode23ssolucionador puede resolver problemas con una matriz de masa solo si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.
[t,y] = ode78(odefun,tspan,y0,options) también usa la configuración de integración definida
por options, que es un argumento creado usando la odesetfunción. Por ejemplo, configure las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o configure
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode78(odefun,tspan,y0,options) además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración terminará en cero y si la dirección del
cruce por cero es significativa. Haga esto configurando la 'Events'opción de odeseten una
función, como myEventFcno @myEventFcn, y cree una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode78(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.
Ejemplo
Resuelve la EDO

y′= 2t .
Especifique un intervalo de tiempo [0 5]y la condición inicial y0 = 0.
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 78
clear
clc
tspan = [0 5];
y0 = 0;
[t,y] = ode78(@(t,y) 2*t, tspan, y0);
plot(t,y,'-o')

ODE89

Resolver ecuaciones diferenciales no rígidas: método de orden superior


Sintaxis
[t,y] = ode89(odefun,tspan,y0)
[t,y] = ode89(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode89(odefun,tspan,y0,options)
sol = ode89(___)
Descripción
[t,y] = ode89(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución y corresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Los solucionadores usan sintaxis
similares. El ode23ssolucionador puede resolver problemas con una matriz de masa solo si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.
[t,y] = ode89(odefun,tspan,y0,options) también usa la configuración de integración definida
por options, que es un argumento creado usando la odesetfunción. Por ejemplo, configure las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o configure
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode89(odefun,tspan,y0,options) además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración terminará en cero y si la dirección del
cruce por cero es significativa. Haga esto configurando la 'Events'opción de odeseten una
función, como myEventFcno @myEventFcn, y cree una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode89(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.
Ejemplo
Resuelve la EDO

y′= 2t .
Especifique un intervalo de tiempo [0 5]y la condición inicial y0 = 0.

% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph


Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 89
clear
clc
tspan = [0 5];
y0 = 0;
[t,y] = ode89(@(t,y)2*t,tspan,y0);
plot(t,y,'-o')

ODE15S

Resolver ecuaciones diferenciales rígidas y DAE: método de orden variable


Sintaxis
[t,y] = ode15s(odefun,tspan,y0)
[t,y] = ode15s(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode15s(odefun,tspan,y0,options)
sol = ode15s(___)
Descripción

[t,y] = ode15s(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones


diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.

[t,y] = ode15s(odefun,tspan,y0,options)también usa la configuración de integración definida


por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode15s(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode15s(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.
Ejemplo
Resuelve la EDO

y′= - 10 t .
Especifique un intervalo de tiempo [0 2]y la condición inicial y0 = 1.

-5

-10

-15

-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph


Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 15s
clear
clc
tspan = [0 2];
y0 = 1;
[t,y] = ode15s(@(t,y) -10*t, tspan, y0)
plot(t,y,'-o')
ODE23S

Resolver ecuaciones diferenciales rígidas: método de orden bajo


Sintaxis
[t,y] = ode23s(odefun,tspan,y0)
[t,y] = ode23s(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode23s(odefun,tspan,y0,options)
sol = ode23s(___)
Descripción

[t,y] = ode23s(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones


diferencialesde t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
forma, o problemas que involucran una matriz de masa,. Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.

[t,y] = ode23s(odefun,tspan,y0,options)también usa la configuración de integración definida


por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode23s(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode23s(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.

Ejemplo
Resuelve la EDO

y′= - 10 t .
Especifique un intervalo de tiempo [0 2]y la condición inicial y0 = 1.

-5

-10

-15

-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

% Estudiantes: Diego Alexander Palomeque


Palomeque,Joseph Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 23s
clc
clear
tspan = [0 2];
y0 = 1;
[t,y] = ode23s(@(t,y) -10*t, tspan, y0)
plot(t,y,'-o')

ODE23T

Resolver ODE y DAE moderadamente rígidos: regla trapezoidal


Sintaxis
[t,y] = ode23t(odefun,tspan,y0)
[t,y] = ode23t(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode23t(odefun,tspan,y0,options)
sol = ode23t(___)
Descripción
[t,y] = ode23t(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferencialesde t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
forma, o problemas que involucran una matriz de masa,. Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.
[t,y] = ode23t(odefun,tspan,y0,options)también usa la configuración de integración definida
por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode23t(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode23t(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.

Ejemplo
Resuelve la EDO

y′= - 10 t .
Especifique un intervalo de tiempo [0 2]y la condición inicial y0 = 1.

-5

-10

-15

-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph


Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 23t
clear
clc
tspan = [0 2];
y0 = 1;
[t,y] = ode23t(@(t,y) -10*t, tspan, y0)
plot(t,y,'-o')

ODE23TB

Resolver ecuaciones diferenciales rígidas: regla trapezoidal + fórmula de diferenciación hacia


atrás
Sintaxis
[t,y] = ode23tb(odefun,tspan,y0)
[t,y] = ode23tb(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode23tb(odefun,tspan,y0,options)
sol = ode23tb(___)
Descripción
[t,y] = ode23tb(odefun,tspan,y0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferencialesy ′ = f(t , y)de t0a tfcon condiciones iniciales y0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
Todos los solucionadores de EDO de MATLAB ® pueden resolver sistemas de ecuaciones de la
formay ′ = f(t , y), o problemas que involucran una matriz de
masa,METRO(t , y)y ′ = f(t , y). Todos los solucionadores usan sintaxis
similares. El ode23ssolucionador solo puede resolver problemas con una matriz de masa si la
matriz de masa es constante. ode15sy ode23tpuede resolver problemas con una matriz de masa
que es singular, conocida como ecuaciones algebraicas diferenciales (DAE). Especifique la
matriz de masa usando la Massopción de odeset.

[t,y] = ode23tb(odefun,tspan,y0,options)también usa la configuración de integración definida


por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice las
opciones AbsToly RelTolpara especificar tolerancias de error absolutas y relativas, o
la Massopción para proporcionar una matriz de masa.
[t,y,te,ye,ie] = ode23tb(odefun,tspan,y0,options)además encuentra dónde las funciones
de ( t , y ) , llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode23tb(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.

Ejemplo
Resuelve la EDO

y′= - 10 t .
Especifique un intervalo de tiempo [0 2]y la condición inicial y0 = 1.

-5

-10

-15

-20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 23tb
clear
clc
tspan = [0 2];
y0 = 1;
[t,y] = ode23tb(@(t,y) -10*t, tspan, y0)
plot(t,y,'-o')
ODE15I

Resolver ecuaciones diferenciales completamente implícitas: método de orden variable


Sintaxis
[t,y] = ode15i(odefun,tspan,y0,yp0)
[t,y] = ode15i(odefun,tspan,y0,yp0,options)
[t,y,te,ye,ie] = ode15i(odefun,tspan,y0,yp0,options)
sol = ode15i(___)
Descripción
[t,y] = ode15i(odefun,tspan,y0,yp0), donde tspan = [t0 tf], integra el sistema de ecuaciones
diferencialesF(t,y,y′)=0de t0a tfcon condiciones iniciales y0y yp0. Cada fila en la matriz de
solución ycorresponde a un valor devuelto en vector de columna t.
[t,y] = ode15i(odefun,tspan,y0,yp0,options)también usa la configuración de integración
definida por options, que es un argumento creado usando la odesetfunción. Por ejemplo, utilice
las opciones AbsToly RelTolpara especificar tolerancias de error relativas y absolutas, o
la Jacobianopción para proporcionar la matriz jacobiana.
[t,y,te,ye,ie] = ode15i(odefun,tspan,y0,yp0,options)además encuentra dónde las funciones
de (t,y,y'), llamadas funciones de evento, son cero. En la salida, tees la hora del evento, yees la
solución en el momento del evento y iees el índice del evento desencadenado.
Para cada función de evento, especifique si la integración debe terminar en cero y si la dirección
del cruce por cero es importante. Haga esto estableciendo la 'Events'propiedad en una función,
como myEventFcno @myEventFcn, y creando una función correspondiente:
[ value, isterminal, direction] = myEventFcn( t, y, yp). Para obtener más información,
consulte Ubicación del evento ODE .
sol = ode15i(___)devuelve una estructura que puede usar devalpara evaluar la solución en
cualquier punto del intervalo [t0 tf]. Puede usar cualquiera de las combinaciones de argumentos
de entrada en las sintaxis anteriores.
Ejemplo
Calcule condiciones iniciales consistentes y resuelva una EDO implícita con ode15i.
La ecuación de Weissinger es

ty2(y′)3−y3(y′)2+ t(t2+1)y′−t2y=0.

Como la ecuación está en la forma genéricaF(t , y ,y′)=0, puede usar la ode15ifunción para
resolver la ecuación diferencial implícita.

Pasos de resolución
Para codificar la ecuación en una forma adecuada para ode15i, necesita escribir una función con

entradas parat, y, yy′que devuelve el valor residual de la ecuación. La


función @weissingercodifica esta ecuación. Ver el archivo de función.
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 15i
clear
clc
type weissinger
function res = weissinger(t,y,yp)
%WEISSINGER Evaluar el residual de la EDO implícita de
Weissinger
%
% Véase también ODE15I.

% Jacek Kierzenka y Lawrence F. Shampine


% Copyright 1984-2014 The MathWorks, Inc.

res = t*y^2 * yp^3 - y^3 * yp^2 + t*(t^2 + 1)*yp - t^2 * y;


end

Calcular condiciones iniciales consistentes


El ode15isolucionador requiere condiciones iniciales consistentes, es decir, las condiciones
iniciales proporcionadas al solucionador deben satisfacer

F(t0,y,y′)=0.
Dado que es posible proporcionar condiciones iniciales incoherentes y ode15ino comprueba la
coherencia, se recomienda utilizar la función de ayuda decicpara calcular dichas
condiciones. decicmantiene algunas variables especificadas fijas y calcula valores iniciales
consistentes para las variables no fijas.
En este caso, fije el valor inicialy(t0)= y deciccalculemos un valor inicial consistente para la
√32
derivaday′(t0), a partir de una suposición inicial dey′(t0)=0.
% Estudiantes: Diego Alexander Palomeque Palomeque,Joseph
Saul Cagua Mera
%Paralelo:8-1 , Tema: ode 15i
clear
clc
t0 = 1;
y0 = sqrt(3/2);
yp0 = 0;
[y0,yp0] = decic(@weissinger,t0,y0,1,yp0,0)

También podría gustarte