SlideShare a Scribd company logo
1 of 19
Download to read offline
Movimiento de cohetes
Por Vicente Herrera García
Un breve estudio del movimiento de sistemas de masa variable frente a la ley de la
gravedad, expresada en forma genérica en función de la distancia; y la resolución del
problema empleando algoritmos numéricos codificados en Matlab.
Realizado para la asignatura de Análisis Numérico, curso 2001/2002, de la Ingeniería
Técnica de Informática de Sistemas en la universidad de Huelva.
Movimiento de cohetes
Ley de Newton para el movimiento, en su expresión más general ,es:
vmp
dt
pd
Fi
rr
rr
=
=∑
Para el caso de movimiento lineal de un cuerpo de masa variable, esta ecuación queda
como:
)()()()( tvtmtvtmF
vmp
dt
dp
F
⋅+⋅=⇒




⋅=
=
&&
Si consideramos que el cuerpo es un cohete que “expulsa” combustible a una velocidad
constante, podemos expresar su masa como:
tmMtm
mtm
e
e
⋅−=
−=
0)(
)(constante)(&
Tenemos además que considerar la ley de acción y reacción, según la cual podemos
averiguar la fuerza que la masa expulsada ejerce sobre el cohete, propulsándolo, a partir
de la que el cohete ejerce sobre esta.
En todo momento, el cohete expulsará el propelente con una velocidad ve constante,
relativa a la propia velocidad del cohete. Luego el propelente ha ganado una cantidad de
movimiento
∆pe = me ve
Es decir, se ha aplicado sobre el una fuerza
|Fe | = ∆pe = me ve
Luego este ejerce la misma fuerza sobre el cohete, en sentido contrario.
Representamos el sistema de 2 ecuaciones diferenciales:
vx
vmvtmMFF eee
=
⋅−⋅−=+
&
&)( 0
Siendo F el resto de fuerzas aplicables en el problema
Utilizando la ley de la gravitación universal:
2
)(
r
Mtm
GF t
g
⋅
=
El caso más general, el cohete se encuentra a una distancia arbitraria r medida
desde el centro de la tierra, y es atraído por esta.
Se supone r lo suficientemente grande como para que la aproximación P = -mg no sea
adecuada, aunque para valores cercanos a la superficie se obtendrán los mismos
resultados.
Por otra parte, para valores muy grandes de r, la solución será la misma que considerar
que F=0.
Si incluimos en la ecuación anterior:
r = Rt + x
m(t) = M0 – met
nos queda:
2
0
)(
)(
xR
MtmM
GF
t
te
g
+
⋅−
−=
Donde hemos representado la fuerza - Fg al tratarse de una fuerza atractiva
Simplificando:
vmvtmM
xR
MtmM
Gvm ee
t
te
ee ⋅−⋅−=
+
⋅−
− &)(
)(
)(
02
0
vx
v
tmM
vvm
xR
M
Gv
e
ee
t
t
=
⋅
−
+
+
+
−=
&
&
0
2
)(
)(
Constante gravitatoria universal: G = 6’6726·10-11
Masa de la tierra: Mt = 5’98·1024
kg
Radio de la tierra: Rt = 6’370 ·106
m
Masa del cohete + combustible inicial: M0 (kg)
Ratio de consumo de combustible: me (kg/s)
Velocidad de expulsión del combustible: ve (m/s)
Posición del cohete, desde la superficie de la tierra: x (m)
Codificamos en Matlab este sistema de ecuaciones diferenciales:
function Y=fc(X)
t=X(1);
v=X(2); %corresponde a Y(1)=v'
x=X(3); %corresponde a Y(2)=x'
G=6.6726e-11;
Mt=5.98e24;
Rt=6.370e6;
Mo=208000; %Cohete Ariane I
me=10000;
ve=2000;
Y(1)=-G*Mt/(Rt+x)^2+me*v/(Mo-me*t);
Y(2)=v;
Algunos cálculos adicionales que pueden resultar útiles:
Tiempo de duración del combustible
Si tenemos un cohete de masa total
M0 = Mv + Mc
donde Mv es la masa del cohete vacío de combustible
Mc es la masa total de combustible inicial
el tiempo que durará el combustible cuando se consuma con velocidad constante me
será:
Mc - met = 0 t = Mc/me
Nótese que la mayoria de los cohetes poseen distintas etapas con diferentes sistemas de
propulsion, consumo y empuje.
Fuerza de empuje
Es usual dar el empuje del cohete en kgf (kilogramo fuerza).
Esta unidad corresponde a la fuerza que ejerce un kg en la superficie de la tierra, es
decir
1 kgf = 9’8 N
Si recordamos la formula anterior:
|Fe | = ∆pe = me ve
Al conocer el empuje y el consumo de combustible o la velocidad de expulsión,
podremos calcular el otro parámetro desconocido.
Ejemplos
El cohete europeo Ariane I creado en 1979 pesaba 208.000 Kg
Si suponemos que en la etapa de lanzamiento, en los primeros 60 segundos de
despegue, este se comporta como si estuviera quemando 2000 kg de combustible
por segundo, expulsándolos a una velocidad de 2000 m/s, ¿a qué altura se
encontrará transcurridos esos 60 segundos? ¿con qué velocidad viajará?
Considerar el peso del combustible incluido en el peso del cohete dado.
Utilizaremos
me=1500;
ve=2000;
Mo=208000;
En el intervalo de tiempo [0,60] para valores iniciales x=0, v=0
Mediante Runge Kutta con tamaño de paso 1:
[R,s,h]=rk4sist('fc',0,60,[0 0],60);
Evolución del sistema:
Obtenemos los valores finales:
t = 60 s
v = 711 m/s
x = 1.5686·104
m
La lanzadera espacial (Space Shuttle) creada por Estados Unidos en 1981 pesa
2.040.815 Kg
Si suponemos que cuando se encuentra a una altitud de 1000 Km y con una
velocidad de 1000 m/s se desprende de sus cohetes de aceleración inicial, quedando
con el peso especificado y quemando 100 Kg de combustible por segundo,
expulsándolo a 1000 m/s, ¿tendrá en estas condiciones empuje suficiente para
continuar el ascenso?
Utilizaremos
me=100;
ve=1000;
Mo=2040815;
Representamos la evolución del sistema entre [0,60] con tamaño de paso h=1 mediante
el metodo de Gragg de paso fijo para sistemas de ecuaciones, con las condiciones
iniciales v=1000 (m/s), x=500000 (m)
R=graggsist('fc',0,60,[1000 50000],60)
Vemos que, aunque la posición continua aumentando durante el primer minuto de
funcionamiento de la segunda etapa del cohete, la velocidad cae rápidamente, luego
llegará un momento en que la posición deje de aumentar, y el cohete caerá.
Si buscamos cuando llegará el cohete a chocar contra el suelo, entre los valores t=0 y
t=300 s, con 50 muestras (tamaño de paso h=6 ).
R=graggsist('fc',0,300,[1000 50000],50);
Vemos como algo después de los 250 segundos, el cohete ha perdido por completo toda
la altitud que había conseguido, y ha impactado contra el suelo.
Será entonces necesario aumentar la masa de combustible quemado por segundo, o
aumentar la velocidad de expulsión de este.
Código de los algoritmos para
Matlab
Método de Euler
function [E,sol,h]=euler(f,a,b,ya,M)
%Datos
% -function E=euler(f,a,b,ya,M)
% -f es la funcion
% -a y b son los extremos del intervalo
% -ya es la condicion inicial y(a)
% -M es el numero de pasos
%Resultado
% -E=[T' W'] siendo T el vector de abcisas e Y el de ordenadas
h=(b-a)/M;
T=zeros(1,M+1);
W=zeros(1,M+1);
T=a:h:b;
W(1)=ya;
for i=1:M
pto=[T(i),W(i)];
W(i+1)=W(i)+h*feval(f,pto);
end
sol=W(M+1);
E=[T' W'];
Método de Euler para sistemas de dos ecuaciones
function [E,sol,h]=eulersist(f,a,b,ya,M)
%Datos
% -function E=eulersist(f,a,b,ya,M)
% -f es el sistema de ecuaciones
% -a y b son los extremos del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
%Resultado
% -E=[T' W'] siendo T el vector de abcisas e Y el de ordenadas
h=(b-a)/M;
T=zeros(1,M+1);
W=zeros(M+1,2);
T=a:h:b;
W(1,1)=ya(1);
W(1,2)=ya(2);
for i=1:M
pto=[T(i),W(i,1),W(i,2)];
y=feval(f,pto);
W(i+1,1)=W(i,1)+h*y(1);
W(i+1,2)=W(i,2)+h*y(2);
end
sol(1)=W(M+1,1);
sol(2)=W(M+1,2);
E=[T' W];
Método de Euler con paso variable
function E=eulervar(f,a,b,ya,M,tol,tolh)
%Datos
% -function E=eulervar(f,a,b,ya,M,tol,tolh)
% -f es la funcion
% -a y b son los extremos del intervalo
% -ya es la condicion inicial y(a)
% -M es el numero de pasos
% -tol es la tolerancia para cada paso
% -tolh es la tolerancia para h
%Resultado
% -E=[TP' T' W'] siendo T el vector de abcisas e Y el de ordenadas
h=(b-a)/M;
W=zeros(1,M+1);
W(1)=ya;
TP(1)=h;
i=1;
p=1;
T(i)=a;
while (T(i)<b)
q=0;
pto=[T(i),W(i)];
[X,W(i+1),hf]=euler(f,T(i),T(i)+h,W(i),1);
[X,A(i),hf]=euler(f,T(i),T(i)+h,W(i),2);
%W(i+1)=W(i)+h*feval(f,pto);
%A(i)=W(i)+h/2*feval(f,pto);
err=abs((W(i+1)-A(i))/((2^p)-1));
n=1;
while(err>tol)
[X,W(i+1),hf]=euler(f,T(i),T(i)+h,W(i),2^n);
[X,A(i),hf]=euler(f,T(i),T(i)+h,W(i),2^(n+1));
%W(i+1)=W(i)+h*feval(f,pto);
%A(i)=W(i)+h/2*feval(f,pto);
err=abs((W(i+1)-A(i))/((2^p)-1));
n=n+1;
q=1;
TP(i+1)=2*hf;
end
if (q==1)
%h=2*hf;
TP(i+1)=2*hf;
end
if (h<tolh)
disp('h es menor que tolh');
h=2*hf;
end
i=i+1;
T(i)=T(i-1)+h;
if (T(i)>b)
T(i)=b;
end
if (q==0)
TP(i)=h;
end
end
E=[TP' T' W'];
Método de Euler para sistemas con dos ecuaciones, paso variable.
function [E,sol]=eulersistvar2(f,a,b,ya,M,tol,tolh)
%Datos
% -function [E,sol]=eulersistvar2('f',a,b,ya,M,tol,tolh)
% -f es la funcion
% -a y b son los extremos del intervalo
% -ya es la condicion inicial y(a)
% -M es el numero de pasos
% -tol es la tolerancia para cada paso
% -tolh es la tolerancia para h
%Resultado
% -E=[TP' T' W'] siendo T el vector de abcisas e Y el de ordenadas
% -sol es f(b)
h=(b-a)/M;
W(1,1)=ya(1);
W(1,2)=ya(2);
TP(1)=h;
i=1;
p=1;
T(i)=a;
while (T(i)<(b-h))
q=0;
pto=[T(i),W(i,1)];
[X,P,hf]=eulersist(f,T(i),T(i)+h,W(i,:),1);
W(i+1,1)=P(1);
W(i+1,2)=P(2);
[X,AA,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2);
A(i,1)=AA(1);
A(i,2)=AA(2);
err=abs((W(i+1,1)-A(i,1))/((2^p)-1));
err2=abs((W(i+1,2)-A(i,2))/((2^p)-1));
n=1;
while((err>tol)&(err2>tol))
[X,P,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2^n);
W(i+1,1)=P(1);
W(i+1,2)=P(2);
[X,AA,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2^(n+1));
A(i,1)=AA(1);
A(i,2)=AA(2);
err=abs((W(i+1,1)-A(i,1))/((2^p)-1));
err2=abs((W(i+1,2)-A(i,2))/((2^p)-1));
n=n+1;
q=1;
TP(i+1)=2*hf;
end
if (q==1)
%h=2*hf;
TP(i+1)=2*hf;
end
if (h<tolh)
disp('h es menor que tolh');
h=2*hf;
end
i=i+1;
T(i)=T(i-1)+h;
if (T(i)>b)
T(i)=b;
end
if (q==0)
TP(i)=h;
end
end
E=[TP' T' W];
sol(1)=W(i,1);
sol(2)=W(i,2);
Método de Gragg
function [W,FT,err]=gragg3(f,a,b,ya,n,tol,M)
%Datos
% -function [W,FT,err,h]=gragg3(f,a,b,ya,n,tol,M)
% -f es la funcion
% -a y b son los extremos del intervalo
% -n es el numero maximo de filas de la tabla
% -tol es la tolerancia
% -M es el numero de pasos
%Resultados
% -W es el esquema de Gragg
% -FT es la aproximacion a la f(b)
% -err es una estimacion del error
G=gragg(f,a,b,ya,M);
err=1;
J=0;
W=zeros(4,4);
W(1,1)=G(M+1,2);
while ((err>tol)&(J<n))%&(J<n))|(J<4)
J=J+1;
M=2*M;
G=gragg(f,a,b,ya,M);
W(J+1,1)=G(M+1,2);
for K=1:J
W(J+1,K+1)=W(J+1,K)+(W(J+1,K)-W(J,K))/(4^K-1);
end
err=abs(W(J,J)-W(J+1,K+1));
end
FT=W(J+1,J+1);
function G=gragg(f,a,b,ya,M)
%Datos
% -function G=gragg(f,a,b,ya,M)
% -f es la funcion
% -a y b son los extremos del intervalo
% -ya es la condicion inicial y(a)
% -M es el numero de pasos
%Resultado
% -G=[T' W'] siendo T el vector de abcisas e Y el de ordenadas
h=(b-a)/M;
T=zeros(1,M+2);
W=zeros(1,M);
T=a:h:b;
W(1)=ya;
for i=1:M-1
pto=[T(i),W(i)];
W(i+1)=W(i)+h*feval(f,pto);
pto2=[T(i+1),W(i+1)];
W(i+2)=W(i+1)+(2*h*feval(f,pto2));
end
G=[T' W'];
Método de Gragg para sistemas de dos ecuaciones
function [X,Y,FT,errx,erry,h]=gragg3sist(f,a,b,ya,n,tolx,toly,M)
%Datos
% -function [X,Y,FT,errx,erry,h]=gragg3sist(f,a,b,ya,n,tolx,toly,M)
% -f es el sistema
% -a y b son los extremos del intervalo
% -n es el numero maximo de filas de la tabla
% -tol es la tolerancia
% -M es el numero de pasos
%Resultados
% -X e Y son el esquema de Gragg
% -FT es la aproximacion a la f1(b) y f2(b)
% -err es una estimacion del error
% -h es el menor de los incrementos usados
G=graggsist(f,a,b,ya,M);
errx=1;
erry=1;
J=0;
X=zeros(4,4);
X(1,1)=G(M+1,2);
Y=zeros(4,4);
Y(1,1)=G(M+1,3);
while ((errx>tolx)&(J<n)&(erry>toly))%&(J<n))|(J<4)
J=J+1;
M=2*M;
G=graggsist(f,a,b,ya,M);
X(J+1,1)=G(M+1,2);
Y(J+1,1)=G(M+1,3);
for K=1:J
X(J+1,K+1)=X(J+1,K)+(X(J+1,K)-X(J,K))/(4^K-1);
Y(J+1,K+1)=Y(J+1,K)+(Y(J+1,K)-Y(J,K))/(4^K-1);
end
errx=abs(X(J,J)-X(J+1,K+1));
erry=abs(Y(J,J)-Y(J+1,K+1));
end
FT=[X(J+1,J+1) Y(J+1,J+1)];
function G=graggsist(f,a,b,ya,M)
%Datos
% -function G=graggsist(f,a,b,ya,M)
% -f es el sistema
% -a y b son los extremos del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
%Resultado
% -G=[T' W'] siendo T el vector de abcisas e Y el de ordenadas
h=(b-a)/M;
T=zeros(1,M+2);
W=zeros(M+1,2);
T=a:h:b;
W(1,1)=ya(1);
W(1,2)=ya(2);
for i=1:M-1
pto=[T(i),W(i,1),W(1,2)];
F=feval(f,pto);
W(i+1,1)=W(i,1)+h*F(1);
W(i+1,2)=W(i,2)+h*F(2);
pto2=[T(i+1),W(i+1,1),W(i+1,2)];
F=feval(f,pto2);
W(i+2,1)=W(i+1,1)+(2*h*F(1));
W(i+2,2)=W(i+1,2)+(2*h*F(2));
end
G=[T' W];
Método de Runge-Kutta
function [R,sol,h]=rk4(f,a,b,ya,M)
%Datos
% -function [R,sol]=rk4(f,a,b,ya,M)
% -f es la funcion
% -a y b son los extremos derecho e izquierdo del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
%Resultado
% -R=[T'Y'] T abcisas e Y ordenadas
% -sol es f(b)
% -h es el incremento usado
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
Y(1)=ya;
for j=1:M
pto=[T(j),Y(j)];
k1=h*feval(f,pto);
pto=[T(j)+h/2,Y(j)+k1/2];
k2=h*feval(f,pto);
pto=[T(j)+h/2,Y(j)+k2/2];
k3=h*feval(f,pto);
pto=[T(j)+h,Y(j)+k3];
k4=h*feval(f,pto);
Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6;
end
sol=Y(M+1);
R=[T' Y'];
Método Runge-Kutta para sistemas de dos ecuaciones
function [R,sol,h]=rk4sist(f,a,b,ya,M)
%Datos
% -function [R,sol,h]=rk4sist('f',a,b,ya,M)
% -f es el sistema
% -a y b son los extremos derecho e izquierdo del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
%Resultado
% -R=[T'Y'] T abcisas e Y ordenadas
% -sol es f(b)
% -h es el incremento usado
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(M+1,2);
T=a:h:b;
Y(1,1)=ya(1);
Y(1,2)=ya(2);
for j=1:M
y1=Y(j,1);
y2=Y(j,2);
pto=[T(j),y1,y2];
F=feval(f,pto);
k1(1,1)=F(1);
k1(1,2)=F(2);
pto=[T(j)+h/2,y1+h*k1(1,1)/2,y2+h*k1(1,2)/2];
F=feval(f,pto);
k2(1,1)=F(1);
k2(1,2)=F(2);
pto=[T(j)+h/2,y1+h*k2(1,1)/2,y2+h*k2(1,2)/2];
F=feval(f,pto);
k3(1,1)=F(1);
k3(1,2)=F(2);
pto=[T(j)+h,y1+h*k3(1,1),y2+h*k3(1,2)];
F=feval(f,pto);
k4(1,1)=F(1);
k4(1,2)=F(2);
Y(j+1,1)=Y(j,1)+h*(k1(1,1)+2*k2(1,1)+2*k3(1,1)+k4(1,1))/6;
Y(j+1,2)=Y(j,2)+h*(k1(1,2)+2*k2(1,2)+2*k3(1,2)+k4(1,2))/6;
end
sol(1,1)=Y(M+1,1);
sol(1,2)=Y(M+1,2);
R=[T' Y];
Método Runge-Kutta con paso variable
function [R,sol]=rk4var(f,a,b,ya,M,tol,tolh)
%Datos
% -function [R,sol]=rk4var('f',a,b,ya,M,tol,tolh)
% -f es la funcion
% -a y b son los extremos derecho e izquierdo del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
% -tol es la tolerancia entre un paso y otro
% -tolh es el minimo valor de h
%Resultado
% -R=[TP' T' W'] T abcisas e Y ordenadas
% -sol es f(b)
h=(b-a)/M;
TP(1)=h;
W(1)=ya;
j=1;
T(j)=a;
p=4;
%q=0;
while (T(j)<b)
q=0;
[R,W(j+1),hf]=rk4(f,T(j),T(j)+h,W(j),1);
[R,A(j),hf]=rk4(f,T(j),T(j)+h,W(j),2);
err=abs((W(j+1)-A(j))/(2^p-1));
n=1;
while (err>tol)
[R,W(j+1),hf]=rk4(f,T(j),T(j)+h,W(j),2^n);
[R,A(j),hf]=rk4(f,T(j),T(j)+h,W(j),2^(n+1));
err=abs((W(j+1)-A(j))/(2^p-1));
q=1;
n=n+1;
TP(j+1)=2*hf;
end
if (q==1)
%h=2*hf;
TP(j+1)=2*hf;
end
if (h<tolh)
disp('h es menor que tolh');
h=2*hf;
end
j=j+1;
T(j)=T(j-1)+h;
if (T(j)>b)
T(j)=b;
end
if (q==0)
TP(j)=h;
end
end
R=[TP' T' W'];
sol=W(j);
Método Runge-Kutta para sistemas de dos ecuaciones, paso variable.
function [R,sol]=rk4sist(f,a,b,ya,M,tol,tolh)
%Datos
% -function [R,sol]=rk4sist('f',a,b,ya,M,tol,tolh)
% -f es el sistema
% -a y b son los extremos derecho e izquierdo del intervalo
% -ya es la condicion inicial
% -M es el numero de pasos
% -tol es la tolerancia
% -tolh es el valor minimo de h
%Resultado
% -R=[T'Y'] T abcisas e Y ordenadas
% -sol es f(b)
h=(b-a)/M;
TP(1)=h;
Y=zeros(M+1,2);
T(1)=a;
W(1,1)=ya(1);
W(2,1)=ya(2);
j=1;
p=4;
while (T(j)<(b-h))
q=0;
[R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),1);
W(1,j+1)=pto(1);
W(2,j+1)=pto(2);
[R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2);
A(j,1)=pto(1);
A(j,2)=pto(2);
err=abs((W(1,j+1)-A(j,1))/(2^p-1));
err2=abs((W(2,j+1)-A(j,2))/(2^p-1));
n=1;
while ((err>tol)&(err2>tol))
[R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2^n);
W(1,j+1)=pto(1);
W(2,j+1)=pto(2);
[R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2^(n+1));
A(j,1)=pto(1);
A(j,2)=pto(2);
err=abs((W(1,j+1)-A(j,1))/(2^p-1));
err2=abs((W(2,j+1)-A(j,2))/(2^p-1));
q=1;
n=n+1;
TP(j+1)=2*hf;
end
if (q==1)
%h=2*hf;
TP(j+1)=2*hf;
end
if (h<tolh)
disp('h es menor que tolh');
h=2*hf;
end
j=j+1;
T(j)=T(j-1)+h;
if (T(j)>b)
T(j)=b;
end
if (q==0)
TP(j)=h;
end
end
R=[TP' T' W'];
sol(1)=W(1,M+1);
sol(2)=W(2,M+1);
Método Adams-Basfort-Multon
function [ABM,s]=abm4(f,a,b,ya,M,n,k)
%Datos
% -function [ABM,s]=abm4('f',a,b,ya,M,n,k)
% -f es la funcion
% -a y b son los extremos
% -ya es la condicion inicial
% -M es el numero de pasos para ab
% -n es el numero de pasos para rk4
% -k es el numero se pasos para Adams-Moulton
%Resultados
% -ABM es la secuencia
% -s es el valor de la funcion en b
h=(b-a)/M;
t=a:h:b;
A(1,1)=ya; %w0
w0=rk4(f,a,a+h,ya,n);
A(2,1)=w0(n+1,2); %w1
w1=rk4(f,a+h,a+2*h,w0(n+1,2),n);
A(3,1)=w1(n+1,2); %w2
w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n);
A(4,1)=w2(n+1,2); %w3
if (M<5)
disp('M menor que 5');
break
end
for i=4:M
% A-B
pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3
pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2
pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1
pto=[t(i),A(i,1)]; %Wi Ti
F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)];
A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]'));
%A-M
err=abs(A(i,1)-A(i+1,1));
j=1;
while (j<k)
pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1
F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)];
A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]'));
err=abs(A(i,1)-A(i+1,1));
j=j+1;
end
end
ABM=[t' A];
s=A(M+1,1);
Método Adams-Basfort-Multon para sistemas de dos ecuaciones
function [A,sol]=abm4sist(f,a,b,ya,M,n,k)
%Datos
% -function [A,sol]=abm4sist('f',a,b,ya,M,n,k)
% -f es el sistema
% -a y b son los extremos
% -ya es la condicion inicial
% -M es el numero de pasos para ab
% -n es el numero de pasos para rk4
% -k es el numero se pasos para Adams-Moulton
%Resultados
% -A es la secuencia
% -sol es el valor de la funcion en b
h=(b-a)/M;
t=a:h:b;
A(1,1)=ya(2); %w0
A(1,2)=ya(2); %w0
w0=rk4sist(f,a,a+h,ya,n);
A(2,1)=w0(n+1,2); %w1
A(2,2)=w0(n+1,3); %w1
w1=rk4sist(f,a+h,a+2*h,A(2,:),n);
A(3,1)=w1(n+1,2); %w2
A(3,2)=w1(n+1,3); %w2
w2=rk4sist(f,a+2*h,a+3*h,A(3,:),n);
A(4,1)=w2(n+1,2); %w3
A(4,2)=w2(n+1,3); %w3
if (M<5)
disp('M menor que 5');
break
end
for i=4:M
% A-B
pto3=[t(i-3),A(i-3,1),A(i-3,2)]; %Wi-3 Ti-3
pto2=[t(i-2),A(i-2,1),A(i-2,2)]; %Wi-2 Ti-2
pto1=[t(i-1),A(i-1,1),A(i-1,2)]; %Wi-1 Ti-1
pto=[t(i),A(i,1),A(i,2)]; %Wi Ti
F=[feval(f,pto3) ;feval(f,pto2); feval(f,pto1); feval(f,pto)];
A(i+1,1)=A(i,1)+((h/24)*(F(:,1)'*[-9 37 -59 55]'));
A(i+1,2)=A(i,2)+((h/24)*(F(:,2)'*[-9 37 -59 55]'));
%A-M
j=1;
while (j<k)
pto4=[t(i+1),A(i+1,1),A(i+1,2)]; %Wi+1 Ti+1
F=[feval(f,pto2) ;feval(f,pto1); feval(f,pto); feval(f,pto4)];
A(i+1,1)=A(i,1)+((h/24)*(F(:,1)'*[1 -5 19 9]'));
A(i+1,2)=A(i,2)+((h/24)*(F(:,2)'*[1 -5 19 9]'));
j=j+1;
end
end
A=[t' A];
sol(1)=A(M+1,1);
sol(2)=A(M+1,2);
Método Adams-Basfort-Multon con paso variable.
function ABM=abm4var(f,a,b,ya,M,n,k,tol,tolh)
%Datos
% -function ABM=abm4var(f,a,b,ya,M,n,k,tol,tolh)
% -f es la funcion
% -a y b son los extremos
% -ya es la condicion inicial
% -M es el numero de pasos para ab
% -n es el numero de pasos para rk4
% -k es el numero se pasos para Adams-Moulton
%Resultados
% -A es el valor de la funcion en b
h=(b-a)/M;
t(1)=h;
TP(1)=h;
A(1,1)=ya; %w0
w0=rk4(f,a,a+h,ya,n);
A(2,1)=w0(n+1,2); %w1
w1=rk4(f,a+h,a+2*h,w0(n+1,2),n);
A(3,1)=w1(n+1,2); %w2
w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n);
A(4,1)=w2(n+1,2); %w3
if (M<5)
disp('M menor que 5');
break
end
p=4;
i=1;
while (t(i)<b)
% A-B
pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3
pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2
pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1
pto=[t(i),A(i,1)]; %Wi Ti
F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)];
A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]'));
%A-M
for j=1:k
pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1
F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)];
A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]'));
end
B(i,1)=A(i,1)+((h/48)*(F*[-9 37 -59 55]'));
err=abs((A(i+1,1)-B(i,1))/((2^p)-1));
while (err>tol)
w1=rk4(f,a+h,a+2*h,w0(n+1,2),n);
A(3,1)=w1(n+1,2); %w2
w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n);
A(4,1)=w2(n+1,2); %w3
pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3
pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2
pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1
pto=[t(i),A(i,1)]; %Wi Ti
F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)];
A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]'));
%A-M
for j=1:k
pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1
F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)];
A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]'));
end
B(i,1)=A(i,1)+((h/48)*(F*[-9 37 -59 55]'));
err=abs((A(i+1,1)-B(i,1))/((2^p)-1));
end
if (h<tolh)
h=(b-a)/M;
end
t(i+1)=t(i)+h;
TP(i+1)=h;
i=i+1;
end
ABM=[TP' t' A];

More Related Content

What's hot

Examen DE Laboratorio de Fisica I
Examen DE Laboratorio de Fisica IExamen DE Laboratorio de Fisica I
Examen DE Laboratorio de Fisica IKaren Serrano
 
The Worst Lightning Talk in History - Using Antiproblems. Mark Dalgarno
The Worst Lightning Talk in History - Using Antiproblems. Mark DalgarnoThe Worst Lightning Talk in History - Using Antiproblems. Mark Dalgarno
The Worst Lightning Talk in History - Using Antiproblems. Mark DalgarnoBusiness of Software Conference
 
Semana 7
Semana 7Semana 7
Semana 7CUN
 
Olimpiada internacional de física 11
Olimpiada internacional de física 11Olimpiada internacional de física 11
Olimpiada internacional de física 11KDNA71
 
Solucionquiz4 Cvusta2009 02
Solucionquiz4 Cvusta2009 02Solucionquiz4 Cvusta2009 02
Solucionquiz4 Cvusta2009 02guest4ea1e4
 
Energia potencial cinetica
Energia potencial cineticaEnergia potencial cinetica
Energia potencial cineticaMarijane Bogota
 
Upch presentacion de la semana 2
Upch presentacion de la semana 2Upch presentacion de la semana 2
Upch presentacion de la semana 2Yuri Milachay
 
Rich Mathematical Problems in Astronomy
Rich Mathematical Problems in AstronomyRich Mathematical Problems in Astronomy
Rich Mathematical Problems in Astronomysmiller5
 
2f 01 gravitación4
2f 01 gravitación42f 01 gravitación4
2f 01 gravitación4CAL28
 
Transformada de laplace
Transformada de laplaceTransformada de laplace
Transformada de laplaceFremy Guedez
 
נספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותנספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותcsnotes
 
Κεφ 2.1 - Προβλημα
Κεφ 2.1 -  ΠροβλημαΚεφ 2.1 -  Προβλημα
Κεφ 2.1 - Προβλημαleftos21
 
C02 funciones complejas
C02 funciones complejasC02 funciones complejas
C02 funciones complejasmadara12
 
Examen 2ª eval resuelto
Examen 2ª eval resueltoExamen 2ª eval resuelto
Examen 2ª eval resueltojbenayasfq
 
Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Marco Antonio
 

What's hot (20)

Examen DE Laboratorio de Fisica I
Examen DE Laboratorio de Fisica IExamen DE Laboratorio de Fisica I
Examen DE Laboratorio de Fisica I
 
Fisica I
Fisica IFisica I
Fisica I
 
The Worst Lightning Talk in History - Using Antiproblems. Mark Dalgarno
The Worst Lightning Talk in History - Using Antiproblems. Mark DalgarnoThe Worst Lightning Talk in History - Using Antiproblems. Mark Dalgarno
The Worst Lightning Talk in History - Using Antiproblems. Mark Dalgarno
 
Semana 7
Semana 7Semana 7
Semana 7
 
Olimpiada internacional de física 11
Olimpiada internacional de física 11Olimpiada internacional de física 11
Olimpiada internacional de física 11
 
Leyes de newton
Leyes de newtonLeyes de newton
Leyes de newton
 
Solucionquiz4 Cvusta2009 02
Solucionquiz4 Cvusta2009 02Solucionquiz4 Cvusta2009 02
Solucionquiz4 Cvusta2009 02
 
Energia potencial cinetica
Energia potencial cineticaEnergia potencial cinetica
Energia potencial cinetica
 
Upch presentacion de la semana 2
Upch presentacion de la semana 2Upch presentacion de la semana 2
Upch presentacion de la semana 2
 
Rich Mathematical Problems in Astronomy
Rich Mathematical Problems in AstronomyRich Mathematical Problems in Astronomy
Rich Mathematical Problems in Astronomy
 
2f 01 gravitación4
2f 01 gravitación42f 01 gravitación4
2f 01 gravitación4
 
V-Dinámica rotacional. 5-Problemas
V-Dinámica rotacional. 5-ProblemasV-Dinámica rotacional. 5-Problemas
V-Dinámica rotacional. 5-Problemas
 
Transformada de laplace
Transformada de laplaceTransformada de laplace
Transformada de laplace
 
נספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותנספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצות
 
Κεφ 2.1 - Προβλημα
Κεφ 2.1 -  ΠροβλημαΚεφ 2.1 -  Προβλημα
Κεφ 2.1 - Προβλημα
 
C02 funciones complejas
C02 funciones complejasC02 funciones complejas
C02 funciones complejas
 
Analisis matematico III
Analisis matematico IIIAnalisis matematico III
Analisis matematico III
 
Examen 2ª eval resuelto
Examen 2ª eval resueltoExamen 2ª eval resuelto
Examen 2ª eval resuelto
 
Métodos numéricos con fortran 90
Métodos numéricos con fortran 90Métodos numéricos con fortran 90
Métodos numéricos con fortran 90
 
Impulso y momento lineal Física A
Impulso y momento lineal Física AImpulso y momento lineal Física A
Impulso y momento lineal Física A
 

Similar to Movimiento cohetes

Examen dináimica y cinemática 09 10 corr
Examen dináimica y cinemática  09 10 corrExamen dináimica y cinemática  09 10 corr
Examen dináimica y cinemática 09 10 corrMHR
 
Compilado controles-mec
Compilado controles-mecCompilado controles-mec
Compilado controles-mecIndependiente
 
Fisica Teorema Trabajo y Energia.pdf
Fisica Teorema Trabajo y Energia.pdfFisica Teorema Trabajo y Energia.pdf
Fisica Teorema Trabajo y Energia.pdfValentinaVillacis
 
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdf
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdfDAVID_JOU_FISICA_CIENCIAS_VIDA.pdf
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdfTMICSAS
 
F2 pau-gravitacion-soluc
F2 pau-gravitacion-solucF2 pau-gravitacion-soluc
F2 pau-gravitacion-solucmariavarey
 
Movimientos circulares
Movimientos circularesMovimientos circulares
Movimientos circularesSergio Barrios
 
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdfDuberPeaQuispe
 
Zaragoza 2013 primera prueba - Olimpiada Fisica
Zaragoza 2013 primera prueba - Olimpiada FisicaZaragoza 2013 primera prueba - Olimpiada Fisica
Zaragoza 2013 primera prueba - Olimpiada Fisicafisicayquimica-com-es
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaArturoDavilaObando
 
Modelación matemática de una rueda y eje con momento de incercia variable par...
Modelación matemática de una rueda y eje con momento de incercia variable par...Modelación matemática de una rueda y eje con momento de incercia variable par...
Modelación matemática de una rueda y eje con momento de incercia variable par...James Smith
 
Trabajo y energía victor
Trabajo y energía victorTrabajo y energía victor
Trabajo y energía victorvictor calderon
 

Similar to Movimiento cohetes (20)

Examen dináimica y cinemática 09 10 corr
Examen dináimica y cinemática  09 10 corrExamen dináimica y cinemática  09 10 corr
Examen dináimica y cinemática 09 10 corr
 
1 y 2 leyes de kepler
1 y 2 leyes de kepler1 y 2 leyes de kepler
1 y 2 leyes de kepler
 
Compilado controles-mec
Compilado controles-mecCompilado controles-mec
Compilado controles-mec
 
Fisica Teorema Trabajo y Energia.pdf
Fisica Teorema Trabajo y Energia.pdfFisica Teorema Trabajo y Energia.pdf
Fisica Teorema Trabajo y Energia.pdf
 
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdf
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdfDAVID_JOU_FISICA_CIENCIAS_VIDA.pdf
DAVID_JOU_FISICA_CIENCIAS_VIDA.pdf
 
F2 pau-gravitacion-soluc
F2 pau-gravitacion-solucF2 pau-gravitacion-soluc
F2 pau-gravitacion-soluc
 
Cálculo numérico 7 corrección
Cálculo numérico 7 correcciónCálculo numérico 7 corrección
Cálculo numérico 7 corrección
 
Dinamica sol
Dinamica solDinamica sol
Dinamica sol
 
Movimientos circulares
Movimientos circularesMovimientos circulares
Movimientos circulares
 
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf
9-MOMENTO LINEAL ó CANTIDAD DE MOVIMIENTO.pdf
 
Cinematica 1
Cinematica 1Cinematica 1
Cinematica 1
 
Trabajo y energia
Trabajo y energiaTrabajo y energia
Trabajo y energia
 
Zaragoza 2013 primera prueba - Olimpiada Fisica
Zaragoza 2013 primera prueba - Olimpiada FisicaZaragoza 2013 primera prueba - Olimpiada Fisica
Zaragoza 2013 primera prueba - Olimpiada Fisica
 
F mecánica mov_lineal
F mecánica mov_linealF mecánica mov_lineal
F mecánica mov_lineal
 
Colisiones
ColisionesColisiones
Colisiones
 
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanicaproblemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
problemas_oscilaciones_amortiguadas.pdf aplicadas a la mecanica
 
Taller 1 ondas 2
Taller 1 ondas 2Taller 1 ondas 2
Taller 1 ondas 2
 
Modelación matemática de una rueda y eje con momento de incercia variable par...
Modelación matemática de una rueda y eje con momento de incercia variable par...Modelación matemática de una rueda y eje con momento de incercia variable par...
Modelación matemática de una rueda y eje con momento de incercia variable par...
 
Fisica i-b1 mas ondas
Fisica i-b1 mas ondasFisica i-b1 mas ondas
Fisica i-b1 mas ondas
 
Trabajo y energía victor
Trabajo y energía victorTrabajo y energía victor
Trabajo y energía victor
 

Recently uploaded

“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...WeslinDarguinHernand
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfgonzalo195211
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasIANMIKELMIRANDAGONZA
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheJuan Luis Menares
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)samuelsan933
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosandersonsubero28
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxcarlosEspaaGarcia
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.davidtonconi
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfELIZABETHCRUZVALENCI
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxfranklingerardoloma
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdfSantiagoRodriguez598818
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientoscuentaparainvestigac
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 

Recently uploaded (20)

“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdf
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 

Movimiento cohetes

  • 1. Movimiento de cohetes Por Vicente Herrera García Un breve estudio del movimiento de sistemas de masa variable frente a la ley de la gravedad, expresada en forma genérica en función de la distancia; y la resolución del problema empleando algoritmos numéricos codificados en Matlab. Realizado para la asignatura de Análisis Numérico, curso 2001/2002, de la Ingeniería Técnica de Informática de Sistemas en la universidad de Huelva.
  • 2. Movimiento de cohetes Ley de Newton para el movimiento, en su expresión más general ,es: vmp dt pd Fi rr rr = =∑ Para el caso de movimiento lineal de un cuerpo de masa variable, esta ecuación queda como: )()()()( tvtmtvtmF vmp dt dp F ⋅+⋅=⇒     ⋅= = && Si consideramos que el cuerpo es un cohete que “expulsa” combustible a una velocidad constante, podemos expresar su masa como: tmMtm mtm e e ⋅−= −= 0)( )(constante)(& Tenemos además que considerar la ley de acción y reacción, según la cual podemos averiguar la fuerza que la masa expulsada ejerce sobre el cohete, propulsándolo, a partir de la que el cohete ejerce sobre esta. En todo momento, el cohete expulsará el propelente con una velocidad ve constante, relativa a la propia velocidad del cohete. Luego el propelente ha ganado una cantidad de movimiento ∆pe = me ve Es decir, se ha aplicado sobre el una fuerza |Fe | = ∆pe = me ve Luego este ejerce la misma fuerza sobre el cohete, en sentido contrario. Representamos el sistema de 2 ecuaciones diferenciales: vx vmvtmMFF eee = ⋅−⋅−=+ & &)( 0 Siendo F el resto de fuerzas aplicables en el problema
  • 3. Utilizando la ley de la gravitación universal: 2 )( r Mtm GF t g ⋅ = El caso más general, el cohete se encuentra a una distancia arbitraria r medida desde el centro de la tierra, y es atraído por esta. Se supone r lo suficientemente grande como para que la aproximación P = -mg no sea adecuada, aunque para valores cercanos a la superficie se obtendrán los mismos resultados. Por otra parte, para valores muy grandes de r, la solución será la misma que considerar que F=0. Si incluimos en la ecuación anterior: r = Rt + x m(t) = M0 – met nos queda: 2 0 )( )( xR MtmM GF t te g + ⋅− −= Donde hemos representado la fuerza - Fg al tratarse de una fuerza atractiva Simplificando: vmvtmM xR MtmM Gvm ee t te ee ⋅−⋅−= + ⋅− − &)( )( )( 02 0 vx v tmM vvm xR M Gv e ee t t = ⋅ − + + + −= & & 0 2 )( )( Constante gravitatoria universal: G = 6’6726·10-11 Masa de la tierra: Mt = 5’98·1024 kg Radio de la tierra: Rt = 6’370 ·106 m Masa del cohete + combustible inicial: M0 (kg) Ratio de consumo de combustible: me (kg/s) Velocidad de expulsión del combustible: ve (m/s) Posición del cohete, desde la superficie de la tierra: x (m)
  • 4. Codificamos en Matlab este sistema de ecuaciones diferenciales: function Y=fc(X) t=X(1); v=X(2); %corresponde a Y(1)=v' x=X(3); %corresponde a Y(2)=x' G=6.6726e-11; Mt=5.98e24; Rt=6.370e6; Mo=208000; %Cohete Ariane I me=10000; ve=2000; Y(1)=-G*Mt/(Rt+x)^2+me*v/(Mo-me*t); Y(2)=v; Algunos cálculos adicionales que pueden resultar útiles: Tiempo de duración del combustible Si tenemos un cohete de masa total M0 = Mv + Mc donde Mv es la masa del cohete vacío de combustible Mc es la masa total de combustible inicial el tiempo que durará el combustible cuando se consuma con velocidad constante me será: Mc - met = 0 t = Mc/me Nótese que la mayoria de los cohetes poseen distintas etapas con diferentes sistemas de propulsion, consumo y empuje. Fuerza de empuje Es usual dar el empuje del cohete en kgf (kilogramo fuerza). Esta unidad corresponde a la fuerza que ejerce un kg en la superficie de la tierra, es decir 1 kgf = 9’8 N Si recordamos la formula anterior: |Fe | = ∆pe = me ve Al conocer el empuje y el consumo de combustible o la velocidad de expulsión, podremos calcular el otro parámetro desconocido.
  • 5. Ejemplos El cohete europeo Ariane I creado en 1979 pesaba 208.000 Kg Si suponemos que en la etapa de lanzamiento, en los primeros 60 segundos de despegue, este se comporta como si estuviera quemando 2000 kg de combustible por segundo, expulsándolos a una velocidad de 2000 m/s, ¿a qué altura se encontrará transcurridos esos 60 segundos? ¿con qué velocidad viajará? Considerar el peso del combustible incluido en el peso del cohete dado. Utilizaremos me=1500; ve=2000; Mo=208000; En el intervalo de tiempo [0,60] para valores iniciales x=0, v=0 Mediante Runge Kutta con tamaño de paso 1: [R,s,h]=rk4sist('fc',0,60,[0 0],60); Evolución del sistema: Obtenemos los valores finales: t = 60 s v = 711 m/s x = 1.5686·104 m
  • 6. La lanzadera espacial (Space Shuttle) creada por Estados Unidos en 1981 pesa 2.040.815 Kg Si suponemos que cuando se encuentra a una altitud de 1000 Km y con una velocidad de 1000 m/s se desprende de sus cohetes de aceleración inicial, quedando con el peso especificado y quemando 100 Kg de combustible por segundo, expulsándolo a 1000 m/s, ¿tendrá en estas condiciones empuje suficiente para continuar el ascenso? Utilizaremos me=100; ve=1000; Mo=2040815; Representamos la evolución del sistema entre [0,60] con tamaño de paso h=1 mediante el metodo de Gragg de paso fijo para sistemas de ecuaciones, con las condiciones iniciales v=1000 (m/s), x=500000 (m) R=graggsist('fc',0,60,[1000 50000],60) Vemos que, aunque la posición continua aumentando durante el primer minuto de funcionamiento de la segunda etapa del cohete, la velocidad cae rápidamente, luego llegará un momento en que la posición deje de aumentar, y el cohete caerá.
  • 7. Si buscamos cuando llegará el cohete a chocar contra el suelo, entre los valores t=0 y t=300 s, con 50 muestras (tamaño de paso h=6 ). R=graggsist('fc',0,300,[1000 50000],50); Vemos como algo después de los 250 segundos, el cohete ha perdido por completo toda la altitud que había conseguido, y ha impactado contra el suelo. Será entonces necesario aumentar la masa de combustible quemado por segundo, o aumentar la velocidad de expulsión de este.
  • 8. Código de los algoritmos para Matlab Método de Euler function [E,sol,h]=euler(f,a,b,ya,M) %Datos % -function E=euler(f,a,b,ya,M) % -f es la funcion % -a y b son los extremos del intervalo % -ya es la condicion inicial y(a) % -M es el numero de pasos %Resultado % -E=[T' W'] siendo T el vector de abcisas e Y el de ordenadas h=(b-a)/M; T=zeros(1,M+1); W=zeros(1,M+1); T=a:h:b; W(1)=ya; for i=1:M pto=[T(i),W(i)]; W(i+1)=W(i)+h*feval(f,pto); end sol=W(M+1); E=[T' W']; Método de Euler para sistemas de dos ecuaciones function [E,sol,h]=eulersist(f,a,b,ya,M) %Datos % -function E=eulersist(f,a,b,ya,M) % -f es el sistema de ecuaciones % -a y b son los extremos del intervalo % -ya es la condicion inicial % -M es el numero de pasos %Resultado % -E=[T' W'] siendo T el vector de abcisas e Y el de ordenadas h=(b-a)/M; T=zeros(1,M+1); W=zeros(M+1,2); T=a:h:b; W(1,1)=ya(1); W(1,2)=ya(2); for i=1:M pto=[T(i),W(i,1),W(i,2)]; y=feval(f,pto); W(i+1,1)=W(i,1)+h*y(1); W(i+1,2)=W(i,2)+h*y(2); end sol(1)=W(M+1,1); sol(2)=W(M+1,2); E=[T' W];
  • 9. Método de Euler con paso variable function E=eulervar(f,a,b,ya,M,tol,tolh) %Datos % -function E=eulervar(f,a,b,ya,M,tol,tolh) % -f es la funcion % -a y b son los extremos del intervalo % -ya es la condicion inicial y(a) % -M es el numero de pasos % -tol es la tolerancia para cada paso % -tolh es la tolerancia para h %Resultado % -E=[TP' T' W'] siendo T el vector de abcisas e Y el de ordenadas h=(b-a)/M; W=zeros(1,M+1); W(1)=ya; TP(1)=h; i=1; p=1; T(i)=a; while (T(i)<b) q=0; pto=[T(i),W(i)]; [X,W(i+1),hf]=euler(f,T(i),T(i)+h,W(i),1); [X,A(i),hf]=euler(f,T(i),T(i)+h,W(i),2); %W(i+1)=W(i)+h*feval(f,pto); %A(i)=W(i)+h/2*feval(f,pto); err=abs((W(i+1)-A(i))/((2^p)-1)); n=1; while(err>tol) [X,W(i+1),hf]=euler(f,T(i),T(i)+h,W(i),2^n); [X,A(i),hf]=euler(f,T(i),T(i)+h,W(i),2^(n+1)); %W(i+1)=W(i)+h*feval(f,pto); %A(i)=W(i)+h/2*feval(f,pto); err=abs((W(i+1)-A(i))/((2^p)-1)); n=n+1; q=1; TP(i+1)=2*hf; end if (q==1) %h=2*hf; TP(i+1)=2*hf; end if (h<tolh) disp('h es menor que tolh'); h=2*hf; end i=i+1; T(i)=T(i-1)+h; if (T(i)>b) T(i)=b; end if (q==0) TP(i)=h; end end E=[TP' T' W'];
  • 10. Método de Euler para sistemas con dos ecuaciones, paso variable. function [E,sol]=eulersistvar2(f,a,b,ya,M,tol,tolh) %Datos % -function [E,sol]=eulersistvar2('f',a,b,ya,M,tol,tolh) % -f es la funcion % -a y b son los extremos del intervalo % -ya es la condicion inicial y(a) % -M es el numero de pasos % -tol es la tolerancia para cada paso % -tolh es la tolerancia para h %Resultado % -E=[TP' T' W'] siendo T el vector de abcisas e Y el de ordenadas % -sol es f(b) h=(b-a)/M; W(1,1)=ya(1); W(1,2)=ya(2); TP(1)=h; i=1; p=1; T(i)=a; while (T(i)<(b-h)) q=0; pto=[T(i),W(i,1)]; [X,P,hf]=eulersist(f,T(i),T(i)+h,W(i,:),1); W(i+1,1)=P(1); W(i+1,2)=P(2); [X,AA,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2); A(i,1)=AA(1); A(i,2)=AA(2); err=abs((W(i+1,1)-A(i,1))/((2^p)-1)); err2=abs((W(i+1,2)-A(i,2))/((2^p)-1)); n=1; while((err>tol)&(err2>tol)) [X,P,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2^n); W(i+1,1)=P(1); W(i+1,2)=P(2); [X,AA,hf]=eulersist(f,T(i),T(i)+h,W(i,:),2^(n+1)); A(i,1)=AA(1); A(i,2)=AA(2); err=abs((W(i+1,1)-A(i,1))/((2^p)-1)); err2=abs((W(i+1,2)-A(i,2))/((2^p)-1)); n=n+1; q=1; TP(i+1)=2*hf; end if (q==1) %h=2*hf; TP(i+1)=2*hf; end if (h<tolh) disp('h es menor que tolh'); h=2*hf; end i=i+1; T(i)=T(i-1)+h; if (T(i)>b) T(i)=b; end if (q==0) TP(i)=h; end end E=[TP' T' W]; sol(1)=W(i,1); sol(2)=W(i,2);
  • 11. Método de Gragg function [W,FT,err]=gragg3(f,a,b,ya,n,tol,M) %Datos % -function [W,FT,err,h]=gragg3(f,a,b,ya,n,tol,M) % -f es la funcion % -a y b son los extremos del intervalo % -n es el numero maximo de filas de la tabla % -tol es la tolerancia % -M es el numero de pasos %Resultados % -W es el esquema de Gragg % -FT es la aproximacion a la f(b) % -err es una estimacion del error G=gragg(f,a,b,ya,M); err=1; J=0; W=zeros(4,4); W(1,1)=G(M+1,2); while ((err>tol)&(J<n))%&(J<n))|(J<4) J=J+1; M=2*M; G=gragg(f,a,b,ya,M); W(J+1,1)=G(M+1,2); for K=1:J W(J+1,K+1)=W(J+1,K)+(W(J+1,K)-W(J,K))/(4^K-1); end err=abs(W(J,J)-W(J+1,K+1)); end FT=W(J+1,J+1); function G=gragg(f,a,b,ya,M) %Datos % -function G=gragg(f,a,b,ya,M) % -f es la funcion % -a y b son los extremos del intervalo % -ya es la condicion inicial y(a) % -M es el numero de pasos %Resultado % -G=[T' W'] siendo T el vector de abcisas e Y el de ordenadas h=(b-a)/M; T=zeros(1,M+2); W=zeros(1,M); T=a:h:b; W(1)=ya; for i=1:M-1 pto=[T(i),W(i)]; W(i+1)=W(i)+h*feval(f,pto); pto2=[T(i+1),W(i+1)]; W(i+2)=W(i+1)+(2*h*feval(f,pto2)); end G=[T' W'];
  • 12. Método de Gragg para sistemas de dos ecuaciones function [X,Y,FT,errx,erry,h]=gragg3sist(f,a,b,ya,n,tolx,toly,M) %Datos % -function [X,Y,FT,errx,erry,h]=gragg3sist(f,a,b,ya,n,tolx,toly,M) % -f es el sistema % -a y b son los extremos del intervalo % -n es el numero maximo de filas de la tabla % -tol es la tolerancia % -M es el numero de pasos %Resultados % -X e Y son el esquema de Gragg % -FT es la aproximacion a la f1(b) y f2(b) % -err es una estimacion del error % -h es el menor de los incrementos usados G=graggsist(f,a,b,ya,M); errx=1; erry=1; J=0; X=zeros(4,4); X(1,1)=G(M+1,2); Y=zeros(4,4); Y(1,1)=G(M+1,3); while ((errx>tolx)&(J<n)&(erry>toly))%&(J<n))|(J<4) J=J+1; M=2*M; G=graggsist(f,a,b,ya,M); X(J+1,1)=G(M+1,2); Y(J+1,1)=G(M+1,3); for K=1:J X(J+1,K+1)=X(J+1,K)+(X(J+1,K)-X(J,K))/(4^K-1); Y(J+1,K+1)=Y(J+1,K)+(Y(J+1,K)-Y(J,K))/(4^K-1); end errx=abs(X(J,J)-X(J+1,K+1)); erry=abs(Y(J,J)-Y(J+1,K+1)); end FT=[X(J+1,J+1) Y(J+1,J+1)]; function G=graggsist(f,a,b,ya,M) %Datos % -function G=graggsist(f,a,b,ya,M) % -f es el sistema % -a y b son los extremos del intervalo % -ya es la condicion inicial % -M es el numero de pasos %Resultado % -G=[T' W'] siendo T el vector de abcisas e Y el de ordenadas h=(b-a)/M; T=zeros(1,M+2); W=zeros(M+1,2); T=a:h:b; W(1,1)=ya(1); W(1,2)=ya(2); for i=1:M-1 pto=[T(i),W(i,1),W(1,2)]; F=feval(f,pto); W(i+1,1)=W(i,1)+h*F(1); W(i+1,2)=W(i,2)+h*F(2); pto2=[T(i+1),W(i+1,1),W(i+1,2)]; F=feval(f,pto2); W(i+2,1)=W(i+1,1)+(2*h*F(1)); W(i+2,2)=W(i+1,2)+(2*h*F(2)); end G=[T' W];
  • 13. Método de Runge-Kutta function [R,sol,h]=rk4(f,a,b,ya,M) %Datos % -function [R,sol]=rk4(f,a,b,ya,M) % -f es la funcion % -a y b son los extremos derecho e izquierdo del intervalo % -ya es la condicion inicial % -M es el numero de pasos %Resultado % -R=[T'Y'] T abcisas e Y ordenadas % -sol es f(b) % -h es el incremento usado h=(b-a)/M; T=zeros(1,M+1); Y=zeros(1,M+1); T=a:h:b; Y(1)=ya; for j=1:M pto=[T(j),Y(j)]; k1=h*feval(f,pto); pto=[T(j)+h/2,Y(j)+k1/2]; k2=h*feval(f,pto); pto=[T(j)+h/2,Y(j)+k2/2]; k3=h*feval(f,pto); pto=[T(j)+h,Y(j)+k3]; k4=h*feval(f,pto); Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6; end sol=Y(M+1); R=[T' Y']; Método Runge-Kutta para sistemas de dos ecuaciones function [R,sol,h]=rk4sist(f,a,b,ya,M) %Datos % -function [R,sol,h]=rk4sist('f',a,b,ya,M) % -f es el sistema % -a y b son los extremos derecho e izquierdo del intervalo % -ya es la condicion inicial % -M es el numero de pasos %Resultado % -R=[T'Y'] T abcisas e Y ordenadas % -sol es f(b) % -h es el incremento usado h=(b-a)/M; T=zeros(1,M+1); Y=zeros(M+1,2); T=a:h:b; Y(1,1)=ya(1); Y(1,2)=ya(2); for j=1:M y1=Y(j,1); y2=Y(j,2); pto=[T(j),y1,y2]; F=feval(f,pto); k1(1,1)=F(1); k1(1,2)=F(2); pto=[T(j)+h/2,y1+h*k1(1,1)/2,y2+h*k1(1,2)/2]; F=feval(f,pto); k2(1,1)=F(1); k2(1,2)=F(2); pto=[T(j)+h/2,y1+h*k2(1,1)/2,y2+h*k2(1,2)/2]; F=feval(f,pto); k3(1,1)=F(1); k3(1,2)=F(2); pto=[T(j)+h,y1+h*k3(1,1),y2+h*k3(1,2)]; F=feval(f,pto);
  • 14. k4(1,1)=F(1); k4(1,2)=F(2); Y(j+1,1)=Y(j,1)+h*(k1(1,1)+2*k2(1,1)+2*k3(1,1)+k4(1,1))/6; Y(j+1,2)=Y(j,2)+h*(k1(1,2)+2*k2(1,2)+2*k3(1,2)+k4(1,2))/6; end sol(1,1)=Y(M+1,1); sol(1,2)=Y(M+1,2); R=[T' Y]; Método Runge-Kutta con paso variable function [R,sol]=rk4var(f,a,b,ya,M,tol,tolh) %Datos % -function [R,sol]=rk4var('f',a,b,ya,M,tol,tolh) % -f es la funcion % -a y b son los extremos derecho e izquierdo del intervalo % -ya es la condicion inicial % -M es el numero de pasos % -tol es la tolerancia entre un paso y otro % -tolh es el minimo valor de h %Resultado % -R=[TP' T' W'] T abcisas e Y ordenadas % -sol es f(b) h=(b-a)/M; TP(1)=h; W(1)=ya; j=1; T(j)=a; p=4; %q=0; while (T(j)<b) q=0; [R,W(j+1),hf]=rk4(f,T(j),T(j)+h,W(j),1); [R,A(j),hf]=rk4(f,T(j),T(j)+h,W(j),2); err=abs((W(j+1)-A(j))/(2^p-1)); n=1; while (err>tol) [R,W(j+1),hf]=rk4(f,T(j),T(j)+h,W(j),2^n); [R,A(j),hf]=rk4(f,T(j),T(j)+h,W(j),2^(n+1)); err=abs((W(j+1)-A(j))/(2^p-1)); q=1; n=n+1; TP(j+1)=2*hf; end if (q==1) %h=2*hf; TP(j+1)=2*hf; end if (h<tolh) disp('h es menor que tolh'); h=2*hf; end j=j+1; T(j)=T(j-1)+h; if (T(j)>b) T(j)=b; end if (q==0) TP(j)=h; end end R=[TP' T' W']; sol=W(j);
  • 15. Método Runge-Kutta para sistemas de dos ecuaciones, paso variable. function [R,sol]=rk4sist(f,a,b,ya,M,tol,tolh) %Datos % -function [R,sol]=rk4sist('f',a,b,ya,M,tol,tolh) % -f es el sistema % -a y b son los extremos derecho e izquierdo del intervalo % -ya es la condicion inicial % -M es el numero de pasos % -tol es la tolerancia % -tolh es el valor minimo de h %Resultado % -R=[T'Y'] T abcisas e Y ordenadas % -sol es f(b) h=(b-a)/M; TP(1)=h; Y=zeros(M+1,2); T(1)=a; W(1,1)=ya(1); W(2,1)=ya(2); j=1; p=4; while (T(j)<(b-h)) q=0; [R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),1); W(1,j+1)=pto(1); W(2,j+1)=pto(2); [R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2); A(j,1)=pto(1); A(j,2)=pto(2); err=abs((W(1,j+1)-A(j,1))/(2^p-1)); err2=abs((W(2,j+1)-A(j,2))/(2^p-1)); n=1; while ((err>tol)&(err2>tol)) [R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2^n); W(1,j+1)=pto(1); W(2,j+1)=pto(2); [R,pto,hf]=rk4sist(f,T(j),T(j)+h,W(:,j),2^(n+1)); A(j,1)=pto(1); A(j,2)=pto(2); err=abs((W(1,j+1)-A(j,1))/(2^p-1)); err2=abs((W(2,j+1)-A(j,2))/(2^p-1)); q=1; n=n+1; TP(j+1)=2*hf; end if (q==1) %h=2*hf; TP(j+1)=2*hf; end if (h<tolh) disp('h es menor que tolh'); h=2*hf; end j=j+1; T(j)=T(j-1)+h; if (T(j)>b) T(j)=b; end if (q==0) TP(j)=h; end end R=[TP' T' W']; sol(1)=W(1,M+1); sol(2)=W(2,M+1);
  • 16. Método Adams-Basfort-Multon function [ABM,s]=abm4(f,a,b,ya,M,n,k) %Datos % -function [ABM,s]=abm4('f',a,b,ya,M,n,k) % -f es la funcion % -a y b son los extremos % -ya es la condicion inicial % -M es el numero de pasos para ab % -n es el numero de pasos para rk4 % -k es el numero se pasos para Adams-Moulton %Resultados % -ABM es la secuencia % -s es el valor de la funcion en b h=(b-a)/M; t=a:h:b; A(1,1)=ya; %w0 w0=rk4(f,a,a+h,ya,n); A(2,1)=w0(n+1,2); %w1 w1=rk4(f,a+h,a+2*h,w0(n+1,2),n); A(3,1)=w1(n+1,2); %w2 w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n); A(4,1)=w2(n+1,2); %w3 if (M<5) disp('M menor que 5'); break end for i=4:M % A-B pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3 pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2 pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1 pto=[t(i),A(i,1)]; %Wi Ti F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)]; A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]')); %A-M err=abs(A(i,1)-A(i+1,1)); j=1; while (j<k) pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1 F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)]; A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]')); err=abs(A(i,1)-A(i+1,1)); j=j+1; end end ABM=[t' A]; s=A(M+1,1);
  • 17. Método Adams-Basfort-Multon para sistemas de dos ecuaciones function [A,sol]=abm4sist(f,a,b,ya,M,n,k) %Datos % -function [A,sol]=abm4sist('f',a,b,ya,M,n,k) % -f es el sistema % -a y b son los extremos % -ya es la condicion inicial % -M es el numero de pasos para ab % -n es el numero de pasos para rk4 % -k es el numero se pasos para Adams-Moulton %Resultados % -A es la secuencia % -sol es el valor de la funcion en b h=(b-a)/M; t=a:h:b; A(1,1)=ya(2); %w0 A(1,2)=ya(2); %w0 w0=rk4sist(f,a,a+h,ya,n); A(2,1)=w0(n+1,2); %w1 A(2,2)=w0(n+1,3); %w1 w1=rk4sist(f,a+h,a+2*h,A(2,:),n); A(3,1)=w1(n+1,2); %w2 A(3,2)=w1(n+1,3); %w2 w2=rk4sist(f,a+2*h,a+3*h,A(3,:),n); A(4,1)=w2(n+1,2); %w3 A(4,2)=w2(n+1,3); %w3 if (M<5) disp('M menor que 5'); break end for i=4:M % A-B pto3=[t(i-3),A(i-3,1),A(i-3,2)]; %Wi-3 Ti-3 pto2=[t(i-2),A(i-2,1),A(i-2,2)]; %Wi-2 Ti-2 pto1=[t(i-1),A(i-1,1),A(i-1,2)]; %Wi-1 Ti-1 pto=[t(i),A(i,1),A(i,2)]; %Wi Ti F=[feval(f,pto3) ;feval(f,pto2); feval(f,pto1); feval(f,pto)]; A(i+1,1)=A(i,1)+((h/24)*(F(:,1)'*[-9 37 -59 55]')); A(i+1,2)=A(i,2)+((h/24)*(F(:,2)'*[-9 37 -59 55]')); %A-M j=1; while (j<k) pto4=[t(i+1),A(i+1,1),A(i+1,2)]; %Wi+1 Ti+1 F=[feval(f,pto2) ;feval(f,pto1); feval(f,pto); feval(f,pto4)]; A(i+1,1)=A(i,1)+((h/24)*(F(:,1)'*[1 -5 19 9]')); A(i+1,2)=A(i,2)+((h/24)*(F(:,2)'*[1 -5 19 9]')); j=j+1; end end A=[t' A]; sol(1)=A(M+1,1); sol(2)=A(M+1,2);
  • 18. Método Adams-Basfort-Multon con paso variable. function ABM=abm4var(f,a,b,ya,M,n,k,tol,tolh) %Datos % -function ABM=abm4var(f,a,b,ya,M,n,k,tol,tolh) % -f es la funcion % -a y b son los extremos % -ya es la condicion inicial % -M es el numero de pasos para ab % -n es el numero de pasos para rk4 % -k es el numero se pasos para Adams-Moulton %Resultados % -A es el valor de la funcion en b h=(b-a)/M; t(1)=h; TP(1)=h; A(1,1)=ya; %w0 w0=rk4(f,a,a+h,ya,n); A(2,1)=w0(n+1,2); %w1 w1=rk4(f,a+h,a+2*h,w0(n+1,2),n); A(3,1)=w1(n+1,2); %w2 w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n); A(4,1)=w2(n+1,2); %w3 if (M<5) disp('M menor que 5'); break end p=4; i=1; while (t(i)<b) % A-B pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3 pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2 pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1 pto=[t(i),A(i,1)]; %Wi Ti F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)]; A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]')); %A-M for j=1:k pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1 F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)]; A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]')); end B(i,1)=A(i,1)+((h/48)*(F*[-9 37 -59 55]')); err=abs((A(i+1,1)-B(i,1))/((2^p)-1)); while (err>tol) w1=rk4(f,a+h,a+2*h,w0(n+1,2),n); A(3,1)=w1(n+1,2); %w2 w2=rk4(f,a+2*h,a+3*h,w1(n+1,2),n); A(4,1)=w2(n+1,2); %w3 pto3=[t(i-3),A(i-3,1)]; %Wi-3 Ti-3 pto2=[t(i-2),A(i-2,1)]; %Wi-2 Ti-2 pto1=[t(i-1),A(i-1,1)]; %Wi-1 Ti-1 pto=[t(i),A(i,1)]; %Wi Ti F=[feval(f,pto3) feval(f,pto2) feval(f,pto1) feval(f,pto)]; A(i+1,1)=A(i,1)+((h/24)*(F*[-9 37 -59 55]')); %A-M for j=1:k pto4=[t(i+1),A(i+1,1)]; %Wi+1 Ti+1 F=[feval(f,pto2) feval(f,pto1) feval(f,pto) feval(f,pto4)]; A(i+1,1)=A(i,1)+((h/24)*(F*[1 -5 19 9]')); end B(i,1)=A(i,1)+((h/48)*(F*[-9 37 -59 55]')); err=abs((A(i+1,1)-B(i,1))/((2^p)-1)); end