MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt

MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt

ID:59499592

大小:2.10 MB

页数:21页

时间:2020-09-11

MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt_第1页
MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt_第2页
MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt_第3页
MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt_第4页
MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt_第5页
资源描述:

《MATLAB_简介_7__数值法求解微分方程及微分方程组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Matlab解微分方程除了上述的已知ODE外,还须有起始条件y0=y(x0)才能解方程式,即是在x=x0时,y(x)=y0。上述各个方程式的解析解(analyticalsolution)如下:阮奇-库达(Runge-Kutta)方法是最通用的解ODE的方法,它可以依计算精确度的要求有低阶到高阶的各个计算式,MATLAB应用阮奇-库达法的函数有ode23,ode45,其中ode23是同时以二阶及三阶阮奇-库达法求解,而ode45则是以四阶及五阶阮奇-库达法求解。其语法为ode23('dy',x0,xn,y0

2、),其中dy为ODE中的等式右边的函数(如之前介绍的),x0,xn是要解ODE的区间[x0,xn]的二个端点,y0是起始值(y0=y(x0))。而ode45的语法与ode23相同。例一、要在区间[2,4]解以下的ODE:%m-function,g1.mfunctiondy=g1(x,y)dy=3*x.^2;>>[x,num_y]=ode23('g1',2,4,0.5);>>anl_y=x.^3-7.5;>>plot(x,num_y,'b:',x,anl_y,'r-')>>title('Solutionof

3、g1')>>xlabel('x'),ylabel('y=f(x)'),gridY’=3x2例二、要在区间[0,5]解以下的ODE:%m-function,g2.mfunctiondy=g2(x,y)dy=-0.131*y;>>[x,num_y]=ode23('g2',0,5,4);>>anl_y=4*exp(-0.131*x);>>plot(x,num_y,x,anl_y,'o')>>title('Solutionofg2')>>xlabel('x'),ylabel('y=f(x)'),gridY’=-0

4、.13y例三、要在区间[0,2]解以下的ODE:%m-function,g3.mfunctiondy=g3(x,y)dy=2*x*cos(y)^2;>>[x,num_y]=ode23('g3',0,2,pi/4);>>anl_y=atan(x.*x+1);>>plot(x,num_y,'b:',x,anl_y,'r-')>>title('Solutionofg3')>>xlabel('x'),ylabel('y=f(x)'),gridY’=2xcos2y例四、要在区间[0,3]解以下的ODE:%m-fun

5、ction,g4.mfunctiondy=g4(x,y)dy=3*y+exp(2*x);>>[x,num_y]=ode23('g4',0,3,3);>>anl_y=4*exp(3*x)-exp(2*x);>>plot(x,num_y,x,anl_y,'o')>>title('Solutionofg4')>>xlabel('x'),ylabel('y=f(x)'),griY’=3y+e2x如果将上述方法改以ode45计算,你可能无法察觉出其与ode23的解之间的差异,那是因为我们选的ODE代表的函数分布变化

6、平缓,所以高阶方法就显现不出其优点。不过以二者在计算的误差上做比较,ode45的误差量级会比ode23要小。以下是几个例子:%m-function,g1.mfunctiondy=g1(x,y)dy=3*x.^2;%m-file,odes1.m;%Solveanodeusingode23andode45clg[x1,num_y1]=ode23('g1',2,4,0.5);anl_y1=x1.^3-7.5;error_1=abs(anl_y1-num_y1)./abs(anl_y1);%ode23的计算误差[

7、x2,num_y2]=ode45('g1',2,4,0.5);anl_y2=x2.^3-7.5;%注意x2个数与x1不一定相同error_2=abs(anl_y2-num_y2)./abs(anl_y2);%ode45的计算误差holdonsubplot(2,2,1)plot(x1,num_y1,x1,anl_y1,'o')title('ODE23solution'),ylabel('y')subplot(2,2,2)plot(x1,error_y1)%注意二种方法的误差title('ODE23error

8、'),ylabel('y')%ode23的误差的量级为1.e-16subplot(2,2,3)plot(x2,num_y2,x2,anl_y2,'o')title('ODE45solution'),ylabel('y')subplot(2,2,4)plot(x1,error_y2)title(‘ODE45error’),ylabel(‘y’)%ode45的解没有误差holdoff另一个例子:%m-function,g5.mfu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。