Views
- State: visible
Ejemplo Euler
Ejemplo simple de for.
Size
1.0 kB
-
File type
text/x-objcsrc
File contents
% Esta función resuelve el problema y' = k*y, y(0) = 1, utilizando los métodos de Euler explícito e implícito.
% INPUT: k, tf = tiempo final, h = paso de Euler.
% OUTPUT: t = vector de tiempos, y = vector que aproxima la solución con el método explícito, +
% z = vector que aproxima la solución con método implícito.
function [t,y,z] = ej_euler(k,tf,h)
t = [0:h:tf]'; %Define el vector de tiempos. Va traspuesto para que de una columna.
n = length(t); %Cantidad de casilleros de t.
y = zeros(n,1); %Inicializa el vector y, como una columna de n casilleros.
y(1) = 1; %Dato inicial.
z = zeros(n,1); %Idem para z.
z(1) = 1;
%Iteración de Euler:
for i=1:n-1
y(i+1) = y(i)*(1+h*k); %Euler explícito.
z(i+1) = z(i)/(1-h*k); %Euler implícito.
end
% Para plotear la solución: correr el programa desde la ventana de comandos, y luego:
% plot(t,y)
% hold on
% plot(t,z,'r')
% "hold on" evita que el segundo plot borre el primero. Se puede agregar a esto el gráfico de la solución exacta.