Академический Документы
Профессиональный Документы
Культура Документы
primero que todo notemos que se dice que se deja caer desde su reposo es decir la fuerza en
este caso es nula as primero creamos un programa donde se encuentre la ecuacion ya vista
00
arriba donde despejamos u y as como f=0 nos queda el siguiente programa:
function Z=Fa(t,Y)
m=1.2;
b=0.3;
k=15;
Z=[Y(2);(-k*Y(1)-b*Y(2))/m];
1
cabe resaltar que los valores de la solucion numerica es extensa por esta razon solo se
muestra la grafica de dicha solucion, como se esta trabajando con segundos por eso nuestra
solucion se muestra en el intervalo [0,60] medido en segundos.
(b) cuando desde su posicion de equilibrio y en reposo, se le aplica una fuerza externa periodica
f (t) = cos(t)
de la misma manera que en la parte a realizamos un programa, con la diferencia que ahora
la fuerza no es cero as se tiene:
function Z=Fb(t,Y)
m=1.2;
b=0.3;
k=15;
Z=[Y(2);(cos(t)-k*Y(1)-b*Y(2))/m];
2
note que la solucion numerica la volvemos a ver en el mismo intervalo que en la parte a)
q
k
(c) igual que el anterior pero con f (t) = coswt, donde w = m
es la frecuencia de oscilacion
libre del sistema sin amortiguamiento
al igual que en las partes de arriba creamos un programa con las condiciones ya descritas
arriba as se tiene
function Z=Fc(t,Y)
m=1.2;
b=0.3;
k=15;
fm=sqrt(k/m);
Z=[Y(2);(cos(fm*t)-k*Y(1)-b*Y(2))/m];
lo ejecutamos y se obtiene
>> [t,Y]=ode45(Fc,[0 60],[0;0]);
>> plot(t,Y(:,1))
3
2. considere un ecosistema simple consistente de conejos con una cantidad mas que suficiente de
alimento y zorros que depredan los conejos para su alimentacion. un modelo clasico debido a
volterra describe este ecosistema mediante el siguiente para de ecuaciones no lineales de primer
orden:
dc = 2c acz, c(0) = c0
dt
dz
= z + acz, z(0) = z0
dt
donde t es el tiempo medido en anos, c=c(t) es el numero de conejos y z=z(t) es el numero
de zorros, ambos en el instante t, y a es una constante positiva que mide la probabilidad de
interaccion entre miembros de las dos especies.
(a) cuando a=0, conejos y zorros no interactuan resuelva la ecuacion diferencial a lo largo de
un ano en le caso en que inicialmente hay 100 animales de cada especie. compruebe que en
tal caso los conejos hacen lo que mejor saben hacer, mientras los zorros se van muriendo
de hambre
bueno dado que a=0 tenemos que crear una programa function en donde este representada
el sistema de ecuaciones, as tenemos lo siguiente
function Z=Fa(t,Y)
a=0;
4
Z=[2*Y(1)-a*Y(1)*Y(2);-Y(2)+a*Y(1)*Y(2)]
ejecutamos con el comando ode45 y asi obtenemos
>> [t,Y]=ode45(Fa,[0 1],[100;100]);
>> plot(t,Y)
note que solo mostramos la grafica dado que la solucion numerica es extensa, y vea que
efectivamente los conejos hacen lo que saben hacer y los zorros van muriendo poco a poco.
(b) Calcule la evolucion de ambas poblaciones a lo largo de 12 anos en le caso en que la con-
stante de interacciones es a=0.01 y que la poblacion inicial es de 300 conejos y 150 zorros
AQue conclucion puede extraer en este caso?
al igual que el enciso anterior crearemos un programa donde ingresaremos las ecuaciones,
el cual ejecutaremos con el comando ode45 as:
function Z=Fb(t,Y)
a=0.01;
Z=[2*Y(1)-a*Y(1)*Y(2);-Y(2)+a*Y(1)*Y(2)];
lo ejecutamos
>> [t,Y]=ode45(Fb,[0 12],[300;150]);
>> plot(t,Y)
>> legend(conejos,zorros)
5
la conclusion de acuerdo a lo obtenido es, que el crecimiento y decrecimiento de ambas
poblaciones es periodico con un periodo de aproximadamente 5 anos
(c) Repita la simulacion anterior pero con una poblacion inicial de 15 conejos y 22 zorros
Acual es la ahora la conclusion?
repitiendo tenemos
>> [t,Y]=ode45(Fb,[0 12],[15;22]);
>> plot(t,Y)
6
la conclusion ahora seria que al cabo de 4 anos la poblacion de conejos deja de ser inferior
a 1, lo que indica que se extinguieron y por lo tanto el modelo deja de ser valido
3. el P.V.I siguiente
0
y = (y sent) + cost
y(0) = 1
7
>> [t,y]=ode15s(f3,[0 1],1,options);
>> plot(t,y,+-)
(b) verifique que el primer comando requiere mas iteraciones para aproximar la solucion con el
error pedido y que el segundo requiere mucho menos,Para esto vamos a utilizar el comando
length para conocer el tamano de t as para ode45
>> length(t)
ans =
1229
y para ode15s
>> length(t)
ans =
40
note que le primero necesita muchas mas iteraciones que el segundo luego podemos concluir
que el comando ode15s es el recomendable para resolver este tipo de ecuaciones.
4. En aplicaciones de la aerodinamica aparece la ecuacion de blasius
000 00
2f + f f = 0
00
(a) experimente con distintos valores de f (0) entre 0.1 y 0.5 para ver que valor de puede
tomarse como
8
function Z=F4(t,Y)
Z=[Y(2);Y(3);-Y(1)*Y(3)/2];
ahora tomemos varios valores entre 0.1 y 0.5 y veamos la solucion numerica, primero en
0.1 veamos la solucion en el intervalo [0,10]
>> [t,Y]=ode45(F4,[0 10],[0;0;0.1]);
>> plot(t,Y(:,2))
para 0.2
>> [t,Y]=ode45(F4,[0 10],[0;0;0.2]);
>> plot(t,Y(:,2))
9
para 0.3
>> [t,Y]=ode45(F4,[0 10],[0;0;0.3]);
>> plot(t,Y(:,2))
para 0.4
>> [t,Y]=ode45(F4,[0 10],[0;0;0.4]);
>> plot(t,Y(:,2))
10
para 0.5
>> [t,Y]=ode45(F4,[0 10],[0;0;0.5]);
>> plot(t,Y(:,2))
De acuerdo a las graficas podemos notar que se puede tomar =10 como
11
00 0
(b) determine el valor correcto de f (0) para que f () 1 cuando .
Creamos un programa para calcular dicho valor teniendo en cuenta la ecuacion de Blasius,
este programa es:
function z=Blasius(x)
[t,Y]=ode45(F4,[0 10],[0;0;x]);
z=Y(length(t),2)-1;
al ejecutarlo con el comando fzero el cual me entrega la raz que en este caso es el valor de
00
f (0)
>> raiz=fzero(Blasius,0.3)
raiz =
0.3320
00 (0)=0.3320
luego f
Ru 0 0
(c) se sabe que el momento del fluido es proporcional a (u) = 0
f ()[1 f ()]d
calcule (5.0)
12
5. Use el metodo de euler con h=0.05 a fin de aproximar la poblacion de la presa x y la de
depredadores y, en el periodo [0,t] (toma t=2,4,6), que satisfacen el sistema no lineal de Lotka-
Volterra
0
x = x(3 y)
0
y = y(x 3)
Para esto primero se crea un programa en donde se implementa el metodo de euler y otro donde
definamos la ecuacion descrita arriba asi para el de euler se tiene
function [x,t]=euler(f,y0,I0,If,h)
n=(If-I0)/h;
x(:,1)=y0;
t=I0:h:If;
for i=1:n
x(:,i+1)=x(:,i)+h*feval(f,t(i),x(:,i));
end
t=t
x=x
plot(t,x,r)
title(metoodo de euler para una edo)
xlabel(t)
ylabel(x)
y para la ecuacion
function D=Fd(t,X)
D=[X(1)*(3-X(2));X(2)*(X(1)-3)];
ahora resolvamos para cada condicion inicial en el intervalo [0,2] as ejecutando el programa se
tiene: para x(0)=2 , y(0)=4
euler(f,[2;4],0,2,0.05);
13
para x(0)=2 , y(0)=5
euler(f,[2;5],0,2,0.05);
14
para x(0)=2 , y(0)=7
euler(f,[2;7],0,2,0.05);
15
para x(0)=2 , y(0)=5
euler(f,[2;5],0,4,0.05);
16
igualmente para el intervalo [0,6] para x(0)=2 , y(0)=4
euler(f,[2;4],0,6,0.05);
17
para x(0)=2 , y(0)=7
euler(f,[2;7],0,6,0.05);
6. usar el metodo de Runge Kutta de cuarto orden para resolver los siguientes problemas de valor
inicial
0 y
(a) y = ( )2 + ( yt ), en el intervalo [1,1.2] con y(1)=1 y h=0.05;
t
0
(b) y = ty + ( 4ty ), en el intervalo [0.1] con y(0)=1 y h=0.25;
para esto primero creamos un programa con el cual resolveremos la ecuacion basados en el
metodo de Runge Kutta asi este es
for i = 1:n
k1 = h*feval(f,t(i), w(i));
k2 = h*feval(f,t(i)+h/2, w(i)+(k1)/2);
k3 = h*feval(f,t(i)+h/2, w(i)+(k2)/2);
k4 = h*feval(f,t(i)+h, w(i)+k3);
w(i+1) = w(i) + (k1 + 2*k2 + 2*k3 + k4)/6;
18
t(i+1) = a + i*h;
end
[t w]
function z=ft(t,y)
z=(y/t).^2 + (y/t);
>> rk4(ft,1,1.2,0.05,1)
ans =
1.0000 1.0000
1.0500 1.1039
1.1000 1.2159
1.1500 1.3368
function z=ft(t,y)
z=-t*y+((4*t)/y);
>> rk4(ft,0,1,0.25,1)
ans =
0 1.0000
0.2500 1.0872
0.5000 1.2899
0.7500 1.5135
1.0000 1.7018
19