Está en la página 1de 18

Informe 4 ”Solución numerica de EDO”

Calculo Numérico, MAT-1123.

Guillermo Antonio Flores Millanao

Profesores : M.J.Andrade, D.Sepulveda, E.Cariaga.


Universidad Católica de Temuco
Facultad de ingenierı́a
julio,2020

1
Sean d1 , d2 , d3 , d4 , d5 , d6 los 6 primeros dı́gitos de su RUN. En mi caso 18.548.5XX-X , entonces
d1 = 1, d2 = 8, d3 = 5, d4 = 4, d5 = 8, d6 = 5. Considere la siguiente ecuación diferencial ordinaria o
PVI
dy
= A · eB·x − C · y
dx
y(0) = D
d4 +d5
donde A,B,C y D son constantes definidas como A = d1 +d2 +d3 , B = d1 +d2 +d3
,C = d1 +d2 +d3 +d4 +d5
y D = d3 + d4 + d5 + d6

1
Para calcular es necesario utilizar el factor integrante y su solución particular debido a que es No
homogénea y esta dada por Z R
R
− P (x)dx
Y =e e P (x)dx f (x)dx

en donde
P (x) = C
f (x) = AeB x
Reemplazando nos queda: Z
−Cx
y=e eCx AeBx dx

Aex(B+C)
y = e−Cx + c1
B+c
Resolviendo el PVI y(0) = 22 y reemplazando los datos para A, B, C y D nos queda
0( 76 +26)
−26(0) e
22 = 14e 6 + c1
7
+ 26

2019
c1 =
94
Aex(B+C) 2019
y = e−Cx +
B+c 94
x( 67 +26)
−26x 14e 2019
y= e 6 +
7
+ 26 94

2
2
Método de euler
Con h = 1/10

0.00000 22.00000 22.00000 0.00000


0.10000 -33.80000 22.04665 55.84665
0.20000 55.60529 22.09748 33.50781
0.30000 -87.30667 22.15285 109.45952
0.40000 141.50119 22.21319 119.28801
0.50000 -224.42935 22.27892 246.70827
0.60000 361.23606 22.35053 338.88553
0.70000 -575.63627 22.42855 598.06482
0.80000 923.56900 22.51356 901.05544
0.90000 -1474.93113 22.60617 1497.53730
1.00000 2362.91780 22.70707 2340.21073

Figura 1: Representación gráfica euler tamaño de paso h = 1/10

3
con h = 1/5

0.00000 22.00000 22.00000 0.00000


0.20000 -89.60000 22.09748 111.69748
0.40000 379.64360 22.21319 357.43041
0.60000 -1590.55800 22.35053 1612.90853
0.80000 6685.02646 22.51356 6662.51290
1.00000 -28071.55259 22.70707 28094.25966
1.20000 117907.11884 22.93677 117884.18207
1.40000 -495202.06732 23.20942 495225.27675
1.60000 2079857.97909 23.53306 2079834.44603
1.80000 -8735392.47744 23.91722 8735416.39467
2.00000 36688661.50349 24.37322 36688637.13027

Figura 2: Representación gráfica euler tamaño de paso h = 1/5

4
Taylor de orden 2
con h = 1/10
0.00000 22.00000 22.00000 0.00000
0.10000 38.80000 22.04665 16.75335
0.20000 68.67178 22.09748 46.57430
0.30000 121.80845 22.15285 99.65560
0.40000 216.35348 22.21319 194.14030
0.50000 384.60197 22.27892 362.32305
0.60000 684.03888 22.35053 661.68835
0.70000 1216.98713 22.42855 1194.55858
0.80000 2165.58113 22.51356 2143.06757
0.90000 3854.01974 22.60617 3831.41357
1.00000 6859.37651 22.70707 6836.66944
1.10000 12208.84188 22.81700 12186.02488
1.20000 21730.81431 22.93677 21707.87755
1.30000 38679.84254 23.06726 38656.77528
1.40000 68849.02265 23.20942 68825.81323
1.50000 122550.06508 23.36431 122526.70077
1.60000 218137.81363 23.53306 218114.28057
1.70000 388283.88952 23.71692 388260.17260
1.80000 691143.77762 23.91722 691119.86039
1.90000 1230234.24010 24.13546 1230210.10464
2.00000 2189815.11260 24.37322 2189790.73938

Figura 3: Representación gráfica tamaño de paso h = 1/10

5
con h = 1/5

0.0000e+00 2.2000e+01 2.2000e+01 0.0000e+00


2.0000e-01 2.0080e+02 2.2097e+01 1.7870e+02
4.0000e-01 1.8664e+03 2.2213e+01 1.8442e+03
6.0000e-01 1.7389e+04 2.2351e+01 1.7367e+04
8.0000e-01 1.6206e+05 2.2514e+01 1.6204e+05
1.0000e+00 1.5104e+06 2.2707e+01 1.5104e+06
1.2000e+00 1.4077e+07 2.2937e+01 1.4077e+07
1.4000e+00 1.3120e+08 2.3209e+01 1.3120e+08
1.6000e+00 1.2227e+09 2.3533e+01 1.2227e+09
1.8000e+00 1.1396e+10 2.3917e+01 1.1396e+10
2.0000e+00 1.0621e+11 2.4373e+01 1.0621e+11

Figura 4: Representación gráfica tamaño de paso h = 1/5

6
Runge-Kutta de orden 4
con h = 1/10

EA_RK4 = 21.447
A =
0.00000 22.00000 22.00000 0.00000
0.10000 16.77936 22.04665 5.26730
0.20000 12.85484 22.09748 9.24263
0.30000 9.90997 22.15285 12.24289
0.40000 7.70599 22.21319 14.50720
0.50000 6.06285 22.27892 16.21607
0.60000 4.84481 22.35053 17.50572
0.70000 3.94959 22.42855 18.47896
0.80000 3.30016 22.51356 19.21339
0.90000 2.83859 22.60617 19.76757
1.00000 2.52136 22.70707 20.18571
1.10000 2.31585 22.81700 20.50115
1.20000 2.19770 22.93677 20.73907
1.30000 2.14879 23.06726 20.91847
1.40000 2.15574 23.20942 21.05369
1.50000 2.20877 23.36431 21.15555
1.60000 2.30085 23.53306 21.23221
1.70000 2.42708 23.71692 21.28984
1.80000 2.58415 23.91722 21.33308
1.90000 2.77002 24.13546 21.36543
2.00000 2.98367 24.37322 21.38955

7
Figura 5: Representación gráfica tamaño de paso h = 1/10

8
con h = 1/5
EA_RK4 = 4.0050e+25
A =

0.0000e+00 2.2000e+01 2.2000e+01 0.0000e+00


2.0000e-01 3.5183e+02 2.2097e+01 3.2973e+02
4.0000e-01 5.7432e+03 2.2213e+01 5.7210e+03
6.0000e-01 9.3892e+04 2.2351e+01 9.3870e+04
8.0000e-01 1.5352e+06 2.2514e+01 1.5351e+06
1.0000e+00 2.5100e+07 2.2707e+01 2.5100e+07
1.2000e+00 4.1040e+08 2.2937e+01 4.1040e+08
1.4000e+00 6.7102e+09 2.3209e+01 6.7102e+09
1.6000e+00 1.0972e+11 2.3533e+01 1.0972e+11
1.8000e+00 1.7939e+12 2.3917e+01 1.7939e+12
2.0000e+00 2.9331e+13 2.4373e+01 2.9331e+13
2.2000e+00 4.7957e+14 2.4914e+01 4.7957e+14
2.4000e+00 7.8412e+15 2.5557e+01 7.8412e+15
2.6000e+00 1.2821e+17 2.6320e+01 1.2821e+17
2.8000e+00 2.0962e+18 2.7225e+01 2.0962e+18
3.0000e+00 3.4274e+19 2.8299e+01 3.4274e+19
3.2000e+00 5.6039e+20 2.9575e+01 5.6039e+20
3.4000e+00 9.1627e+21 3.1089e+01 9.1627e+21
3.6000e+00 1.4981e+23 3.2886e+01 1.4981e+23
3.8000e+00 2.4495e+24 3.5019e+01 2.4495e+24
4.0000e+00 4.0050e+25 3.7551e+01 4.0050e+25

Figura 6: Representación gráfica tamaño de paso h = 1/5

9
3
euler

h=1/10 h=1/5
x numérico exacto numérico exacto
0 3139226053.70524 37.55102 6.2665e+13 3.7551e+01
1/10 -1957760906.486300 37.551018 -1.4888e+13 3.6231e+01
3/10 -760966249.58113 37.55102 3.5272e+12 3.6231e+01

Figura 7: Tabla método de Euler

Taylor de orden 2

h=1/10 h=1/5
x numérico exacto numérico exacto
0 2189815.11260 24.37322 1.0621e+11 2.4373e+01
1/10 1227561.997758 24.373220 1.1371e+10 2.4135e+01
3/10 385520.89042 24.37322 1214038802.56701 24.13546

Figura 8: Tabla método de Taylor de orden 2

Runge-Kutta clásico de orden 4

h=1/10 h=1/5
x numérico exacto numérico exacto
0 16.13882 37.55102 4.0050e+25 3.7551e+01
1/10 16.138911 37.551018 2.4442e+24 3.6231e+01
3/10 16.13919 37.55102 1.4875e+23 3.6231e+01

Figura 9: Tabla método Runge-Kutta clásico de orden 4

10
4
Euler

Figura 10: Representación gráfica tamaño de paso h = 1/5

11
Taylor de orden 2

Figura 11: Representación gráfica tamaño de paso h = 1/5

Runge-kutta clásico de orden 4

Figura 12: Representación gráfica tamaño de paso h = 1/5

12
5
Error asociado a los métodos utilizados

Tamaño de paso x Euler Taylor Runge-Kutta


h=1/10 0 3139226016.15422 2.2326e+11 21.41220
h=1/5 0 6.2665e+13 5.2520e+20 4.0050e+25

Figura 13: Tabla errores asociados a los métodos con h = 1/10 y h = 1/5

13
Anexo de programas .m en octave
euler
function A=euler(x0,xM,y0,h)
# METODO DE EULER.
# Condicion Inicial:y(x0)=y0.
# Intervalo de Solucion: [x0,xM].
# Tama~no de Paso: 0<h<1.
# A: matriz de 4 columnas:
# Columna 1: elementos de la particion del intervalo [x0,xM].
# Columna 2: aproximacion de Euler yi aprox y(xi).
# Columna 3: solucion exacta evaluada en la entrada xi de la particion.
# Columna 4: error absoluto de la aproximacion yi.
# AUTOR: EMILIO CARIAGA L., 24 MAYO 2017. OCTAVE 4.0.0. (2015).
# Revisión (E.Cariaga): miércoles 3 de junio 2020.
%
% Especifica partición del intervalo: [x0,xM].
par=x0:h:xM;
m=max(size(par));
# Llenado columnas 1 (partición) y 3 (solución exacta evaluada en partición).
for i=1:1:m
A(i,1)=par(i);
A(i,3)=exacta(par(i));
endfor
# Formula de Euler. Llena columna 2 (aproximaciones de Euler).
A(1,2)=y0;
for i=2:1:m
A(i,2)=A(i-1,2)+h*f(A(i-1,1),A(i-1,2));
endfor
# Error Absoluto (aprox Euler-Exacta). Llena columna 4.
for i=1:1:m
A(i,4)=abs(A(i,2)-A(i,3));
endfor
#
EA_euler=max(A(:,4))
# Graficos:
subplot(2,1,1)
plot(A(:,1),A(:,2),’--’,A(:,1),A(:,3),’-’);
xlabel(’Partición (A(:,1))’)
ylabel(’y_euler A(:,2) & y_exacta A(:,3)’)
grid on
% Error Absoluto.
subplot(2,1,2)
plot(A(:,1),A(:,4),’o’)
xlabel(’Partición (A(:,1))’)
ylabel(’A(:,4): |y_euler-y_exacta|’)

14
grid on
#
endfunction
#
# FUNCIONES AUXILIARES
# Funcion Pendiente:
function dy=f(x,y)
A=14;
B=6/7;
C=26;
dy=A*exp(B*x)-(C*y);
endfunction
#
# Solucion Exacta:
function y=exacta(x)
A=14;
B=6/7;
C=26;
y=(((A*exp(-C*x))*(exp(x*(B+C))))/(B+C))+(2019/94);
endfunction

Taylor de orden 2
function A=Taylor2(x0,xM,y0,h)
# METODO DE TAYLOR DE ORDEN 2.
# Condicion Inicial:y(x0)=y0.
# Intervalo de Solucion: [x0,xM].
# Tama~no de Paso: 0<h<1.
# A: matriz de 4 columnas:
# Columna 1: elementos de la particion del intervalo [x0,xM].
# Columna 2: aproximacion de Taylor-2 yi aprox y(xi).
# Columna 3: solucion exacta evaluada en la entrada xi de la particion.
# Columna 4: error absoluto de la aproximacion yi.
# AUTOR: EMILIO CARIAGA L. 3-JUNIO-2020. OCTAVE 4.2.2 (2018).
%
% Especifica partición del intervalo: [x0,xM].
par=x0:h:xM;
m=max(size(par));
# Llenado columnas 1 (partición) y 3 (solución exacta evaluada en partición).
for i=1:1:m
A(i,1)=par(i);
A(i,3)=exacta(par(i));
endfor
# Formula de Taylor-2. Llena columna 2 (aproximaciones de Taylor-2).
A(1,2)=y0;
for i=2:1:m
F1=f(A(i-1,1),A(i-1,2));

15
F2=fx(A(i-1,1),A(i-1,2))+fy(A(i-1,1),A(i-1,2))*f(A(i-1,1),A(i-1,2));
A(i,2)=A(i-1,2)+h*F1+0.5*h*h*F2;
endfor
# Error Absoluto (aprox Euler-Exacta). Llena columna 4.
for i=1:1:m
A(i,4)=abs(A(i,2)-A(i,3));
endfor
EA_t2=max(A(:,4))
# Graficos:
subplot(2,1,1)
plot(A(:,1),A(:,2),’--’,A(:,1),A(:,3),’-’);
xlabel(’Partición (A(:,1))’)
ylabel(’y_t2 A(:,2) & y_exacta A(:,3)’)
grid on
% Error Absoluto.
subplot(2,1,2)
plot(A(:,1),A(:,4),’o’)
xlabel(’Partición (A(:,1))’)
ylabel(’A(:,4): |y_t2-y_exacta|’)
grid on
#
endfunction
#
# FUNCIONES AUXILIARES
function dy=f(x,y)
A=14;
B=6/7;
C=26;
dy=A*exp(B*x)-(C*y);
endfunction
#
function dy=fx(x,y)
dy=12*exp(6*x/7);
endfunction
#
function dy=fy(x,y)
dy=-26;
endfunction
# Solucion Exacta:
function y=exacta(x)
A=14;
B=6/7;
C=26;
y=(((A*exp(-C*x))*(exp(x*(B+C))))/(B+C))+(2019/94);
endfunction

16
Runge-Kutta clasico de orden 4
function A=rungeku(x0,xM,y0,h)
# METODO DE RUNGE-KUTTA-4 CLÁSICO.
# Condicion Inicial:y(x0)=y0.
# Intervalo de Solucion: [x0,xM].
# Tama~no de Paso: 0<h<1.
# A: matriz de 4 columnas:
# Columna 1: elementos de la particion del intervalo [x0,xM].
# Columna 2: aproximacion de RK4 yi aprox y(xi).
# Columna 3: solucion exacta evaluada en la entrada xi de la particion.
# Columna 4: error absoluto de la aproximacion yi.
# AUTOR: EMILIO CARIAGA L., 10-junio-2020. vOctave 4.2.2 (2018).
%
% Especifica partición del intervalo: [x0,xM].
par=x0:h:xM;
m=max(size(par));
# Llenado columnas 1 (partición) y 3 (solución exacta evaluada en partición).
for i=1:1:m
A(i,1)=par(i);
A(i,3)=exacta(par(i));
endfor
# Formula de Euler. Llena columna 2 (aproximaciones de Euler).
A(1,2)=y0;
for i=2:1:m
%
u=A(i-1,1);
v=A(i-1,2) ;
%
K1=f(u,v);
K2=f(u+h/2,v+h*K1/2);
K3=f(u+h/2,v+h*K2/2);
K4=f(u+h,v+K3*h);
%
A(i,2)=A(i-1,2)+(h/6)*(K1+2*K2+2*K3+K4);
%
endfor
# Error Absoluto (aprox Euler-Exacta). Llena columna 4.
for i=1:1:m
A(i,4)=abs(A(i,2)-A(i,3));
endfor
#
EA_RK4=max(A(:,4))
# Graficos:
subplot(2,1,1)
plot(A(:,1),A(:,2),’--’,A(:,1),A(:,3),’-’);
xlabel(’Partición (A(:,1))’)

17
ylabel(’y_RK4 A(:,2) & y_exacta A(:,3)’)
grid on
% Error Absoluto.
subplot(2,1,2)
plot(A(:,1),A(:,4),’o’)
xlabel(’Partición (A(:,1))’)
ylabel(’A(:,4): |y_RK4-y_exacta|’)
grid on
#
endfunction
#
# FUNCIONES AUXILIARES
# Funcion Pendiente:
function dy=f(x,y)
A=14;
B=6/7;
C=26;
dy=A*exp(B*x)-(C*y);
endfunction
#
# Solucion Exacta:
function y=exacta(x)
A=14;
B=6/7;
C=26;
y=(((A*exp(-C*x))*(exp(x*(B+C))))/(B+C))+(2019/94);
endfunction

18

También podría gustarte