Euler.sci

// Solución de una ecuación diferencial (Euler)
clear
disp("Método de Euler")

// Aquí se define la ecuación diferencial
// expresada de la forma y'=f(t,y)
function yprima=f(t,y)
    yprima=
endfunction

// Datos
disp("Proporcione el punto inicial:")
t0=input("t0=");
y0=input("y0=");

disp("Proporcione el valor final de t:")
tf=input("tf=");

disp("Proporcione el valor del paso")
h=input("h=");

// Número de pasos
N=(tf-t0)/h;

// Crear vectores para los puntos para graficar al final
// NOTA: en Scilab los vectores comienzan en 
//       la posición uno y hay un punto más que
//       que el número de pasos
t=linspace(t0,tf,N+1);
y=zeros(t);

// Primer valor de yi
y(1)=y0;

// Ciclo para avanzar a lo largo del tiempo
for n=1:N
    y(n+1)=y(n)+h*f(t(n),y(n));
end

// Reportar el valor final
disp("Valor final yf=" + string(y($)))

// Graficar
clf
plot(t,y,"r");
plot(t,y,"ob");