700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 微分方程的数值解法——常微分方程——欧拉法与改进欧拉法(2)

微分方程的数值解法——常微分方程——欧拉法与改进欧拉法(2)

时间:2020-04-28 11:25:21

相关推荐

微分方程的数值解法——常微分方程——欧拉法与改进欧拉法(2)

改进欧拉法

与上一篇中实例相比,改进欧拉法多了一步修正过程,正是应为有了该一步修正过程使得数值解法具有更高一级精度。

先看下面两幅图,第一幅是没有改进的欧拉法,第二幅是改进的欧拉法

两者相比误差有很大的提高。

下式即为改进欧拉法的修正公式,即梯形公式,

其中右边项中的i+1使用的时传统欧拉法的预估值。对当前值进行进一步修正。

代码如下:

%微分方程数值解法----欧拉法测试%-------------------------------------clc;clear all;close all;%-------------------------------------%du/dt + u^2 = 0%u(0)=1%-------------------------------------N = 100;t_s = 0;t_e = 1;dt = (t_e-t_s)/N;t = t_s:dt:t_e-dt;M=2;%-------------------------------------%解析解u_j=1./(1+t);u_s(1) = 1;for i=2:Nif M==1u_s(i)=-u_s(i-1)^2*dt+u_s(i-1);elseif M==2u_s(i)=-u_s(i-1)^2*dt+u_s(i-1);%预测u_s(i)=u_s(i-1)+(-u_s(i)^2-u_s(i-1)^2)*dt/2;endendsubplot(2,1,1);plot(t,u_j,'-o',t,u_s,'-*');xlabel('t');ylabel('y');legend('解析解','数值解');subplot(2,1,2);plot(t,u_j-u_s,'-r');xlabel('t');ylabel('err');legend('误差');

运行结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。