赞
踩
matlab代码如下:
function euler_mothod %求解初值问题(ode-IVP) %/ u'=f(t,u) %/ u(0)=u0 T=1; h=0.05; t=0:h:T; N=length(t)-1; solu=exp(-5*t); u0=1; f=@f1; u_euler=euler(f,u0,t,h,N); u_implicit = implicit_euler(f,u0,t,h,N); u_modified = modified_euler(f,u0,t,h,N); figure(1) plot(t,u_euler,'*b',t,u_implicit,'gs',t,u_modified,'s',t,solu,'r') legend('Euler','Implicit-Euler','Modified-Euler','Exact-soln') end function u=euler(f,u0,t,h,N) u=zeros(N+1,1); u(1)=u0; for n=1:N fn=f1(t(n),u(n)); u(n+1)=u(n)+h*fn; end end %隐式欧拉,逼近效果不如显示欧拉,没找到哪里出错了 function u = implicit_euler(f,u0,t,h,N) u=zeros(N+1,1); u(1)=u0; for n=1:N fn=f1(t(n),u(n)); s2=u(n)+h*fn; fn=f1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。