数学实验:求微分方程的解

数学实验:求微分方程的解

ID:39444831

大小:328.50 KB

页数:25页

时间:2019-07-03

数学实验:求微分方程的解_第1页
数学实验:求微分方程的解_第2页
数学实验:求微分方程的解_第3页
数学实验:求微分方程的解_第4页
数学实验:求微分方程的解_第5页
资源描述:

《数学实验:求微分方程的解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四求微分方程的解1自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多数微分方程需要利用数值方法来近似求解。本实验主要研究如何用Matlab来计算微分方程(组)的数值解,并重点介绍一个求解微分方程的基本数值解法--Euler折线法。问题背景和实验目的2考虑一维经典初值问题基本思想:用差商代替微商根据Talyor公式,y(x)在点xk处有Euler折线法3初值问题的Euler折线法具体步骤:等距剖分:步长:分割求解区间

2、分割求解区间,差商代替微商,解代数方程为分割点差商代替微商得迭代格式:k=0,1,2,...,n-1yk是y(xk)的近似4Euler折线法举例例:用Euler法解初值问题取步长h=(2-0)/n=2/n,得差分方程当h=0.4,即n=5时,Matlab源程序见fuluA.m解:5Euler折线法源程序clear;f=inline('y+2*x/y^2','x','y');a=0;b=2;n=5;h=(b-a)/n;x=a:h:b;y(1)=1;fori=1:ny(i+1)=y(i)+h*f(x(i),y(i));endplot(x,y,'rs-');6Euler折线法举例(续)

3、解析解:解析解近似解y=1/3*(-18-54*x+45*exp(3*x))^(1/3)7Runge-Kutta方法为了减小误差,可采用以下方法:让步长h取得更小一些;改用具有较高精度的数值方法,如:龙格-库塔方法Runge-Kutta(龙格-库塔)方法是一类求解常微分方程的数值方法有多种不同的迭代格式8Runge-Kutta方法用得较多的是四阶R-K方法(教材第98页)其中9四阶R-K方法源程序clearf=inline('y+2*x/y^2','x','y');a=0;b=2;n=5;h=(b-a)/n;x=a:h:b;y(1)=1;fori=1:nL1=f(x(i),y(i

4、));L2=f(x(i)+h/2,y(i)+L1*h/2);L3=f(x(i)+h/2,y(i)+L2*h/2);L4=f(x(i)+h,y(i)+L3*h);y(i+1)=y(i)+h*(L1+2*L2+2*L3+L4)/6;endfprintf('y在x=2点的近似值为%f',y(n+1));plot(x,y,'rs-');10Runge-Kutta方法11Euler法与R-K法误差比较12Matlab解初值问题函数用Maltab自带函数解初值问题求解析解:dsolve求数值解:ode45、ode23、 ode113、ode23t、ode15s、ode23s、ode23t

5、b13dsolve求解析解dsolve的使用y=dsolve('eq1','eq2',...,'cond1','cond2',...,'v')其中y为输出的解,eq1、eq2、...为微分方程,cond1、cond2、...为初值条件,v为自变量。例1:求微分方程的通解,并验证。>>y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')>>symsx;>>diff(y)+2*x*y-x*exp(-x^2)14dsolve的使用几点说明如果省略初值条件,则表示求通解;如果省略自变量,则默认自变量为tdsolve('Dy=2*x','x');%dy/dx=2xdso

6、lve('Dy=2*x');%dy/dt=2x若找不到解析解,则返回其积分形式。微分方程中用D表示对自变量的导数,如:Dyy';D2yy'';D3yy'''15dsolve举例例2:求微分方程在初值条件下的特解,并画出解函数的图形。>>y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')>>ezplot(y);16dsolve举例例3:求微分方程组在初值条件下的特解,并画出解函数的图形。[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0',...'x(0)=1','y(0)=0','t')ezplot(x

7、,y,[0,1.3]);注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解按词典顺序输出;如果只给一个输出,则输出的是一个包含解的结构(structure)类型的数据。17dsolve举例例:[x,y]=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')r=dsolve('Dx+5*x=0','Dy-3*y=0',...'x(0)=1','y(0)=1','t')这里返回的r是一个结构类型的数据r.x%查看

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

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

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