SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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];

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Momento inercia
Momento inerciaMomento inercia
Momento inercia
 
Momento inercia
Momento inerciaMomento inercia
Momento inercia
 
Problema 1 Taller de Recuperación (Mecánica de Fluidos, Abril 2016)
Problema 1 Taller de Recuperación (Mecánica de Fluidos, Abril 2016)Problema 1 Taller de Recuperación (Mecánica de Fluidos, Abril 2016)
Problema 1 Taller de Recuperación (Mecánica de Fluidos, Abril 2016)
 
Examenes uni pasados
Examenes uni pasadosExamenes uni pasados
Examenes uni pasados
 
SEMANA 3 - Clase 1.pptx
SEMANA 3 - Clase 1.pptxSEMANA 3 - Clase 1.pptx
SEMANA 3 - Clase 1.pptx
 
Medina fisica2 cap2
Medina fisica2 cap2Medina fisica2 cap2
Medina fisica2 cap2
 
Física, conceptos básica
Física, conceptos básicaFísica, conceptos básica
Física, conceptos básica
 
Problemas resueltos7
Problemas resueltos7Problemas resueltos7
Problemas resueltos7
 
Aplicaciones de edo
Aplicaciones de edoAplicaciones de edo
Aplicaciones de edo
 
Calculo coeficiente de amortiguamiento
Calculo coeficiente de amortiguamientoCalculo coeficiente de amortiguamiento
Calculo coeficiente de amortiguamiento
 
Volmen de control
Volmen de controlVolmen de control
Volmen de control
 
Problemas resuelto strabajo energia serway
Problemas resuelto strabajo energia serwayProblemas resuelto strabajo energia serway
Problemas resuelto strabajo energia serway
 
Ejercicios de limites
Ejercicios de limitesEjercicios de limites
Ejercicios de limites
 
Hidrostatica1
Hidrostatica1Hidrostatica1
Hidrostatica1
 
Coeficientes Indeterminados
Coeficientes IndeterminadosCoeficientes Indeterminados
Coeficientes Indeterminados
 
Vector gradiente
Vector gradienteVector gradiente
Vector gradiente
 
Formulas de sismologia
Formulas de sismologiaFormulas de sismologia
Formulas de sismologia
 
Elasticidad
ElasticidadElasticidad
Elasticidad
 
3. estatica fluidos
3. estatica fluidos3. estatica fluidos
3. estatica fluidos
 

Similar a 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
 
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 a 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
 
Gravitacion universal
Gravitacion universalGravitacion universal
Gravitacion universal
 
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
 

Último

Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasJilvertHuisaCenteno
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasPatriciaRaimondi
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxOSCARADRIANMEDINADUR
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEfrain Yungan
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionnewspotify528
 
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfFOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfDanielAlejandroAguir2
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASSALVADOR ALTEZ PALOMINO
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdffredyflores58
 
Transporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECTransporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECamador030809
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfciteagrohuallaga07
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfAnthony Gualpa
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejerciciosEfrain Yungan
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesrberinald
 
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalCapacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalamador030809
 
movimiento circular univormemente variado
movimiento circular univormemente variadomovimiento circular univormemente variado
movimiento circular univormemente variadoEsthefaniaAuquilla1
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicakiaranoemi
 
Accidente mortal con un Torno mecánico.pptx
Accidente mortal con un Torno mecánico.pptxAccidente mortal con un Torno mecánico.pptx
Accidente mortal con un Torno mecánico.pptxBuddyroi
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 

Último (20)

Sanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitariasSanidad en alpacas, enfermedades infecciosas y parasitarias
Sanidad en alpacas, enfermedades infecciosas y parasitarias
 
Unid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitariasUnid 3 Extraccion 10-10-23 operaciones unitarias
Unid 3 Extraccion 10-10-23 operaciones unitarias
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
SEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptxSEMICONDUCTORES lafhnoealifsncknisz.pptx
SEMICONDUCTORES lafhnoealifsncknisz.pptx
 
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticasEJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
EJERCICIOS DE -LEY-DE-OHM aplicaciones prácticas
 
La mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacionLa mineralogia y minerales, clasificacion
La mineralogia y minerales, clasificacion
 
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfFOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
 
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICASMATEMATICA BÁSICA FUNCIONES LOGARITMICAS
MATEMATICA BÁSICA FUNCIONES LOGARITMICAS
 
GeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdfGeoS33333333333333333333333333333333.pdf
GeoS33333333333333333333333333333333.pdf
 
Transporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMECTransporte y Manipulación de Explosivos - SUCAMEC
Transporte y Manipulación de Explosivos - SUCAMEC
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
 
La Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdfLa Evolución Industrial en el Ecuador.pdf
La Evolución Industrial en el Ecuador.pdf
 
electricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicioselectricidad básica, ejemplos prácticos y ejercicios
electricidad básica, ejemplos prácticos y ejercicios
 
Sistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas ruralesSistema Séptico Domiciliario para viviendas rurales
Sistema Séptico Domiciliario para viviendas rurales
 
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacionalCapacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
Capacitación Anexo 6 D.s. 023 seguridad y salud ocupacional
 
movimiento circular univormemente variado
movimiento circular univormemente variadomovimiento circular univormemente variado
movimiento circular univormemente variado
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganica
 
Accidente mortal con un Torno mecánico.pptx
Accidente mortal con un Torno mecánico.pptxAccidente mortal con un Torno mecánico.pptx
Accidente mortal con un Torno mecánico.pptx
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 

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