Академический Документы
Профессиональный Документы
Культура Документы
Una ecuación diferencial ordinaria (EDO) de primer orden es una ecuación que puede escribirse en la
forma:
𝑑𝑦
𝑦′ = = 𝑔(𝑥, 𝑦)
𝑑𝑥
Ecuación 1: 𝑦′ = 𝑔1 (𝑥, 𝑦) = 3𝑥 2
Ecuación 2: 𝑦′ = 𝑔2 (𝑥, 𝑦) = −0.131𝑦
Ecuación 3: 𝑦′ = 𝑔3 (𝑥, 𝑦) = 3.4444𝐸 − 05 − 0.0015𝑦
Ecuación 4: 𝑦′ = 𝑔4 (𝑥, 𝑦) = 2. 𝑥. 𝑐𝑜𝑠 2 (𝑦)
Ecuación 5: 𝑦′ = 𝑔5 (𝑥, 𝑦) = 3𝑦 + 𝑒 2𝑥
Una solución a una Edo de primer orden es una función 𝑦 = 𝑓(𝑥) tal que 𝑓 ′ (𝑥) = 𝑔(𝑥, 𝑦). Calcular
la solución de una EDO implica integrar para obtener 𝑦 a partir de 𝑦′; por tanto, las técnicas para
resolver ecuaciones diferenciales también se conocen como técnicas para integrar ecuaciones
diferenciales. La solución de una EDO generalmente es una familia de funciones. Por lo general se
requiere de una condición inicial o condición de frontera para especificar una solución. Las
soluciones analíticas de las EDO presentadas líneas arriba, se determinaron usando ciertas
condiciones iniciales, y son:
función 𝑓 que devuelve valores de la ecuación diferencial 𝑦 ′ = 𝑔(𝑥, 𝑦) cuando recibe valores
de 𝑥 y 𝑦. Los valores a y b especifican los extremos del intervalo en el cual deseamos evaluar
la función 𝑦 = 𝑓(𝑥). El valor dado en inicial especifica el valor de la función en el extremo
izquierdo del intervalo [a, b].
NOTA.- Las funciones ode23 y ode45 también pueden recibir argumentos adicionales. Se puede usar
un cuatro parámetro para especificar una tolerancia relacionada con el tamaño de paso; las
tolerancias por omisión son 0.001 para ode23 y 0.000001 para ode45. Se puede usar un quinto
parámetro para solicitar que la función exhiba resultados intermedios (es decir, que realice un
rastreo); el valor por omisión de 0 indica que no se deben rastrear los resultados. Si usted decide
utilizar técnicas numéricas con argumentos opcionales, no olvide incluir comentarios en el
programa que definan dichos argumentos opcionales y su propósito en caso de usarse.
EJEMPLO 1:
Vamos a usar ode23 para resolver las Ecuaciones diferenciales Ordinarias presentadas en la primera
página de este documento. Definimos cada ecuación en su respectivo archivo M tal como sigue:
% Ecuacion 1
function dy = g1(x,y)
% g1 evalua una EDO de primer orden
dy = 3*x.^2;
% Ecuacion 2
function dy = g2(x,y)
% g2 evalua una EDO de primer orden
dy = -0.131*y;
% Ecuacion 3
function dy = g3(x,y)
% g3 evalua una EDO de primer orden
dy = 3.4444E-5-0.0015*y;
% Ecuacion 4
function dy = g4(x,y)
% g4 evalua una EDO de primer orden
dy = 2*x.*cos(y).^2;
% Ecuacion 5
function dy = g5(x,y)
% g5 evalua una EDO de primer orden
dy = 3*y + exp(2*x);
3
% Archivo: SolucionesEDO.m
% Resuelve las EDO proporcionadas en g1.m,g2.m,g3.m,g4.m,g5.m
% Utiliza ode23
% Ecuacion 1:
% Intervalo [2,4] suponiendo y = f(2) = 0.5 como condicion inicial
[x,num_y]= ode23('g1',[2,4],0.5);
y = x.^3 - 7.5; % Solucion analitica
plot(x,num_y,x,y,'o')
title('Solucion de la Ecuacion 1')
xlabel('X'), ylabel('Y=f(X)'), grid on
%
% Ecuacion 2:
% Intervalo [0,5] suponiendo y = f(0) = 4 como condicion inicial
[x,num_y]= ode23('g2',[0,5],4);
y = 4*exp(-0.131*x); % Solucion analitica
figure
plot(x,num_y,x,y,'o')
title('Solucion de la Ecuacion 2')
xlabel('X'), ylabel('Y=f(X)'), grid on
%
% Ecuacion 3
% Intervalo [0,120] suponiendo y=f(0) = 0.0022 como condicion
inicial
[x,num_y]= ode23('g3',[0,120],0.0022);
y = 0.022963 - 0.020763*exp(-0.0015*x); % Solucion analitica
figure
plot(x,num_y,x,y,'o')
title('Solucion de la Ecuacion 3')
xlabel('X'), ylabel('Y=f(X)'), grid on
%
% Ecuacion 4
% Intervalo [0,2] suponiendo y=f(0)= pi/4 como condicion inicial
[x,num_y]= ode23('g4',[0,2],pi/4);
y = atan(x.*x + 1); % Solucion analitica
figure
plot(x,num_y,x,y,'o')
title('Solucion de la Ecuacion 4')
xlabel('X'), ylabel('Y=f(X)'), grid on
%
% Ecuacion 5
% Intervalo [0,3] suponiendo y=f(0)=3 como condicion inicial
[x,num_y]= ode23('g5',[0,3],3);
y = 4*exp(3*x) - exp(2*x); % Solucion analitica
figure
plot(x,num_y,x,y,'o')
title('Solucion de la Ecuacion 5')
xlabel('X'), ylabel('Y=f(X)'), grid on
4
% Archivo Heun.m
% Resuelve una EDO de primer orden por el metodo de HEUN
% Este metodo es conocido como Predictor - Corrector
function [t,y] = Heun(f,t,y1)
% [t,y] = Solucion de aplicar Heun
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n = length(t);
h = diff(t);
y = zeros(n,1);
y(1) = y1;
for k = 1:n-1
k1 = feval(f,t(k),y(k))';
yp = y(k) + h(k)*k1; % Predictor
k2 = feval(f,t(k)+h(k),yp)';
y(k+1) = y(k) + h(k)/2*(k1+k2); % Corrector
end
% Archivo EulerMod.m
% Metodo de Euler modificado
function [t,y] = EulerMod(f,t,y1)
% [t,y] = Solucion de aplicar Euler modificado
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n = length(t);
h = diff(t);
y = zeros(n,1);
y(1) = y1;
for k = 1:n-1
y12 = y(k)+h(k)/2*feval(f,t(k),y(k)); % Estimacion de yk + h/2
y(k+1) = y(k) + h(k)*feval(f,t(k)+h(k)/2,y12); % Estimacion de
yk+1
end
5
% Archivo RungeKutta4.m
% Aplica el metodo de Runge-Kutta de cuarto orden
function [t,y] = RungeKutta4(f,t,y1)
% [t,y] = Solucion de aplicar RK4
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n = length(t);
h = diff(t);
y = zeros(n,1);
y(1) = y1;
for k = 1:n-1
k1 = feval(f,t(k),y(k));
k2 = feval(f,t(k)+h(k)/2,y(k)+h(k)/2*k1);
k3 = feval(f,t(k)+h(k)/2,y(k)+h(k)/2*k2);
k4 = feval(f,t(k+1),y(k)+h(k)*k3);
y(k+1) = y(k) +h(k)/6*(k1+2*k2+2*k3+k4);
end
EJEMPLO 2:
Un líquido fluye de un tanque cónico invertido por un orificio circular a razón de
𝑑𝑥 √2𝑔𝑥
= −0.6𝜋𝑟02
𝑑𝑡 𝐴(𝑥)
Donde 𝑟0 = 3 mm es el radio del orificio, 𝑥 es la altura de la superficie del líquido desde el vértice del
cono y 𝐴(𝑥) es el área transversal del depósito a una altura 𝑥. Suponga que la altura inicial del
líquido es de 3 m y el volumen inicial es de 60𝜋 𝑚3 .
a) Hallar el nivel del líquido al cabo de 10 días, mediante los métodos de Euler, Heun y Euler
modificado, con ℎ = 18000
b) Comparar las soluciones obtenidas con la solución exacta del problema.
c) Justificar el orden de cada método observando como disminuye el error al disminuir el
tamaño de paso.
SOLUCION
20 2
𝐴(𝑥) = 𝜋𝑟 2 = 𝜋𝑥
3
𝑑𝑥 √2𝑔𝑥
= −0,6𝜋𝑟02
𝑑𝑡 20𝜋/3𝑥 2
Para hallar el nivel del líquido al cabo de 10 días 𝑡 = 10 ∗ 24 ∗ 3600 = 864000𝑠 con ℎ =
1800, en primer lugar escribimos el archivo deposito.m.
% Archivo deposito.m
% Para resolver el ejemplo de un tanque conico invertido
function z = deposito(t,y)
r0 = 0.003;
g = 9.8;
z = -0.6*pi*r0^2*sqrt(2*g)*(sqrt(y)/((20*pi/3)*y^2));
Ahora aplicamos los métodos de Euler, Heun y Euler modificado respectivamente haciendo:
En la tabla 1, se presentan el nivel del líquido en el depósito al cabo de 10 días, observamos que
apenas ha descendido 0,7 m.
a) Podemos hallar la solución exacta de la EDO resolviéndola por partes, ya que tiene la forma:
𝑑𝑥 √𝑥 √2𝑔
=𝐶 co 𝐶 = −0,6𝜋𝑟02
𝑑𝑡 𝑥2 20𝜋/3
% ARCHIVO nivelexacto.M
% Para resolver el ejemplo de un tanque conico invertido
% Solucion analitica o exacta
function x = nivelexacto(t,x0)
r = 0.003;
g = 9.8;
C = -0.6*pi*r^2*sqrt(2*g)/(20*pi/3);
x = (5/2*C*t + 3^2.5).^(2/5);
De este modo calculamos los errores exactos de las aproximaciones obtenidas haciendo:
7
>> x0 = 3; se = nivelexacto(t,x0)';
>> e1 = max(abs(y1-se))
>> e2 = max(abs(y2-se))
>> e3 = max(abs(y3-se))
b) Para establecer el orden de cada método, vamos a obtener las soluciones aproximadas con el
doble de subintervalos, comparando con la solución exacta obtendremos nuevas
estimaciones para el error, la relación con los errores hallados anteriormente nos indicara el
orden del método. Por ejemplo, para el método de Euler:
10.0077
Repetimos para Heun y para Euler modificado, resultando 𝑒1⁄𝐸1 = 1,988769 ≅ 2, para
Heun 𝑒2⁄𝐸2 = 4,053784 ≅ 4 y para Euler modificado 𝑒3⁄𝐸3 = 3,981835 ≅ 4 Con esto
último se ratifica que el primer método es de orden 1 y los dos siguientes son de orden 2.
EJEMPLO 3:
En un circuito eléctrico, se dispone de un condensador con capacidad constante 𝐶 = 1,1faradios y
una resistencia 𝑅 = 2,1 ohmios. Se le aplica un voltaje
𝑑𝐼 𝐼 𝑑𝐸
𝑅 + =
𝑑𝑡 𝐶 𝑑𝑡
SOLUCION
8
Mostramos los valores de la intensidad, al cabo de los dos primeros segundos con paso 0,2
en la tabla 2, la intensidad del circuito va disminuyendo a lo largo del tiempo.
I Intensidad t Intensidad
0,2 0,757370 1,2 0,444205
0,4 0,565464 1,4 0,526884
0,6 0,439028 1,6 0,613883
0,8 0,382297 1,8 0,683465
1,0 0,389035 2,0 0,718580
d) Para obtener el orden del método, hemos de estimar el error porque no conocemos la
solución exacta. El error de la solución obtenida don paso ℎ = 0,2 se estima mediante la
diferencia con la solución hallada con paso ℎ = 0,1.
>> E1 = max(abs(y1-y2(1:2:end)))
E1 =
3.1590e-006
E2 =
1.9764e-007