Académique Documents
Professionnel Documents
Culture Documents
function[y,t]= eulmod(f,dominio,y0,h)
while k<n -- estas indicando que el bucle se va a correr hasta que k sea
menor que el número de intervalos. Por ejemplo: si n=20, el bucle se va a
correr hasta que k sea 19.
tout(k+1)=t0+k*h; -- esto se coloca para indicar como se debe rellenar el
vector tout que se formo lineas arriba.
k=k+1;
y=fsolve(@func,y,[],y,t,f,h); -- esto se realizo para poder rellenar el vector
yout que se creó anteriormente. Es importante aclarar que se uso fsolve ya
que es un comando que sirve para resolver ecuaciones de distinto tipo,
incluyendo las no lineales. Por este motivo, dado a que tenemos que
resolver los problemas a través de la euler modificada que es de la manera
que se indicara a continuación, conviene usar fsolve para solucionar el
ejercicio.
t=tout(k);
yout(k,:)=y';
Estas dos últimas indicaciones son para rellenar los vectores de t y los que
incluyen las trayectorias de y.
end
t = tout';
y = yout';
return
Primer problema:
function yprima=yp(t,y)
yprima=2*t+y
Acá se está indicando como es la ecuación diferencial que se debe resolver
y cuales con las variables.
Segundo problema:
function ysegun=ys(t,y)
ysegun=1*cos(t/2)*y
function ynegativa=yn(t,y)
ynegativa=-1*cos(t/2)*y
Acá se están indicando el otro problema que se debe resolver por medio del
método de euler modificado.
Primer caso:
function[y,t]= eulmod(f,dominio,y0,h)
Donde:
- Con alpha=1
[y,t]=eulmod(‘ys’, [0 pi], 0.5, 0.01)
- Con alpha=-1
[y,t]=eulmod(‘yn’, [0 pi], 0.5, 0.01)
Finalmente, después de realizar esto, se presiona enter y se espera a que
corra la macro.