Laboratorio 2 Métodos Numéricos Avanzados en Ingeniería
Laboratorio 2 Métodos Numéricos Avanzados en Ingeniería
Laboratorio 2 Métodos Numéricos Avanzados en Ingeniería
Fecha: 15-05-2017
Tema:
Mtodo de Runge- Kutta & Adams-Bashforth-Moulton de orden 4
Actividades
Para la ejecucin del presente laboratorio es necesario que los alumnos tengan instalado
en sus ordenadores:
http://programa-me.com/documents/GuiaCompilacionCLI.pdf
2 orden:
1 = ( , )
2 = (+1 , + 1 )
1 + 2
+1 = +
2
Asignatura Datos del alumno Fecha
Mtodos Numricos Apellidos: Moreira Vlez
Avanzados en 15-05-2017
Ingeniera Nombre: Jos Gabriel
4 orden:
1 = ( , )
1
2 = ( + , + )
2 2
2
3 = ( + , + )
2 2
4 = ( + , + 3 )
1 + 22 + 23 + 4
+1 = +
6
Presentars un men en el que el usuario pueda escoger por cul de los dos
mtodos quiere resolver el problema.
Una vez seleccionado el mtodo para la resolucin, la aplicacin pedir que sea
introducido el tamao de paso (utilizar = 0,2; 0,1; 0,05; 0,01).
Finalmente, el programa deber sugerir si se quiere analizar el mismo mtodo
cambiando el tamao de paso, volver al men para seleccionar el mtodo o salir de
la ejecucin.
2. Adems, generars un informe con los resultados obtenidos para cada uno de los
mtodos y cada uno de los tamaos de paso, hacer una comparativa y exponer las
conclusiones que estimes oportunas.
/*
++++++++++++++++++++++++++++++++++++++++++
LABORATORIO 1. RUNGE-KUTTA
Metodos Numericos Avanzados en Ingeniera
Alumno:
DNI:
++++++++++++++++++++++++++++++++++++++++++
*/
[CODE]
o Leame.txt. En este archivo tendr que aparecer la forma de ejecucin y todas las
notas que se consideren oportunas.
o RK.cpp + todos los archivos auxiliares que sean necesarios.
[REPORT]
o Informe.docx
()
()= ; (0)= 0 ; (0)= 0
= 2 + 2
= 398598.309
Donde defino mis siguientes variables;
1 =
2 =
{
3 =
4 =
2 =
Donde {
4 =
Reemplazamos en las ecuaciones pertinentes t convertimos en primer orden
1
2 =
(12 + 32 )3
3
4 =
(12 + 32 )3
Literal b)
Con las siguientes condiciones iniciales;
(0) = 42167.911
(0) = 1.07168
(0) =
(0)
= 2.8827
Con tiempo de = 24
240
= = = 48
0.5 0.5
function RK4
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-KUTTA
DE ORDEN 4\n')
fprintf('\n \tLABORATORIO 1. RUNGE-KUTTA\n')
fprintf('\n \tMtodos Numricos Avanzados en Ingeniera\n')
fprintf('\n \tAlumno: Moreira Vlez Jos Gabriel\n')
fprintf('\n \tDNI: 1311265852\n')
h=(b-a)/N;
x=a:h:b;
x=x(:);
y=zeros(N+1,4);
y(1,:)=y0;
for k=1:N
k1=feval(f,x(k),y(k,:))';
k2=feval(f,x(k)+h/2,y(k,:)+h*k1/2)';
k3=feval(f,x(k)+h/2,y(k,:)+h*k2/2)';
k4=feval(f,x(k+1),y(k,:)+h*k3)';
y(k+1,:)=y(k,:)+(h/6)*(k1+2*k2+2*k3+k4);
end
end
function w=satelite(x,y)
w=[y(2);-398598.309*y(1)/((sqrt((y(1))^2+(y(3))^2))^3);y(4);-
398598.309*y(3)/((sqrt((y(1))^2+(y(3))^2))^3)];
end
LABORATORIO 1. RUNGE-KUTTA
DNI: 1311265852
x =0
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.0000
10.5000
11.0000
11.5000
12.0000
12.5000
13.0000
13.5000
14.0000
14.5000
15.0000
15.5000
16.0000
16.5000
17.0000
17.5000
18.0000
18.5000
19.0000
19.5000
20.0000
20.5000
21.0000
21.5000
22.0000
22.5000
23.0000
23.5000
24.0000
y =1.0e+004 *
>>
En el tiempo = 24 horas la posicin es la siguiente;
X = 42142
Y = 691850
Y su grfico es el siguiente;
>> plot ([0:0.5:24],x);hold on; plot ([0:0.5:24],y);grid on
4
x 10
4.5
3.5
2.5
1.5
0.5
-0.5
0 5 10 15 20 25
for k=1:3
k1=feval(f,x(k),y(k,:))';
k2=feval(f,x(k)+h/2,y(k,:)+h*k1/2)';
k3=feval(f,x(k)+h/2,y(k,:)+h*k2/2)';
k4=feval(f,x(k+1),y(k,:)+h*k3)';
y(k+1,:)=y(k,:)+(h/6)*(k1+2*k2+2*k3+k4);
end
for k=4:N
y(k+1,:)=y(k,:)+(h/24)*(55*feval(f,x(k),y(k,:))'-59*feval(f,x(k-
1),y(k-1,:))'+37*feval(f,x(k-2),y(k-2,:))'-9*feval(f,x(k-3),y(k-
3,:))');
y(k+1,:)=y(k,:)+(h/24)*(9*feval(f,x(k+1),y(k+1,:))'+19*feval(f,x(k),y(
k,:))'-5*feval(f,x(k-1),y(k-1,:))'+feval(f,x(k-2),y(k-2,:))');
end
end
function z=satellite(x,y)
z=[y(2);-398598.309*y(1)/((sqrt((y(1))^2+(y(3))^2))^3);y(4);-
398598.309*y(3)/((sqrt((y(1))^2+(y(3))^2))^3)];
end
x=
Columns 1 through 9
Columns 10 through 18
Columns 19 through 27
Columns 28 through 36
Columns 37 through 45
Columns 46 through 49
y=
1.0e+004 *
>>