matlab 欧拉算法 附截图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设系统方程为:y t y y /2)1(-=,1)0(=y ,用改进欧拉法求解各离散点y 的数值解,步长

10,1.0≤≤=t h ,解析解为t y 21+=

解:改进欧拉法

),(1n n n p

n y t hf y y +=+

)],(),([5.0111p

n n n n n c

n y t f y t f h y y +++++=

已知 n n n n n y t y y t f /2),(-=

n n n n n n n p

n y ht y h y t y h y y /2)1()/2(1-+=-+=+

1

111111/5.0/)5.01()]/2()/2[(5.0+++++++-+-+=-+-+=n n n n n n n n n n n n n c n y ht hy y ht y h y t y y t y h y y 程序:

h=0.1; t=0:h:1;

N=length(t); y=ones(1,N); ey=ones(1,N);

zy=ones(1,N); for k=1:N-1

y(1,k+1)=(1+h)*y(1,k)-(2*h*(k-1)/(N-1))./y(1,k);%预估公式 ey(1,k+1)=(1+h)*ey(1,k)-(2*h*(k-1)/(N-1))./ey(1,k);%欧拉公式

y(1,k+1)=(1+0.5*h)*y(1,k)-(h*(k-1)/(N-1))./y(1,k)+0.5*h*y(1,k+1)-(h*k/(N-1))./y(1,k+1);%改进欧拉

zy(1,k+1)=(1+2*k/(N-1)).^0.5;%解析解 end

plot(t,zy,'-xk',t,y,':ob',t,ey,'-.*r','linewidth',1.0); xlabel('t'); ylabel('y'); 截图:

相关文档
最新文档