《2023年exp4求微分方程的解.pdf》由会员分享,可在线阅读,更多相关《2023年exp4求微分方程的解.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 e x p 4 求 微 分 方 程 的 解 精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 实验四 求微分方程的解 一、问题背景与实验目的 实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组)这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解)对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用,本实验将作一定的介绍 本实验将主要研究微分方程(组)的数值解法(
2、近似解),重点介绍 Euler 折线法 二、相关函数(命令)及简介 1 dsolve(equ1,equ2,):Matlab 求微分方程的解析解 equ1、equ2、为方程(或条件)写方程(或条件)时用 Dy 表示 y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推 2 simplify(s):对表达式 s 使用 maple 的化简规则进行化简 例如:syms x simplify(sin(x)2+cos(x)2)ans=1 3 r,how=simple(s):由于 Matlab 提供了多种化简规则,simple 命令就是对表达式 s 用各种规则进行化简,然后用 r
3、 返回最简形式,how 返回形成这种形式所用的规则 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 例如:syms x r,how=simple(cos(x)2-sin(x)2)r=cos(2*x)how=combine 4 T,Y=solver(odefun,ts
4、pan,y 0)求微分方程的数值解 说明:(1)其中的 solver 为命令 ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb 之一(2)odefun 是显式常微分方程:0 0)(),(y t yy t fdtdy(3)在积分区间 tspan=,0 ft t 上,从0t 到ft,用初始条件0y 求解(4)要获得问题在其他指定时间点,2 1 0,t t t 上的解,则令 tspan=,2 1 0 ft t t t(要求是单调的)(5)因为没有一种算法可以有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver,对于不同的 O
5、DE 问题,采用不同的 Solver 求解器 Solver ODE 类型 特点 说明 ode45 非刚性 单步算法;4、5 阶 Runge-Kutta 方程;累计截断误差达3)(x 大部分场合的首选算法 ode23 非刚性 单步算法;2、3 阶 Runge-Kutta 方程;累计截断误差达3)(x 使用于精度较低的情形 ode113 非刚性 多步法;Adams 算法;高低精度均可到6 310 10 计算时间比 ode45 短 ode23t 适度刚性 采用梯形算法 适度刚性情形 ode15s 刚性 多步法;Gears 反向数值微分;精度中等 若 ode45 失效时,可尝试使用 ode23s 刚性
6、 单步法;2 阶 Rosebrock 算法;当精度较低时,计算分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 低精度 时间比 ode15s 短 ode23tb 刚性 梯形算法;低精度 当精度较低时,计算时间比 ode15s 短(6)要特别的是:ode23、ode45
7、 是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中:ode23 采用龙格-库塔 2 阶算法,用 3 阶公式作误差估计来调节步长,具有低等的精度 ode45 则采用龙格-库塔 4 阶算法,用 5 阶公式作误差估计来调节步长,具有中等的精度 5 ezplot(x,y,tmin,tmax):符号函数的作图命令 x,y 为关于参数 t 的符号函数,tmin,tmax 为 t 的取值范围 6 inline():建立一个内联函数格式:inline(expr,var1,var2,),注意括号里的表达式要加引号 例:Q=dblquad(inline(y
8、*sin(x),pi,2*pi,0,pi)三、实验内容 1.几个可以直接用 Matlab 求微分方程精确解的例子:例 1:求解微分方程22xxe xydxdy,并加以验证 求解本问题的 Matlab 程序为:syms x y%line1 y=dsolve(Dy+2*x*y=x*exp(-x2),x)%line2 diff(y,x)+2*x*y-x*exp(-x2)%line3 simplify(diff(y,x)+2*x*y-x*exp(-x2)%line4 说明:分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分
9、方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢(1)行 line1 是用命令定义 x,y 为符号变量这里可以不写,但为确保正确性,建议写上;(2)行 line2 是用命令求出的微分方程的解:1/2*exp(-x2)*x2+exp(-x2)*C1(3)行 line3 使用所求得的解这里是将解代入原微分方程,结果应该为 0,但这里给出:-x3*exp(-x2)-2*x*exp(-x2)*C1+2*
10、x*(1/2*exp(-x2)*x2+exp(-x2)*C1)(4)行 line4 用 simplify()函数对上式进行化简,结果为 0,表明)(x y y 的确是微分方程的解 例 2:求微分方程 0 xe y xy 在初始条件 e y 2)1(下的特解,并画出解函数的图形 求解本问题的 Matlab 程序为:syms x y y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1),x)ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x*exp(1)(Matlab 格式),即xe eyx,解函数的图形如图 1:-6-4-2 0 2 4 6-30-20-
11、1001020304050 x1/x exp(x)+1/x exp(1)图 1 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 例 3:求微分方程组 0 35y xdtdye y xdtdxt在初始条件 0|,1|0 0 t ty x 下的特解,并画出解函数的图形
12、求解本问题的 Matlab 程序为:syms x y t x,y=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0,x(0)=1,y(0)=0,t)simple(x);simple(y);ezplot(x,y,0,1.3);axis auto 微分方程的特解(式子特别长)以及解函数的图形均略 2.用 ode23、ode45 等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解)例 4:求解微分方程初值问题 1)0(2 2 22yx x ydxdy的数值解,求解范围为区间 0,0.5 fun=inline(-2*y+2*x2+2*x,x,y);x,y=ode2
13、3(fun,0,0.5,1);x;y;plot(x,y,o-)x ans=0.0000 0.0400 0.0900 0.1400 0.1900 0.2400 0.2900 0.3400 0.3900 0.4400 0.4900 0.5000 y ans=1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179 图形结果为图 2 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍
14、折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50.60.650.70.750.80.850.90.951 图 2 例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(,1)0(,0)1(222 y y ydtdyydty d 分析:令,12 1dtdxx y x 则.)1(,1 221221 x x xd
15、tdxxdtdx 先编写函数文件 verderpol.m:function xprime=verderpol(t,x)global mu;xprime=x(2);mu*(1-x(1)2)*x(2)-x(1);再编写命令文件 vdp1.m:global mu;mu=7;y0=1;0 t,x=ode45(verderpol,0,40,y0);x1=x(:,1);x2=x(:,2);plot(t,x1)图形结果为图 3 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简
16、介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 0 5 10 15 20 25 30 35 40-2.5-2-1.5-1-0.500.511.522.5 图 3 3.用 Euler 折线法求解 前面讲到过,能够求解的微分方程也是十分有限的下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方法 Euler 折线法求解的基本思想是将微分方程初值问题 0 0)(),(y x yy x fdxdy 化成一个代数方程,即差分方程,主要步骤是用差
17、商hx y h x y)()(替代微商dxdy,于是:)(),(,()()(0 0 x y yx y x fhx y h x yk kk k 记)(,1 k k k kx y y h x x,从而)(1h x y yk k,则有 1,2,1,0).,(,),(110 0 n ky x hf y yh x xx y yk k k kk k 例 6:用 Euler 折线法求解微分方程初值问题 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方
18、化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 1)0(,22yyxydxdy 的数值解(步长 h 取 0.4),求解范围为区间 0,2 解:本问题的差分方程为 1,2,1,0).2),(),(,4.0,1,02110 0 n kyxy y x f y x hf y yh x xh y xk k k kk k(其中:相应的 Matlab 程序见附录 1 数据结果为:0 1.0000 0.4000 1.4000 0.8000 2.1233 1.2000 3.1145 1.
19、6000 4.4593 2.0000 6.3074 图形结果见图 4:0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 21234567 图 4 分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 特别说明:本问题可进一步利用四阶 Runge-Ku
20、tta 法求解,读者可将两个结果在一个图中显示,并和精确值比较,看看哪个更“精确”?(相应的 Matlab 程序参见附录 2)四、自己动手 1.求微分方程 0 sin 2)1(2 x xy y x 的通解 2.求微分方程 x e y y yxsin 5 2 的通解 3.求微分方程组 00y xdtdyy xdtdx 在初始条件 0|,1|0 0 t ty x 下的特解,并画出解函数()y f x 的图形 4.分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为 0,2 t 利用画图来比较两种求解器之间的差异 5.用 Euler 折线法求解微分方程初
21、值问题 1)0(,1232yyxy y 的数值解(步长 h取 0.1),求解范围为区间 0,2 6.用四阶 Runge-Kutta 法求解微分方程初值问题 1)0(,cos yx e y yx 的数值解(步长 h取 0.1),求解范围为区间 0,3 四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简
22、规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 1,2,1,0),()2,2()2,2(),()2 2(6,),(3 42 31 214 3 2 1 110 0 n khL y h x f LLhyhx f LLhyhx f Ly x f LL L L Lhy yh x xx y yk kk kk kk kk kk k 相应的 Matlab 程序参见附录 2试用该方法求解第 5 题中的初值问题 7.用 ode45 方法求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较两者间的差异 五
23、、附录 附录 1:(fulu1.m)clear f=sym(y+2*x/y2);a=0;b=2;h=0.4;n=(b-a)/h+1;x=0;y=1;szj=x,y;for i=1:n-1 y=y+h*subs(f,x,y,x,y);x=x+h;szj=szj;x,y;end szj plot(szj(:,1),szj(:,2)附录 2:(fulu2.m)clear f=sym(y-exp(x)*cos(x);a=0;分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及
24、简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这精品好文档,推荐学习交流 仅供学习与交流,如有侵权请联系网站删除 谢谢 b=3;h=0.1;n=(b-a)/h+1;x=0;y=1;szj=x,y;for i=1:n-1 l1=subs(f,x,y,x,y);l2=subs(f,x,y,x+h/2,y+l1*h/2);l3=subs(f,x,y,x+h/2,y+l2*h/2);l4=subs(f,x,y,x+h,y+l3*h);y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=szj;x,y;end szj plot(szj(:,1),szj(:,2)分有限的特别是高阶方程和偏微分方程组这就要求我们必须研究微分方程组的解法既要研究微分方程组的解析解法精 的介绍本实验将主要研究微分方程组的数值解法近似解重点介绍折线法二相关函数命及简介求微分方程的解析解为方 化简规则进行化简例如由于提供了多种化简规则命就是对表达式用各种规则进行化简然后用返回最简形式返回形成这