metodo de euler en matlab
METODO DE EULER
function E=eulerfink(f,a,b,ya,M)
% Datos
% f es la funcion almacenada como una cadena decaracteres 'f'
% a y b los extremos del intervalo de integración.
% ya es la condición inicial y(a).
% M es el número de pasos.
% Resultados
% E=[T Y] siendo T el vector de las abscisas e Y elvector de las
% ordenadas.
h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
X=a:h:b;
F=inline(f);
Y(1)=ya;
for j=1:M
Y(j+1)=Y(j)+h*feval(F,X(j),Y(j));
end
E=[X;Y];
EJEMPLO:
EJERCICIONo. 1, página 480, Métodos Numéricos con Matlab. Mathews Fink.
Sea el problema de valor inicial: Y’ = t2 – Y, con Y(0)=1. Comparar las soluciones obtenidas mediante: Método de Euler, ODE45, conla solución analítica: Y(t)= -e-t +t2 + 2t.
SOLUCION
f='t^2-y';
>> eulerfink(f,0,2,1,10)
ans =
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.80002.0000
1.0000 0.8000 0.6480 0.5504 0.5123 0.5379 0.6303 0.7922 1.0258 1.3326 1.7141
METODO ODE45 DE MATLAB
% Función auxiliar para ejecutar OD45
function du =P(t,u)
du = t^2-u;
function [t u] = EdifVi(P,a,b,M,Vi)
h=abs(b-a)/M;
[t u]=ode45('P',a:h:b,Vi);
S=[t';u']
SOLUCION:
>> EdifVi('P',0,2,10,1)
S =
0 0.2000 0.4000 0.6000 0.80001.0000 1.2000 1.4000 1.6000 1.8000 2.0000
1.0000 0.8213 0.6897 0.6112 0.5907 0.6321 0.7388 0.9134 1.1581 1.4747 1.8647
COMPARACION GRAFICA DE RESULTADOSSOBRE EL COMAND WINDOWS
>> XE=[0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000];
>> YE=[1.0000 0.8000 0.6480 0.5504 0.51230.5379 0.6303 0.7922 1.0258 1.3326 1.7141];
>> plot(XE,YE)
>> grid on;hold on
>> XODE45=[ 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000...
Regístrate para leer el documento completo.