使用欧拉方法求解二阶微分方程的Matlab代码

时间:2019-07-04 20:07:43

标签: matlab ode

我正在尝试解决Lane-Emden方程。数字地使用Euler方法,但是我在调​​试代码时遇到问题。

function f=f(t0,x0,y0,N)

h=0.01;
N=5;
t0=0;
x0=1;
y0=1;
H=zeros(1,N+1);
T=zeros(1,N+1);
X=zeros(1,N+1);
Y=zeros(1,N+1);
H(1)=h; T(1)=t0; X(1)=x0; Y(1)=y0;

for j=1:N
    T(j+1)=T(j)+H(j);
    X(j+1)=X(j)+H(j)*Y(j);
    Y(j+1)=Y(j)+H(j)*(-2/(1-T(j))*Y(j)+sin(X(j)));                     
    H(j+1)=H(j)*(1-H(j));

end

plot(T,X);
'hold on'; 
plot(T,Y);

我没有看到任何结果,甚至没有错误。我只看到图表。所以任何人都可以帮助解决这个问题。

0 个答案:

没有答案