(完整版)实验七用matlab求解常微分方程
matlab-常微分方程
Events
含义 为‘on’时,控制解向量 有效值: 范数的相对误差,使每 on、off 步计算中,满足: 缺省值: norm(e)<=max(RelTol*n off orm(y),AbsTol) 有效值: 为‘on’时,返回相应的 on、off 事件记录
取值
参数设置
属性名 含义 若无输出参量,则solver 将执行下面操作之一: 有效值: 画出解向量中各元素随 odeplot、 时间的变化; odephas2、画出解向量中前两个分 odephas3、量构成的相平面图; odeprint 画出解向量中前三个分 缺省值: 量构成的三维相空间图 odeplot ; 随计算过程,显示解向 量 取值
使用于精度较低 的情形
OD 求解器 E类 Solver 型 非 ode113 刚 性 适 度 ode23t 刚 性 刚 ode15s 性
特点
说明
多步法;Adams算 计算时间比ode45 法;高低精度均可 短 -3~10-6 到10 采用梯形算法 适度刚性情形
多步法;Gear’s反 若ode45失效时, 向数值微分;精度 可尝试使用 中等
• (6)若没有给定输出参量,则在命令窗口显 示解列表。若该命令找不到解析解,则返 回一警告信息,同时返回一空的sym对象。 这时,用户可以用命令ode23或ode45求解 方程组的数值解。
y ′′ = −a y ′ y ( 0) = 1 y ′(π / a ) = 0
2
例1
例2
• >> [u,v] = dsolve('Du=v,Dv=u') u= C1*exp(-t)+C2*exp(t) V= -C1*exp(-t)+C2*exp(t)
常微分方程(ODEs)的MATLAB数值解法
1.ODE 解算器简介 ..............................................................................................................................................................3 2.微分方程转换 ...................................................................................................................................................................5 3.刚性/非刚性问题 ..............................................................................................................................................................8 4.隐式微分方程(IDE) ........................................................................................................................................................10 5.微分代数方程(DAE)....................................................................................................................................................... 15 6.延迟微分方程(DDE)....................................................................................................................................................... 18 7.边值问题(BVP) ...............................................................................................................................................................20
matlab常微分方程的数值解法实验报告
实验四常微分方程的数值解法 指令:[t,y]=ode23(‘fun ’,tspan,yo) 2/3阶龙格库塔方法 [t,y]=ode45(‘fun ’,tspan,yo) 4/5阶龙格库塔方法 [t,y]=ode113(‘fun ’,tspan,yo) 高阶微分方程数值方法其中fun 是定义函数的文件名。
该函数fun 必须以为dx 输出量,以t,y 为输入量。
tspan=[t0 tfina]表示积分的起始值和终止值。
yo 是初始状态列向量。
考虑到初始条件有00d , (0)0,d d , (0)0.d SSI S S tI SI I I I tββμ⎧=-=>⎪⎪⎨⎪=-=≥⎪⎩ (5.24) 这就是Kermack 与McKendrick 的SIR 仓室模型. 方程(5.24)无法求出()S t 和()I t 的解析解.我们先做数值计算。
Matlab 代码为:function dy=rigid(t,y) dy=zeros(2,1); a=1; b=0.3;dy(1)=a*y(1).*y(2)-b*y(1); dy(2)=-a*y(1).*y(2);ts=0:.5:50; x0=[0.02,0.98];[T,Y]=ode45('rigid',ts,x0); %plot(T,Y(:,1),'-',T,Y(:,2),'*') plot(Y(:,2),Y(:,1),'b--') xlabel('s') ylabel('i')任务:1 画出i (t ),2分析各参数的影响例57:求解两点边值问题:0)5(,0)1(,32==='-''y y x y y x 。
(注意:相应的数值解法比较复杂)。
y=dsolve('x*D2y-3*Dy=x^2','y(1)=0,y(5)=0','x') ↙ y =-1/3*x^3+125/468+31/468*x^4例:用数值积分的方法求解下列微分方程 π21''2t y y -=+设初始时间t0=0;终止时间tf=3*pi ;初始条件0|',0|00====x x y y 。
MATLAB常微分方程的数值解法
MATLAB常微分⽅程的数值解法MATLAB常微分⽅程的数值解法⼀、实验⽬的科学技术中常常要求解常微分⽅程的定解问题,所谓数值解法就是求未知函数在⼀系列离散点处的近似值。
⼆、实验原理三、实验程序1. 尤拉公式程序四、实验内容选⼀可求解的常微分⽅程的定解问题,分别⽤以上1, 4两种⽅法求出未知函数在节点处的近似值,并对所求结果与分析解的(数值或图形)结果进⾏⽐较。
五、解答1. 程序求解初值问题取n=10源程序:euler23.m:function [A1,A2,B1,B2,C1,C2]=euler23(a,b,n,y0)%欧拉法解⼀阶常微分⽅程%初始条件y0h = (b-a)/n; %步长h%区域的左边界a%区域的右边界bx = a:h:b;m=length(x);%前向欧拉法y = y0;for i=2:my(i)=y(i-1)+h*oula(x(i-1),y(i-1));A1(i)=x(i);A2(i)=y(i);endplot(x,y,'r-');hold on;%改进欧拉法y = y0;for i=2:my(i)=y(i-1)+h/2*( oula(x(i-1),y(i-1))+oula(x(i),y(i-1))+h*(oula(x(i-1),x(i-1))));B1(i)=x(i);B2(i)=y(i);endplot(x,y,'m-');hold on;%欧拉两步公式y=y0;y(2)=y(1)+h*oula(x(1),y(1));for i=2:m-1y(i+1)=y(i-1)+2*h*oula(x(i),y(i));C1(i)=x(i);C2(i)=y(i);endplot(x,y,'b-');hold on;%精确解⽤作图xx = x;f = dsolve('Dy=-3*y+8*x-7','y(0)=1','x');%求出解析解y = subs(f,xx); %将xx代⼊解析解,得到解析解对应的数值plot(xx,y,'k--');legend('前向欧拉法','改进欧拉法','欧拉两步法','解析解');oula.m:function f=oula(x,y)f=-3*y+8*x-7;2. 运算结果A1,A2为前向欧拉法在节点处的近似值,B1,B2为改进的欧拉法在节点处的近似值,C1,C2为欧拉公式法在节点处的近似值。
常微分方程matlab程序
常微分方程MATLAB程序以下是一个简单的MATLAB 程序,用于求解一阶常微分方程:matlab复制代码% 定义微分方程 dy/dx = f(x, y)f = @(x, y) -x*y;% 初始条件 y(0) = 1y0 = 1;% 定义 x 的范围xspan = [0, 10];% 使用 MATLAB 内置函数 ode45 进行求解[t, y] = ode45(f, xspan, y0);% 绘制解的图形plot(t, y(:,1));xlabel('x');ylabel('y');title('Solution of the differential equation dy/dx = -xy');在这个程序中,我们定义了一个一阶常微分方程dy/dx = -xy,并使用MATLAB 内置函数ode45进行求解。
初始条件为y(0) = 1,求解范围为xspan = [0, 10]。
最后,我们使用plot函数绘制了解的图形。
这个程序是用来求解一阶常微分方程的,而这个方程是dy/dx = -xy。
这是一个简单的线性方程,但它的解在物理和工程中有许多实际应用。
接下来,我们逐行解释一下代码:1.% 定义微分方程 dy/dx = f(x, y):这是一个注释,说明下面的代码是定义微分方程。
2. f = @(x, y) -x*y;:这行定义了一个匿名函数f,它接受两个参数x和y,并返回-x*y。
这个函数就是我们的微分方程dy/dx的右边部分。
3.% 初始条件 y(0) = 1:这是一个注释,说明下面的代码是定义初始条件。
4.y0 = 1;:这行定义了初始条件y(0) = 1,也就是说当x=0时,y=1。
5.% 定义 x 的范围:这是一个注释,说明下面的代码是定义自变量x的范围。
6.xspan = [0, 10];:这行定义了自变量x的范围从0到10。
7.% 使用 MATLAB 内置函数 ode45 进行求解:这是一个注释,说明下面的代码将使用MATLAB 的内置函数ode45来求解微分方程。
matlab求解常微分方程
matlab求解常微分⽅程本⽂主要介绍matlab中求解常微分⽅程(组)的dsolve和ode系列函数,并通过例⼦加深读者的理解。
⼀、符号介绍D: 微分符号;D2表⽰⼆阶微分,D3表⽰三阶微分,以此类推。
⼆、函数功能介绍及例程1、dsolve 函数dsolve函数⽤于求常微分⽅程组的精确解,也称为常微分⽅程的符号解。
如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。
1)函数格式Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)其中,‘eq1,eq2,…’:表⽰微分⽅程或微分⽅程组;’cond1,cond2,…’:表⽰初始条件或边界条件;‘Name’:表⽰变量。
没有指定变量时,matlab默认的变量为t;2)例程例1.1(dsolve 求解微分⽅程)求解微分⽅程:dsolve('Dy=3*x^2','x')例1.2(加上初始条件)求解微分⽅程:例2(dsolve 求解微分⽅程组)求解微分⽅程组:由于x,y均为t的导数,所以不需要在末尾添加’t’。
2、ode函数在上⽂中我们介绍了dsolve函数。
但有⼤量的常微分⽅程,虽然从理论上讲,其解是存在的,但我们却⽆法求出其解析解,此时,我们需要寻求⽅程的数值解。
ode是Matlab专门⽤于解微分⽅程的功能函数。
该求解器有变步长(variable-step)和定步长(fixed-step)两种类型。
不同类型有着不同的求解器,具体说明如下图。
其中,ode45求解器属于变步长的⼀种,采⽤Runge-Kutta算法;其他采⽤相同算法的变步长求解器还有ode23。
ode45表⽰采⽤四阶-五阶Runge-Kutta算法,它⽤4阶⽅法提供候选解,5阶⽅法控制误差,是⼀种⾃适应步长(变步长)的常微分⽅程数值解法,其整体截断误差为(Δx)^5。
解决的是Nonstiff(⾮刚性)常微分⽅程。
matlab求解常微分方程.docx
用matlab求解常微分方程在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:r 二dsolve('eql,eq2,・••字condl,cond2,・.・;V)匕ql,eq2,・・・*为微分方程或微分方程组,,condl,cond2,.・・;是初始条件或边界条件,P是独立变量,默认的独立变量是讥函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。
dy _1例1:求解常微分方程莎一石的MATLAB程序为:dsolve(* Dy=l/(x+y) 1r!x1),注意,系统缺省的自变量为t,因此这里要把自变量写明。
其中:Y=lambertw(X)表示函数关系Y*exp(Y)二X。
例2:求解常微分方程E'-y— 0的MATLAB程序为:Y2=dsolve(1y*D2y-Dy A2=01, 1x f)Y2=dsolve(!D2y*y-Dy A2=0 J )我们看到有两个解,其中一个是常数0。
dx 心 ? —+ 5x + y = e dt空_兀_3『= g2f 例3:求常微分方程组〔力 ' 通解的MATLAB 程序为: [X,Y]=dsolve(f Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t) 1, 111) [X,Y]=dsolve(1Dx+2 *x-Dy=l0 * cos(t),Dx+Dy+2 *y=4 *exp(-2*t) T ,f x(0)=2,y(0)=0f ,f t T) 以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。
但是,我们知 道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析 解,此吋,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB 具有丰 富的函数,我们将其统称为solver,其一般格式为:i°cosr, 7=2 例4:求常微分方程组 y = 0 z 通解的MATLAB 程序为:[T,Y]=solver(odefun,tspan,yO)该函数表示在区间tspan=[tO,tf]±,用初始条件yO求解显式常微分方程卩=",刃。
实验报告七常微分方程初值问题的数值解法
浙江大学城市学院实验报告课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师签名日期2015/12/16 一.实验目的和要求1. 用Matlab 软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2. 通过实例学习用微分方程模型解决简化的实际问题;二.实验内容和原理编程题2-1要求写出Matlab 源程序m 文件,并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上; 2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 2-2 分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度; 2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法; 3龙格-库塔方法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较; MATLAB 相关函数求微分方程的解析解及其数值的代入dsolve‘egn1’,‘egn2’,‘x ’ subsexpr,{x,y,…},{x1,y1,…}其中‘egn i ’表示第i 个方程,‘x ’表示微分方程中的自变量,默认时自变量为t ; subs 命令中的expr 、x 、y 为符合型表达式,x 、y 分别用数值x1、x2代入; >>symsxyz>>subs'x+y+z',{x,y,z},{1,2,3} ans= 6>>symsx>>subs'x^2',x,2 ans= 4>>s=dsolve‘12Dy y ∧=+’,‘(0)1y =’,‘x ’ ans= >>symsx >>subss,x,2 ans=右端函数(,)f x y 的自动生成f=inline ‘expr ’,’var1’,‘var2’,……其中’expr ’表示函数的表达式,’var1’,‘var2’表示函数表达式中的变量,运行该函数,生成一个新的函数表达式为fvar1,var2,……; >>f=inline'x+3y','x','y' f=Inlinefunction: fx,y=x+3y >>f2,3 ans= 114,5阶龙格-库塔方法求解微分方程数值解t,x=ode45f,ts,x0,options其中f 是由待解方程写成的m 文件名;x0为函数的初值;t,x 分别为输出的自变量和函数值列向量,t的步长是程序根据误差限自动选定的;若ts=t0,t1,t2,…,tf,则输出在自变量指定值,等步长时用ts=t0:k:tf,输出在等分点;options 用于设定误差限可以缺省,缺省时设定为相对误差310-,绝对误差610-,程序为:options=odeset ‘reltol ’,rt,’abstol ’,at,这里rt,at 分别为设定的相对误差和绝对误差;常用选项见下表;选项名 功能 可选值 省缺值 AbsTol 设定绝对误差正数 RelTol 设定相对误差 正数InitialStep 设定初始步长 正数 自动 MaxStep设定步长上界正数MaxOrder 设定ode15s 的最高阶数 1,2,3,4,5 5 Stats 显示计算成本统计 on,off off BDF 设定ode15s 是否用反向差分on,offoff例:在命令窗口执行>>odefun =inline ‘2*y t y -’,‘t ’,‘y ’;>>[],45(,[0,4],1)t y ode odefun =;ans=>>t y ‘o-’,%解函数图形表示>>45(,[0,4],1)ode odefun %不用输出变量,则直接输出图形 >>[],45(,0:4,1)t y ode odefun =;[],t yans=三.操作方法与实验步骤包括实验数据记录和处理2-1编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1Euler 法y=eulera,b,n,y0,f,f1,b1 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; yi+1=yi+hfxi,yi; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; for i=1:100y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解'改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 %求微分方程的数值解 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; T1=fxi,yi; T2=fxi+1,yi+hT1; yi+1=yi+h/2T1+T2; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; fori=1:100 y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解' 2-2分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度;1向前欧拉法>>euler0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8(2)改进欧拉法>>eulerpro0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8改进欧拉法的精度比向前欧拉法更高; 2-3分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法;2-4分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较;1>>euler0,50,50,,inline'','t','p','Dp=','p0= 1' ans= 精确解为 s=1-99/100expx/500 ans=Columns1through82>>dsolve'Dp=','p0=','t' ans=1-99/100expt/500 >>1-99/100exp ans=与欧拉法求得的精确值差0,0001四.实验结果与分析。
用MATLAB求解微分方程
1. 微分方程的解析解
求微分方程(组)的解析解命令:
dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’)
结 果:u = tan(t-c)
解 输入命令:dsolve('Du=1+u^2','t')
STEP2
STEP1
解 输入命令: y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
导弹追踪问题
设位于坐标原点的甲舰向位于x轴上点A(1, 0)处的乙舰发射导弹,导弹头始终对准乙舰.如果乙舰以最大的速度v0(是常数)沿平行于y轴的直线行驶,导弹的速度是5v0,求导弹运行的曲线方程.又乙舰行驶多远时,导弹将它击中? 解法一(解析法)
由(1),(2)消去t整理得模型:
解法二(数值解)
结 果 为:x = (c1-c2+c3+c2e -3t-c3e-3t)e2t y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t
2、取t0=0,tf=12,输入命令: [T,Y]=ode45('rigid',[0 12],[0 1 1]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+')
3、结果如图
图中,y1的图形为实线,y2的图形为“*”线,y3的图形为“+”线.
用MATLAB计算常微分方程
dsolve('Dy=f(x,y)','y(0) =a','x')
dsolve('D2y=f(x,y,Dy)',' y(0)=a','Dy(0)=b','x')
二、例题解析
例5、求以下微分方程和微分方程组: (1)求 y x 的通解; (2)求 y y 1 的通解; (3)求 y y 1 满足初始条件y(0)=1,Dy(0)=0
的特解。
解 输入及结果如下:
(1) >>syms x y >>y=dsolve('Dy=x','x') y =1/2*x^2+C1 (2) >>dsolve (‘D2y= Dy+1’,’x’) ans =-x+C1+C2*exp(x) (3) >>dsolve('D2y= Dy+1','y(0)=1','Dy(0)=0','x') ans =-x+exp(x)
输 入 格 式 dsolve('Dy=f(x,y)','x') 含 义
求一阶微分方程 y ' f ( x, y ) 的通解 求一阶微分方程 y' f ( x, y), y(0) a 的特解 求二阶微分方程 y ' ' f ( x, y, y ' ), y (0) a, y ' (0) b 的特解
dy y y tan 的通解 例2 求微分方程 dx x x 解:>> y=dsolve(‘Dy=y/x+tan(y/x)’,’x’) y= asin(x*C1)*x dy 2 xy 2 的通解和当 y (0) 3 的特解 例3 求 dx 解:>> y=dsolve(‘Dy=2*x*y^2’,’x’) y= -1/(x^2-C1)
matlab实验七__常微分方程
黄志党 李登学 牛建毕 封志平
职责:负责水灾事故应急演练活动全过程的组织领导,审批决定 演练的重大事项。
4.2 策划部 ①总策划:彭家福 职责:负责演练准备、演练实施、演练总结的组织实施。
2
②文案组
组长:孔家稳
③协调组
2013 年 3 月 10 日 9:00,演练总指挥宣布应急演练开始。 5.2 演练情景 1 报警、现场处置小组成立及现场处置 地点:110401 运输巷工作面 总指挥宣布演练开始后,调度室用电话通知 110401 运输巷工作 面评估组人员,评估人员通知当班第一责任者演练开始。 5.2.1 水灾事故发生 撤人 9:05 分,当班第一责任者在掌子头后 130m 处发现巷道顶板地 鼓,随后发生巷道顶板突水,当班第一责任者喊“顶板出水了,人员 赶快撤离”,并且立即通知班长,班长带领全部人员撤离到运输石门 盘口,当班第一责任者最后撤离,由当班第一责任者在运输石门盘口 清点人数。 5.2.2 报警 当班第一责任者清点人数后,当班第一责任者立即向调度室汇报 模拟水灾的具体情况。 汇报内容为:顶板突水位置、顶板突水大致水量、顶板突水人员 撤出情况、支援需要以及现场处置方法。 5.2.3 现场处置小组成立 当班第一责任者报警后,立即着手成立水灾事故现场处置小组
ml '' mg sin,(0) 0, '(0) 0
问该微分方程是线性还是非线性的?是否存在解析解?如果不 存在解析解,能否求出其近似解?
θ
【实验准备】 1.微分方程的概念 2.常微分方程的解析解 3.微分方程的数值解法 4.解微分方程的 MATLAB 命令 MATLAB 中主要用 dsolve 求符号解析解,ode45,ode23,ode15s 求
(完整版)实验七用matlab求解常微分方程
实验七 用matlab 求解常微分方程一、实验目的:1、熟悉常微分方程的求解方法,了解状态方程的概念;2、能熟练使用dsolve 函数求常微分方程(组)的解析解;3、能熟练应用ode45\ode15s 函数分别求常微分方程的非刚性、刚性的数值解;4、掌握绘制相图的方法 二、预备知识: 1.微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
常微分方程的一般形式为0),,",',,()(=n y y y y t F如果未知函数是多元函数,成为偏微分方程。
联系一些未知函数的一组微分方程组称为微分方程组。
微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。
若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为)()(')()(1)1(1)(t b y t a y t a y t a y n n n n =++++--若上式中的系数ni t a i ,,2,1),( =均与t 无关,称之为常系数。
2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dt dy可化为dt y dy=+1,两边积分可得通解为1-=tce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解.线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。
高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。
一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n nn y y y t f y yy y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。
matlab-常微分方程数值解法
y(xn1) y(xn)
xn1 xn
f (x, y)dx
y(xn)h f xn1, yxn1
向后的欧拉方法递推公式为
yn y(xn)
yn 1ynhf(xn 1,yn 1)
matlab-常微分方程数值解法
向后的欧拉方法(隐式方法):预报---校正法 1. 用欧拉方法预报 2. 用向后的欧拉方法校正
f=feval(fun,x(k),y(k,:));%计算f(x,y)在每个迭代点的值 f=f(:)'; y(k + 1,:) =y(k,:) +h*f; %对于所取的点x迭代计算y值 end outy=y; outx=x; %plot(x,y)%画出方程解的函数图
matlab-常微分方程数值解法
例题: y ' sin x y y(x0) 1, x0 0
ode23 非刚性 单步法;2,3 阶 R-K 方法; 使用于精度较低的情形
累计截断误差为 (△x)3
ode113 非刚性 多步法;Adams算法;高低精 计算时间比 ode45 短
度均可到 10-3~10-6
ode23t 适度刚性 采用梯形算法
适度刚性情形
ode15s
刚性 多步法;Gear’s 反向数值微分;若 ode45 失效时,可
y1 y(x1)
y2y1f(y1,x1)h
matlab-常微分方程数值解法
按照相似的方法,从(xn,yn)Qy
作曲线y(x)在(xn,y(xn))的切
Q1
线的平行线,得直线方程:
Qy(tt))
y ynf(yn,x n)x xn
与x=xn+1交点纵坐标为:
t0x1 xt21 x3t2x4 tx35 xt64 x7t5 t6 t
matlab 求解常微分方程组
一、概述随着科技的发展,数学在各个领域中都扮演着非常重要的角色。
微分方程作为数学中的一个重要分支,在物理、工程、生物等领域都有着广泛的应用。
而 MATLAB 作为一个强大的数学软件工具,可以帮助我们快速高效地求解各种类型的微分方程组,从而为各领域的研究和应用提供有力的支持。
本文将详细介绍如何使用 MATLAB 求解常微分方程组的方法及步骤。
二、常微分方程组的定义常微分方程组是指这样一类微分方程组:一个或多个未知函数及其导数的方程组。
一般形式为:dx1/dt=f1(t,x1,x2,...,xn),dx2/dt=f2(t,x1,x2,...,xn),..., dxn/dt=fn(t,x1,x2,...,xn)。
其中x1,x2,...,xn 是未知函数,t是自变量,f1,f2,...,fn 是关于 t 和x1,x2,...,xn 的已知函数。
三、求解常微分方程组的方法MATLAB 提供了多种方法来求解常微分方程组,常用的方法有:欧拉法、四阶龙格库塔法、常微分方程组函数 ode45、ode23、ode113 等。
下面将分别介绍各种方法的具体步骤。
四、使用欧拉法求解常微分方程组欧拉法是一种简单粗糙的数值解法,通过分割等间距的步长满足微分方程初值问题。
其具体步骤如下:1. 定义微分方程组的初始条件和步长:x0=[x1(0),x2(0),...,xn(0)],h=步长。
2. 使用欧拉法逐步逼近微分方程组的解:for i=1:Nt(i)=t(i-1)+h;x(:,i+1)=x(:,i)+h*f(t(i),x(:,i));end其中 x(:,i)=[x1(i),x2(i),...,xn(i)] 为微分方程组在第 i 个时间节点的解。
五、使用四阶龙格库塔法求解常微分方程组四阶龙格库塔法是一种常用的数值解法,通过多次近似来计算微分方程组的数值解。
其具体步骤如下:1. 定义微分方程组的初始条件和步长:x0=[x1(0),x2(0),...,xn(0)],h=步长。
常微分方程数值求解 MATLAB 求解
dsolve 举例
例:[x,y]=dsolve('Dx+5*x=0', 'Dy-3*y=0', ...
'x(0)=1', 'y(0)=1', 't') sol = dsolve('Dx+5*x=0', 'Dy-3*y=0', ...
'x(0)=1', 'y(0)=1', 't') 这里返回的 sol 是一个 结构类型 的数据 sol.x % 查看解函数 x(t) sol.y % 查看解函数 y(t)
常微分方程数值求解
—— MATLAB 求解
Matlab 解初值问题函数
用 Maltab自带函数 解初值问题
求解析解:dsolve
求数值解:
ode45、ode23、 ode113、ode23t、ode15s、 ode23s、ode23tb
2
符号求解
符号求解
dsolve
3
dsolve 求解析解
如果省略自变量,则默认自变量为 t
dsolve('Dy=2*x','x'); % dy/dx = 2x
dsolve('Dy=2*x');
% dy/dt = 2x
若找不到解析解,则提出警告,并返回空解。
5
dsolve 的使用
使用符号方程
导数:diff,如 diff(y),diff(y,2) 等号:== 必须声明应变量与自变量!
求解析解:dsolve
y=dsolve('eq1','eq2', ... ,'cond1','cond2', ... ,'v')
Matlab常微分方程的求解实验报告
《数学实验》报告实验名称Mat lab常微分方程的求解学院计算机与通信工程学院专业班级计1103姓名------------- 学号-----------月6年2013.一、【实验目的】通过练习,熟悉Mat丄ab的求解常微分方程,函数文件的创建等。
了解Mat lab的命令窗口及其基本操作和常用命令。
通过练习,熟悉Mat lab的•些基本操作,掌握符号解法和数值解法,以及其中常用的方法。
二、【实验任务】1 > 求解微分力程y* =xsin (x) /cos (y)<»2、用数值方法求解下列微分方程,用不同颜色和线形将y和y,画在同•个图形窗口里:y f »+ty f-y=l-2t,初始时间:t=0;终止时间:t=n •初始条件:y |=0.1, y1|=0.2o €=oft=oo三、【实验程序】题一:y= dsolve('Dy=x*sin(x)/cos (y) ', 'x1)题二令:a=y, b二y,二a,, b'二y,,贝9 :a' =0*a+l*b+0;b,=l*a-t*b+(l-2*t);[a ;b,] = [0 1;1 —t][a;b] + [0;l](l-2*t);故化为一阶微分方程有:x =[0 1;1 -t]x+[0;l]u;其中:x'二[a' ;b'],u二(l~2*t) o初始条件:当t=0时,a=0. 1; b=0. 2oxd = mainfun( )function %UNTITLED Summary of this function goes here %ailed explanation goes here u=l-2 ・傑匸;xa=[0 1;1 -t][0;1]*u;endelf; tO=O; tf=pi;初始条fT%xOt=[0.1;0.2]; ,[t0r tf]/xOt) 'mainfun*[t,x]=ode23( y=x(:,1);Dy=x (:,2); ) ' 'r t, Dy, plot (t z y, ) 1 1Y 轴,匸轴,),ylabel (xlabel () 一阶导数'Dy''原始函数y \ legend (四、【实验结果】y =asin(C3 + sin(x) - x*cos(x))»funt =0.01450.08730.20140.32590.46210.61210.77780.96211.14821.27671.40531.51881.67061.86012.08912.35692.65462.96873.14160.1000 0.20000.1030 0.21580.1214 0.28830.159S 037980.2116 0.44790.2756 0.48470.3485 0.48130.4245 0.42820.4939 0.31680.5388 0.15990.5513 0.03200.5466 -0.10690.5272 -0.23580.4780 -0.41270.3788 -0.63470.2037 -0.8952-0.0742 ・ 1.1797-0.4677 -1.4646-0.9691 -1.7290-1.2793 -1.8586五、【实验总结】4通过本次实验,熟悉了M&t丄&b的一些基本操作,通过练习,会求解常微分方程,并熟练掌握符号解法和数值解法,以及其中常用的方法,包括欧拉方法、梯形公式、龙格库塔方法等。
用Matlab软件求常微分方程的解或通解
《高等数学》实验报告实验人员:系(班): 学号: 姓名: 实验地点:电教楼五号机房实验名称:Matlab 高等数学实验实验时间:2014-6-3 16:30--18:30实验名称:用Matlab 软件求常微分方程的解(或通解)实验目的:熟练掌握Matlab 软件求常微分方程的解(或通解)实验内容:(给出实验程序与运行结果)1、求微分方程的特解. 1、⎪⎩⎪⎨⎧===+-10)0(,6)0(034'22y y y dx dy dx y d 程序:>> dsolve('D2y-4*Dy+3*y','y(0)=6,Dy(0)=10','x')ans = 4*exp(x)+2*exp(3*x)吕梁学院《高等数学》实验报告2、⎪⎩⎪⎨⎧===++0)0(,2)0(044'22y y y dx dy dx y d 程序:>>dsolve('4*D2y+4*Dy+y','y(0)=2,Dy(0)=0','x') ans =2*exp(-1/2*x)+exp(-1/2*x)*x 3、⎪⎩⎪⎨⎧===++15)0(',0)0(029422y y y dx dy dx y d 程序:>>dsolve('D2y+4*Dy+29*y=0','y(0)=9,Dy(0)=15','x') ans = 33/5*exp(-2*x)*sin(5*x)+9*exp(-2*x)*cos(5*x)4、⎪⎩⎪⎨⎧===+-3)0(',0)0(013422y y y dx dy dx y d 程序:>>dsolve('D2y-4*dy+13*y=0','y(0)=0','Dy(0)=3','x') ans = 3/13*sin(13^(1/2)*x)*13^(1/2)-4/13*cos(13^(1/2)*x)*dy+4/13*dy 5、⎪⎩⎪⎨⎧-===--5)0(',0)0(04322y y y dx dy dx y d 程序:>>dsolve('D2y-3*Dy-4*y','y(0)=0,Dy(0)=-5','x') ans = exp(-x)-exp(4*x)二、求齐次非线性微分方程的通解1、133222+=--x y dx dy dx y d 程序:>>dsolve('D2y-2*Dy-3*y=3*x+1','x') ans = exp(-x)*C2+exp(3*x)*C1+1/3-x2、x xe y dx dy dx y d 22265=+- 程序:>>dsolve('D2y-5*Dy+6*y=x*exp(2*x)','x') ans = exp(3*x)*C2+exp(2*x)*C1-1/2*x*exp(2*x)*(2+x)3、x x y dx y d cos 422=+ 程序:>>dsolve('D2y+4*y=x*cos(x)','x') ans = sin(2*x)*C2+cos(2*x)*C1+2/9*sin(x)+1/3*x*cos(x)4、x e y dx y d x cos 22+=+ 程序:>>dsolve('D2y+y=exp(x)','x') ans = sin(x)*C2+cos(x)*C1+1/2*exp(x)>>dsolve('D2y+y=cos(x)','x') ans = sin(x)*C2+cos(x)*C1+1/2*cos(x)+1/2*sin(x)*x 则原式=sin(x)*C2+cos(x)*C1+1/2*exp(x)+sin(x)*C2+cos(x)*C1+1/2*cos(x)+1/2*sin(x)*x 5、x y dx dy dx y d 2sin 5222=+- 程序:>>dsolve('D2y-2*Dy+5*y=sin(2*x)','x') ans =exp(x)*sin(2*x)*C2+exp(x)*cos(2*x)*C1+1/17*sin(2*x)+4/17*cos(2*x)3、微分方程实例1、试求的经过点M (0,1)且在此点与直线相切的积分曲线。
Matlab求解常微分问题
Matlab求解常微分问题实验⽬的 熟悉掌握微分⽅程的求解;会运⽤Matlab软件求微分⽅程的数值解;会运⽤Matlab软件做简单的编程。
实验要求 实验步骤要有模型建⽴,模型求解、结果分析。
实验内容(⼀)微分⽅程精确解1. 求解微分⽅程y'=x+x3 ,并作出其积分曲线.2. 求解微分⽅程y'-(2y/x+1)=(x+1)(5/2),并作出其积分曲线。
(⼆)微分⽅程的数值解 在区间[1,4]上求出微分⽅程xy'-x2ysinx+1=0,y|x=1=1,的数值解,并作出数值解的图形。
实验步骤(⼀)已知题⽬要求为解出微分⽅程的精确解,本报告使⽤MATLAB的dsolve()函数求其解析解,dsolve(‘⽅程1’,‘⽅程2’,…,‘⽅程n’,…,’初始条件’,’⾃变量’)。
解:(1)本⽂使⽤MATLAB求解,在做其积分曲线时,取x从0到1的区间,常数项从-10到10,代码1 %题12 y=dsolve('Dy=x+x^3','x');3 figure(1);hold on4for C11=-10:1:105 x=(0:.1:1);6 plot(x,C11+(x.^2.*(x.^2 + 2))./4,'LineWidth',2)7 end题1_MATLAB 步骤: 1、求出微分⽅程的通解 >> y=dsolve('Dy=x+x^3','x') y = C11 + (x^2*(x^2 + 2))/4 2、作图,运⾏上述代码 因此解得y=x2(x2+2)/4+c11,积分曲线如上⽰。
当然使⽤Mathematica求解如下1 DSolve[y'[x] == x + x^3, y[x], x]2 t = Table[c + (1/2)*x^2 + (1/4)*x^4, {c, -3, 3}];3 Plot[Evaluate[t], {x, -1.5, 1.5}]题1Mathematica 运⾏⽰例 {{y[x] -> x^2/2 + x^4/4 + C[1]}} (2)步骤同上,代码1 y=dsolve('Dy-(2*y)/(x+1)=(x+1)^(5/2)','x');2 figure(1);hold on3for C13=-10:1:104 x=(0:.1:1);5 plot(x,(2.*(x + 1).^(7/2))/3 + C13.*(x + 1).^2,'LineWidth',2);6 end题2_MATLAB 运⾏⽰例 >> y=dsolve('Dy-(2*y)/(x+1)=(x+1)^(5/2)','x') y = (2*(x + 1)^(7/2))/3 + C13*(x + 1)^2 曲线积分 解得,,图上⽰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七 用matlab 求解常微分方程一、实验目的:1、熟悉常微分方程的求解方法,了解状态方程的概念;2、能熟练使用dsolve 函数求常微分方程(组)的解析解;3、能熟练应用ode45\ode15s 函数分别求常微分方程的非刚性、刚性的数值解;4、掌握绘制相图的方法 二、预备知识: 1.微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
常微分方程的一般形式为0),,",',,()(=n y y y y t F如果未知函数是多元函数,成为偏微分方程。
联系一些未知函数的一组微分方程组称为微分方程组。
微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。
若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为)()(')()(1)1(1)(t b y t a y t a y t a y n n n n =++++--若上式中的系数ni t a i ,,2,1),( =均与t 无关,称之为常系数。
2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dt dy可化为dt y dy=+1,两边积分可得通解为1-=tce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解.线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。
高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。
一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n nn y y y t f y yy y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。
所以一阶微分方程组与高阶常微分方程的理论与方法在许多方面是相通的,一阶常系数线性微分方程组也可用特征根法求解。
3.微分方程的数值解法除常系数线性微分方程可用特征根法求解,少数特殊方程可用初等积分法求解外,大部分微分方程无限世界,应用中主要依靠数值解法。
考虑一阶常微分方程初值问题⎩⎨⎧=<<=000)()),(,()('y t y t t t t y t f t y f其中)'.,,,(,)',,,(,)',,,(020*******m m m y y y y f f f f y y y y ===所谓数值解法,就是寻求)(t y 在一系列离散节点f n t t t t ≤<<< 10上的近似值nk y k ,,1,0, =称kk k t t h -=+1为步长,通常取为常量h 。
最简单的数值解法是Euler 法。
Euler 法的思路极其简单:在节点出用差商近似代替导数h t y t y t y k k k )()()('1-≈+这样导出计算公式(称为Euler 格式),2,1,0),,(1=+=+k y t hf y y k k k k他能求解各种形式的微分方程。
Euler 法也称折线法。
Euler 方法只有一阶精度,改进方法有二阶Runge-Kutta 法、四阶Runge-Kutta 法、五阶Runge-Kutta-Felhberg 法和先行多步法等,这些方法可用于解高阶常微分方程(组)初值问题。
边值问题采用不同方法,如差分法、有限元法等。
数值算法的主要缺点是它缺乏物理理解。
4.解微分方程的MATLAB 命令MATLAB 中主要用dsolve 求符号解析解,ode45,ode23,ode15s 求数值解。
ode45类似,只是精度低一些。
ode12s 用来求解刚性方程组,是用格式同ode45。
可以用help dsolve, help ode45查阅有关这些命令的详细信息. 例1 求下列微分方程的解析解(1)b ay y +='(2)1)0(',0)0(,)2sin(''==-=y y y x y(3)1)0(',1)0(',','==-=+=gffgggff方程(1)求解的MATLAB代码为:>>clear;>>s=dsolve('Dy=a*y+b')结果为s =-b/a+exp(a*t)*C1方程(2)求解的MATLAB代码为:>>clear;>>s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x')>>simplify(s) %以最简形式显示s结果为s =(-1/6*cos(3*x)-1/2*cos(x))*sin(x)+(-1/2*sin(x)+1/6*sin(3*x))*cos(x)+5/3*sin(x) ans =-2/3*sin(x)*cos(x)+5/3*sin(x)方程(3)求解的MATLAB代码为:>>clear;>>s=dsolve('Df=f+g','Dg=g-f','f(0)=1','g(0)=1')>>simplify(s.f) %s是一个结构>>simplify(s.g)结果为ans =exp(t)*cos(t)+exp(t)*sin(t)ans =-exp(t)*sin(t)+exp(t)*cos(t)例2求解微分方程,1)0(,1'=++-=ytyy先求解析解,再求数值解,并进行比较。
由>>clear;>>s=dsolve('Dy=-y+t+1','y(0)=1','t')>>simplify(s)可得解析解为tety-+=。
下面再求其数值解,先编写M文件fun8.m%M函数fun8.mfunction f=fun8(t,y)f=-y+t+1;再用命令>>clear; close; t=0:0.1:1;>>y=t+exp(-t); plot(t,y); %化解析解的图形>>hold on; %保留已经画好的图形,如果下面再画图,两个图形和并在一起>>[t,y]=ode45('fun8',[0,1],1);>>plot(t,y,'ro'); %画数值解图形,用红色小圈画>>xlabel('t'),ylabel('y')结果见图7.1图16.6.1 解析解与数值解由图16.6.1可见,解析解和数值解吻合得很好。
例3 求方程)0(',)0(,sin "0===θθθθθmg ml的数值解.不妨取15)0(,8.9,1===θg l .则上面方程可化为0)0(',15)0(,sin 8.9"===θθθθ先看看有没有解析解.运行MATLAB 代码>>clear;>>s=dsolve('D2y=9.8*sin(y)','y(0)=15','Dy(0)=0','t') >>simplify(s)知原方程没有解析解.下面求数值解.令',21θθ==y y 可将原方程化为如下方程组⎪⎩⎪⎨⎧====0)0(,15)0()sin(8.9''211221y y y y y y建立M 文件fun9.m 如下%M 文件fun9.mfunction f=fun9(t,y)f=[y(2), 9.8*sin(y(1))]'; %f 向量必须为一列向量运行MATLAB 代码>>clear; close;>>[t,y]=ode45('fun9',[0,10],[15,0]);>>plot(t,y(:,1)); %画θ随时间变化图,y(:2)则表示'θ的值 >>xlabel('t'),ylabel('y1')结果见图7.2图7.2 数值解由图7.2可见,θ随时间t周期变化。
以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。
但是,我们知道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:[T,Y]=solver(odefun,tspan,y0)该函数表示在区间tspan=[t0,tf]上,用初始条件y0求解显式常微分方程y f t y='(,)solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。
我们列表说明如下:odefun 为显式常微分方程'(,)y f t y =中的(,)f t y tspan 为求解区间,要获得问题在其他指定点012,,,t t t 上的解,则令012[,,,,]f tspan t t t t =(要求i t 单调),y0初始条件。
例5:求解常微分方程2'222y y x x =-++,00.5x ≤≤,(0)1y =的MATLAB 程序如下:fun=inline('-2*y+2*x*x+2*x');[x,y]=ode23(fun,[0,0.5],1) 结果为: x =0,0.0400,0.0900,0.1400,0.1900,0.2400,0.2900,0.3400,0.3900,0.4400,0.4900,0.5000 y =1.0000,0.9247,0.8434,0.7754,0.7199,0.6764,0.6440,0.6222,0.6105,0.6084,0.6154,0.6179例6:求解常微分方程222(1)0,(0)1,'(0)0d y dy y y y y dt dt μ--+===的解,并画出解的图形。