Método de Euler para Matlab.
Publicado por eraldcoil (1 intervención) el 03/05/2011 00:52:12
Buenas, quiero resolver en Matlab (en realidad era Scilab pero luego intentaré moldear el código de Matlab a Scilab) mediante las poligonales de Euler el problema de cauchy siguiente:
[tex]\left\{ \begin{array}{lcc}
x'=-x & \\
\\ x(0)=1 & \\
\end{array}
\right.[/tex]
Sobre el intervalo [tex][0,1][/tex] con tamaño de paso [tex]h=0.05.[/tex]
¿Cómo sería el código? Soy nuevo en Matlab .
PD:
function [Y, X] = Euler(f, x0, y0, xf, n)
// Metodo de Euler para la ecuacion diferencial
//
// y’ = f(x,y)
// y(x0) = y0
// en intervalo [x0, xf]
//
// n = numero de subintervalos
// Y, X seran vectores fila de n+1 elementos
// Y contendra las aproximaciones de
// y(x0) y(x0+h) y(x0+2h) ... y(xf)
// con h = (xf-x0)/n
// X contendra los valores x0 x0+h x0+2h ... xf
h = (xf-x0)/n
X = zeros(1,n+1)
Y = X
X(1) = x0
Y(1) = y0
xi = x0
yi = y0
for i=1:n
yi = yi + h*f(xi,yi)
xi = xi+h
Y(i+1) = yi
X(i+1) = xi
end
endfunction
Este código es para Scilab, Si alguien sabe Scilab, y decirme como poner este código para que me funcione para mi problema, le agredecería mucho, nose ni siquiera como invocar los comandos una vez establecidos las acciones predefinidas en los programas :(.
[tex]\left\{ \begin{array}{lcc}
x'=-x & \\
\\ x(0)=1 & \\
\end{array}
\right.[/tex]
Sobre el intervalo [tex][0,1][/tex] con tamaño de paso [tex]h=0.05.[/tex]
¿Cómo sería el código? Soy nuevo en Matlab .
PD:
function [Y, X] = Euler(f, x0, y0, xf, n)
// Metodo de Euler para la ecuacion diferencial
//
// y’ = f(x,y)
// y(x0) = y0
// en intervalo [x0, xf]
//
// n = numero de subintervalos
// Y, X seran vectores fila de n+1 elementos
// Y contendra las aproximaciones de
// y(x0) y(x0+h) y(x0+2h) ... y(xf)
// con h = (xf-x0)/n
// X contendra los valores x0 x0+h x0+2h ... xf
h = (xf-x0)/n
X = zeros(1,n+1)
Y = X
X(1) = x0
Y(1) = y0
xi = x0
yi = y0
for i=1:n
yi = yi + h*f(xi,yi)
xi = xi+h
Y(i+1) = yi
X(i+1) = xi
end
endfunction
Este código es para Scilab, Si alguien sabe Scilab, y decirme como poner este código para que me funcione para mi problema, le agredecería mucho, nose ni siquiera como invocar los comandos una vez establecidos las acciones predefinidas en los programas :(.
Valora esta pregunta


0