《常微分方程数值解法最新上机.ppt》由会员分享,可在线阅读,更多相关《常微分方程数值解法最新上机.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章第五章 常微分方程数值解常微分方程数值解 待求解的问题待求解的问题:一阶一阶常微分方程的常微分方程的初值问题初值问题:解的存在唯一性解的存在唯一性(“常微分方程常微分方程”理论):只要理论):只要 f(x,y)在在a,b R1 上连续,且关于上连续,且关于 y 满足满足 Lipschitz 条件条件,即存在与,即存在与 x,y 无关的常数无关的常数 L 使使对任意定义在对任意定义在 a,b 上的上的 y1(x)和和 y2(x)都成立,则上述都成立,则上述IVP存存在唯一解在唯一解。-Eulers Method5.2 欧拉方法欧拉方法1 Eulers MethodTaylor展开法展开法M
2、atlab程序:程序:function E=euler10(a,b,N,y0)h=(b-a)/N;y=zeros(1,N+1);x=zeros(1,N+1);y(1)=y0;x=a:h:b;for i=1:N y(i+1)=y(i)+h*(y(i)-2*x(i)/y(i)endE=x,y;Matlab程序:程序:function E=euler10(a,b,N,y0)h=(b-a)/N;y=zeros(1,N+1);x=zeros(1,N+1);y(1)=y0;x=a:h:b;for i=1:N y(i+1)=y(i)+h*(y(i)-2*x(i)/y(i)endE=x,y;运行:运行:E=e
3、uler10(0,1,10,1)Matlab程序:程序:function E=euler10(fun,a,b,N,y0)h=(b-a)/N;y=zeros(1,N+1);x=zeros(1,N+1);y(1)=y0;x=a:h:b;for i=1:N y(i+1)=y(i)+h*feval(fun,x(i),y(i)endE=x,y;function z=f(x,y)z=y-2*x/y;运行:运行:E=eluer10(f,0,1,10,1)在在假假设设 yn=y(xn),即即第第 n 步步计计算算是是精精确确的的前前提提下下,考考虑虑公公式式或或方方法法本本身身带带来来的的误误差差:Rn=y(
4、xn+1)yn+1,称称为为局局部部截断误差截断误差。说明 显然,这种近似有一定误差,显然,这种近似有一定误差,而且步长越大,误差越大,而且步长越大,误差越大,如何估计这种误差如何估计这种误差y(xn+1)yn+1?1 Eulers Method在在xn点用一阶向前差商近似一阶导数点用一阶向前差商近似一阶导数Eulers methodxn+1点向后差商近似导数点向后差商近似导数比Euler方法增加的步骤上机程序 编写要求完成一个程序,这个程序可以实现如下功能:完成一个程序,这个程序可以实现如下功能:1.可以实现可以实现 Euler方法方法+后退后退Euler方法方法+梯形格式梯形格式+改改进的进的Euler格式格式+Euler两步格式;两步格式;2.可以根据客户需要选择哪些方法;可以根据客户需要选择哪些方法;3.可以对所有方法的数值结果进行比较,特别是可可以对所有方法的数值结果进行比较,特别是可以告知客户哪些结果比较好;以告知客户哪些结果比较好;4.可以通过对右端项函数可以通过对右端项函数 f 的修改,达到对新的常微的修改,达到对新的常微分方程的进行求解。分方程的进行求解。