数学应用软件作业6 用Matlab求解微分方程的解析解和数值解

合集下载

matlab求解微分方程组用matlab对微分方程求解实验报告

matlab求解微分方程组用matlab对微分方程求解实验报告

matlab求解微分方程组用matlab对微分方程求解实验报告导读:就爱阅读网友为您分享以下“用matlab对微分方程求解实验报告”的资讯,希望对您有所帮助,感谢您对的支持!o 《高等数学》上机作业(三)一、上机目的1、学会用Matlab 求简单微分方程的解析解。

2、学会用Matlab 求微分方程的数值解。

二、上机内容1、求简单微分方程的解析解.2、求微分方程的数值解.3、数学建模实例.4、上机作业. 三、上机作业1. 求微分方程:xy ' ? y ? ex?0在初值条件y (1 ) ? 2 e 下的特解,并画出解函数的图形. 命令>> y=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1) ','x') 运行结果:y = 1/x*exp(x)+1/x*exp(1)函数图象:2. 求微分方程的特解.?d2ydy?4?5y?0?2dx ?dx?y(0)?0,y'(1)?10?命令>> y=dsolve('D2y+4*Dy-5*y=0','y(0)=0,Dy(1)= 10','x') 运行结果:y=10/(exp(1)+5*exp(-5))*exp(x)-10/(exp(1)+5*exp(-5))*exp(-5*x)3. 鱼雷追击问题一敌舰在某海域内沿着正北方向航行时,我方战舰恰好位于敌舰的正西方向1 公里处.我舰向敌舰发射制导鱼雷,敌舰速度为0.42 公里/分,鱼雷速度为敌舰速度的2倍。

试问敌舰航行多远时将被击中?M文件x0=0; xf=0.9999999999999;[x,y]=ode15s('eq1',[x0 xf],[0 0]); plot(x,y(:,1),'b.') hold on; y=0:0.1:1;plot(1,y, '*') 运行结果图像:结论:大概在y=0.67处击中敌方舰艇!(选做)一个慢跑者在平面上沿椭圆以恒定的速率v=1跑步,设椭圆方程为: x=10+20cost, y=20+5sint. 突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹.W=20M文件代码function dy=eq3(t,y)dy=zeros(2,1);dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))+(20 +15*sin(t)-y(2)));dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))+(20+ 15*sin(t)-y(2)));运行命令t0=0;tf=10;[t,y]=ode45('eq3',[t0 tf],[0 0]);T=0:0.1:2*pi;X=10+20*cos(T);Y=20+15*sin(T);plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'r*')运行结果:利用二分法更改tf tf=5时tf=2.5时tf=3.15时:所以在t=3.15时刻恰好追上!W=5M文件代码function dy=eq4(t,y)dy=zeros(2,1);dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))+(20+15*sin(t)-y(2)));dy(2)=5*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))+(20+1 5*sin(t)-y(2)));命令:t0=0;tf=10;[t,y]=ode45('eq4',[t0 tf],[0 0]);T=0:0.1:2*pi;X=10+20*cos(T);Y=20+15*sin(T);plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'*')运行结果更改tf=20运行结果Tf=40所以永远追不上!四、上机心得体会高等数学是工科学生的主干科目,它应用于生产生活的方方面面,通过建模,计算可以求出实际问题的最优化问题!因此我们需要掌握建模和利用专业软件处理实际问题的能力!百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆。

用Matlab解微分方程

用Matlab解微分方程

用Matlab 软件求解微分方程1.解析解(1)一阶微分方程 求21y dxdy +=的通解:dsolve('Dy=1+y^2','x') 求y x dxdy -+=21的通解:dsolve('Dy=1+x^2-y','x') 求⎪⎩⎪⎨⎧=+=1)0(12y y dx dy 的特解:dsolve('Dy=1+y^2',’y(0)=1’,'x')(2)高阶微分方程 求解⎩⎨⎧-='==-+'+''.2)2(,2)2(,0)(222πππy y y n x y x y x 其中,21=n ,命令为: dsolve('x^2*D2y+x*Dy+(x^2-0.5^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') 求042=-+'-'''x y y y 的通解,命令为:dsolve('D3y-2*Dy+y-4*x=0','x')输出为:ans=8+4*x+C1*exp(x)+C2*exp(-1/2*(5^(1/2)+1)*x)+C3*exp(1/2*(5^(1/2)-1)*x)(3)一阶微分方程组求⎩⎨⎧+-='+=').(3)(4)(),(4)(3)(x g x f x g x g x f x f 的通解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','x') 输出为: f =exp(3*x)*(cos(4*x)*C1+sin(4*x)*C2)g =-exp(3*x)*(sin(4*x)*C1-cos(4*x)*C2)若再加上初始条件1)0(,0)0(==g f ,则求特解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1','x')输出为: f =exp(3*x)*sin(4*x)g =exp(3*x)*cos(4*x)2.数值解(1)一阶微分方程⎪⎩⎪⎨⎧=≤≤-=.1)0(,10,2y x y x y dxdy 现以步长h=0.1用“4阶龙格—库塔公式”求数值解: 先建立“函数M —文件”:function f=eqs1(x,y)f=y-2*x/y;再命令: 格式为:[自变量,因变量]=ode45(‘函数文件名’,节点数组,初始值) 命令为: [x,y]=ode45('eqs1',0:0.1:1,1)若还要画图,就继续命令: plot(x,y)(2)一阶微分方程组⎪⎩⎪⎨⎧==+-='≤≤-+='.3.0)0(,2.0)0(,2sin ,10,2cos 21212211y y y y x y x y y x y 只须向量化,即可用前面方法: function f=eqs2(x,y)f=[cos(x)+2*y(1)-y(2);sin(x)-y(1)+2*y(2)];将此函数文件,以文件名eqs2保存后,再下命令:[x,y]=ode45('eqs2',0:0.1:1,[0.2;0.3])(注:输出的y 是矩阵,第i 列为函数i y 的数值解)要画图,继续命令:hold on,plot(x,y(:,1)),plot(x,y(:,2)),hold off(3)高阶微分方程先化成一阶微分方程组,再用前面方法。

使用Matlab符号数学工具箱求解微分方程

使用Matlab符号数学工具箱求解微分方程

使用Matlab符号数学工具箱求解微分方程Matlab符号数学工具箱(Symbolic Math Toolbox)中函数dsolve用于计算常系数微分方程(ordinary differential equations)的符号解(Symbolic solution),此处的符号解即解析解。

注意:不是所有的微分方程都能用dsolve函数求出解析解。

1调用形式dsolve函数调用形式有如下两种:r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')2函数描述dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')用于计算常系数微分方程(或常系数微分方程组)的符号解,其中参数'eq1,eq2,...'指定微分方程(组),参数'v'指定微分方程(组)中的自变量,参数'cond1,cond2,...'指定微分方程(组)的边界条件及(或)初始条件。

不指定参数'v'时,默认的自变量为t。

输入的方程中使用大写字母D代表微分算符,如单个字母D表示ddt。

大写字母D后跟数字表示多次微分运算。

比如,D2表示22ddt。

紧跟在微分算符后的字符表示因变量。

例如,D3y表示对因变量y的三次微分,其中y是x或t的函数。

初始条件或边界条件由形如y(a) = b或Dy(a) = b的方程给出,其中,y是因变量,b是常量。

如果给出的初始条件的个数小于因变量的个数,则dsolve函数计算的符号解中包含任意常量C1, C2,....。

MATLAB求微分方程的解

MATLAB求微分方程的解

实验二微分方程求解一、问题背景与实验目的实际应用问题通过数学建模所归纳而取得的方程,绝大多数都是微分方程,真正能取得代数方程的机遇很少.另一方面,能够求解的微分方程也是十分有限的,专门是高阶方程和偏微分方程(组).这就要求咱们必需研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精准解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精准解),Matlab 有专门的函数能够用,本实验将作必然的介绍.本实验将要紧研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ一、equ 二、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推.2.simplify(s):对表达式 s 利用 maple 的化简规那么进行化简.例如:syms xsimplify(sin(x)^2 + cos(x)^2)ans=13.[r,how]=simple(s):由于 Matlab 提供了多种化简规那么,simple 命令确实是对表达式 s 用各类规那么进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规那么.例如:syms x[r,how]=simple(cos(x)^2-sin(x)^2)r = cos(2*x)how = combine4.[T,Y] = solver(odefun,tspan,y 0) 求微分方程的数值解.说明:(1) 其中的 solver 为命令 ode4五、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 之一.(2) odefun 是显式常微分方程:⎪⎩⎪⎨⎧==00)(),(y t y y t f dt dy(3) 在积分区间 tspan =],[0f t t 上,从0t 到f t ,用初始条件0y 求解.(4) 要取得问题在其他指按时刻点 ,210,,t t t 上的解,那么令 tspan =],,,[,210f t t t t (要求是单调的). (5) 因为没有一种算法能够有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver ,关于不同的ODE 问题,采纳不同的Solver .(6) 要专门的是:ode23、ode45 是极为经常使用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 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*sin(x)'), pi, 2*pi, 0, pi)三、实验内容1. 几个能够直接用 Matlab 求微分方程精准解的例子:例1:求解微分方程22x xe xy dxdy -=+,并加以验证. 求解本问题的Matlab 程序为:syms x y %line1y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2diff(y,x)+2*x*y-x*exp(-x^2) %line3simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4说明:(1) 行line1是用命令概念x,y 为符号变量.那个地址能够不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3利用所求得的解.那个地址是将解代入原微分方程,结果应该为0,但那个地址给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() 函数对上式进行化简,结果为 0, 说明)(x y y =的确是微分方程的解.例2:求微分方程0'=-+x e y xy 在初始条件e y 2)1(=下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为:syms x yy=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 e y x+=,解函数的图形如图 1:图1例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dtdy e y x dt dx t 在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 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,]);axis auto微分方程的特解(式子专门长)和解函数的图形均略.2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y x x y dx dy 的数值解,求解范围为区间[0, ].fun=inline('-2*y+2*x^2+2*x','x','y');[x,y]=ode23(fun,[0,],1);x';y';plot(x,y,'o-')>> x'ans =>> y'ans =图形结果为图 2.图2例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dt dy y dty d 分析:令,,121dt dx x y x ==则.)1(,1221221x x x dtdx x dt dx --==μ 先编写函数文件: function xprime = verderpol(t,x)global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)];再编写命令文件:global mu;mu = 7;y0=[1;0][t,x] = ode45('verderpol',[0,40],y0);x1=x(:,1);x2=x(:,2);plot(t,x1)图形结果为图3.图33. 用 Euler 折线法求解前面讲到过,能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方式.Euler 折线法求解的大体思想是将微分方程初值问题⎪⎩⎪⎨⎧==00)(),,(y x y y x f dx dy 化成一个代数方程,即差分方程,要紧步骤是用差商h x y h x y )()(-+替代微商dxdy ,于是: ⎪⎩⎪⎨⎧==-+)()),(,()()(00x y y x y x f h x y h x y k k k k 记)(,1k k k k x y y h x x =+=+,从而)(1h x y y k k +=+,那么有1,,2,1,0).,(,),(1100-=⎪⎩⎪⎨⎧+=+==++n k y x hf y y h x x x y y k k k k k k 例 6:用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=+=1)0(,22y y x y dx dy的数值解(步长h 取,求解范围为区间[0,2].解:本问题的差分方程为1,,2,1,0).2),( ),(,,4.0,1,021100-=⎪⎪⎪⎩⎪⎪⎪⎨⎧+=+=+====++n k y x y y x f y x hf y y h x x h y x k k k k k k (其中: 相应的Matlab 程序见附录 1.附录 1:clearf=sym ('y+2*x/y^2');a=0;b=2;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y});x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))数据结果为:图形结果见图4:图4专门说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精准值比较,看看哪个更“精准”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0-x-yx的通解.xy+sin2')1(2=2. 求微分方程x2''='+-的通解.ye5yy x sin3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dt dx 在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形.4. 别离用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的不同.5. 用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=-=1)0(,12'32y y x y y 的数值解(步长h 取,求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取,求解范围为区间[0,3].四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):1,,2,1,0),()2,2()2,2(),()22(6,),(342312143211100-=⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+==++n k hL y h x f L L h y h x f L L h y h x f L y x f L L L L L h y y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.附录 2:clearf=sym('y-exp(x)*cos(x)');a=0;b=3;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1l1=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];endszjplot(szj(:,1),szj(:,2))试用该方式求解第5题中的初值问题.7. 用 ode45 方式求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较二者间的不同.五、附录附录 1:clearf=sym('y+2*x/y^2');a=0;b=2;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y});x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))附录 2:clearf=sym('y-exp(x)*cos(x)');a=0;b=3;h=;n=(b-a)/h+1;x=0;y=1;szj=[x,y];for i=1:n-1l1=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];endszjplot(szj(:,1),szj(:,2))下面是个例子:% 欲解方程组:% dx/dt=y-x+x(t-1);% dy/dt=y-xy+y(t-1);x0=-1; %初试条件y0=1; %初试条件t=0:01:3;yy=zeros(size(t));xx=zeros(size(t));yy(1)=x0;yy(1)=y0;dt=t(2)-t(1);Nk=round(1/dt);for k=1:length(t)-1;if t(k)<1;k1=yy(k)-xx(k);g1=yy(k)-xx(k)*yy(k);k2=yy(k)+*g1*dt-[xx(k)+*dt*k1];g2=yy(k)+*g1*dt-[xx(k)+*dt*k1]*[yy(k)+*g1*dt];k3=yy(k)+*g2*dt-[xx(k)+*dt*k2];g3=yy(k)+*g2*dt-[xx(k)+*dt*k1]*[yy(k)+*g2*dt];k4=yy(k)+g3*dt-[xx(k)+dt*k3];g4=yy(k)+g3*dt-[xx(k)+dt*k3]*[yy(k)+g3*dt];elsek1=yy(k)-xx(k)+xx(k-Nk);g1=yy(k)-xx(k)*yy(k)+yy(k-Nk);k2=yy(k)+*g1*dt-[xx(k)+*dt*k1]+xx(k-Nk)+*dt*k1;g2=yy(k)+*g1*dt-[xx(k)+*dt*k1]*[yy(k)+*g1*dt]+yy(k-Nk)+*dt*g1;k3=yy(k)+*g2*dt-[xx(k)+*dt*k2]+xx(k-Nk)+*dt*k2;g3=yy(k)+*g2*dt-[xx(k)+*dt*k1]*[yy(k)+*g2*dt]+yy(k-Nk)+*dt*g2;k4=yy(k)+g3*dt-[xx(k)+dt*k3]+xx(k-Nk)+dt*k3;g4=yy(k)+g3*dt-[xx(k)+dt*k3]*[yy(k)+g3*dt]+yy(k-Nk)+dt*k3;endxx(k+1)=xx(k)+dt*[k1+2*k2+2*k3+k4]/6;yy(k+1)=yy(k)+dt*[g1+2*g2+2*g3+g4]/6;endsubplot(121);plot(t,xx);title('t~x(t)');subplot(122);plot(t,yy);title('t~y(t)');/ / / / 文件夹:一、% 4阶龙格库塔法求chen's吸引子% 方程表达式% dx/dt = a*(y-x)% dy/dt = (c-a)*x - x*z + c*y% dz/dt = x*y - b*zclc;close all;clear all;%参数值a = 35;b = 3;c = 28;%初始值x_0 = -1;y_0 = 0;z_0 = 1;h = ; % 积分时间步长step1 = 10000; % 前面的迭代点数step2 = 5000; % 后面的迭代点数X = [];Y = [];Z = [];for(i = 1:1:(step1 + step2))%e1x_e1 = -a*x_0 + a*y_0;y_e1 = c*y_0 + (c - a)*x_0 - x_0*z_0;z_e1 = -b*z_0 + x_0*y_0;%e2y_h = y_0 + *h*y_e1;x_e2 = -a*(x_0 + *h*x_e1) + a*y_h;x_h = x_0 + *h*x_e1;z_h = z_0 + *h*z_e1;y_e2 = c*(y_0 + *h*y_e1) + (c - a)*x_h - x_h*z_h;z_e2 = -b*(z_0 + *h*z_e1) + x_h*y_h;%e3y_h = y_0 + *h*y_e2;x_e3 = -a*(x_0 + *h*x_e2) + a*y_h;x_h = x_0 + *h*x_e2;z_h = z_0 + *h*z_e2;y_e3 = c*(y_0 + *h*y_e2) + (c - a)*x_h - x_h*z_h;z_e3 = -b*(z_0 + *h*z_e2) + x_h*y_h;%e4y_h = y_0 + h*y_e3;x_e4 = -a*(x_0 + h*x_e3) + a*y_h;x_h = x_0 + h*x_e3;z_h = z_0 + h*z_e3;y_e4 = c*(y_0 + h*y_e2) + (c - a)*x_h - x_h*z_h;z_e4 = -b*(z_0 + h*z_e2) + x_h*y_h;%叠代x_1 = x_0 + 1/6*h*(x_e1 + 2*x_e2 +2*x_e3 + x_e4);y_1 = y_0 + 1/6*h*(y_e1 + 2*y_e2 +2*y_e3 + y_e4);z_1 = z_0 + 1/6*h*(z_e1 + 2*z_e2 +2*z_e3 + z_e4);X = [X,x_1];Y = [Y,y_1];Z = [Z,z_1];x_0 = x_1;y_0 = y_1;z_0 = z_1;endX = X(step2+1:end);Y = Y(step2+1:end);Z = Z(step2+1:end);figure(1);plot3(Z(1000:end),Y(1000:end),X(1000:end));grid onxlabel('x');ylabel('y');zlabel('z');这个应该是可以借鉴的。

matlab解微分方程例题

matlab解微分方程例题

matlab解微分方程例题微分方程是指由微分类型的方程表示的描述物理现象的数学模型。

它们描述了位移、速度、加速度、温度、压强、流量等物理量的变化规律。

因此,微分方程的解是研究物理现象和过程的关键步骤。

什么是Matlab?Matlab是一款全功能的数学软件,它可以用来处理各种数学运算,特别是针对微分方程的解采用和,Matlab提供了很多解决微分方程的基本算法以及内置函数,为用户提供更加方便高效的解决方案。

Matlab微分方程的基本原理Matlab解微分方程的基本原理是通过利用数值方法,把微分方程化为一系列差分方程,然后在满足边界条件的情况下精确求解这些差分方程,从而得到微分方程的解析解或数值解。

例题:考虑微分方程$$y+2y+y=x,x>0,y(0)=2,y(0)=3$$首先,我们用上述公式定义微分方程:syms x y(x)ode=diff(y,x,2)+2*diff(y,x)+y-x然后我们设置边界条件:bc=[y(0)==2, subs(diff(y,x),x,0)==3];最后,我们用 dsolve数求解微分方程:ySol=dsolve(ode,bc)结果得到:ySol =C1*exp(-x) + C2*exp(-2*x) + 3*exp(-2*x) + (x^2/2 - x - 3)*exp(-x)因此,原微分方程的解为:y=C1*exp(-x) + C2*exp(-2*x) + 3*exp(-2*x) + (x^2/2 - x - 3)*exp(-x)结论本文利用matlab解决了一个典型的微分方程,通过设置边界条件,我们用 dsolve数求解得到了原微分方程的解析解。

Matlab提供的内置函数、算法,使我们能够更加方便、快捷地解决微分方程,从而帮助我们解决更多实际问题。

Matlab软件求解微分方程_170419

Matlab软件求解微分方程_170419

matlab函数定义格式总结matlab中函数定义的一些内容:1, 函数定义格式在matlab中应该做成M文件,文件名要和你文件里的function后面的函数名一致在File新建一个M-file在M-file里编辑函数格式为:function [输出实参表]=函数名(输入实参数)注释部分函数体语句return语句(可以有可以没有)如果是文件中的子函数,则可以任意取名,也可以在同一个文件中定义多个子函数例:function [max,min]=mymainfun(x) %主函数n=length(x);max=mysubfun1(x,n);min=mysubfun2(x);function r=mysubfun1(x,n) %子函数1x1=sort(x);function r=mysubfun2(x) %子函数2x1=sort(x);r=x1(1);Matlab自定义函数的五种方法1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;2、函数文件+子函数:定义一个具有多个自定义函数的M文件;3、Inline:无需M文件,直接定义;4、Syms+subs:无需M文件,直接定义;5、字符串+subs:无需M文件,直接定义.1、函数文件+调用函数文件:定义多个M文件:%调用函数文件:myfile.mclearclcfor t=1:10y=mylfg(t);fprintf(‘M^(1/3)=%6.4f\n’,t,y);end%自定义函数文件: mylfg.mfunction y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致Y=x^(1/3);注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

2、函数文件+子函数:定义一个具有多个子函数的M文件%命令文件:funtry2.mfunction []=funtry2()y=lfg2(t)fprintf(‘M^(1/3)=%6.4f\n’);Endfunction y=lfg2(x)Y= x^(1/3);%注:自定义函数文件funtry2.m中可以定义多个子函数function。

用matlab求解常微分方程

用matlab求解常微分方程

实验六 用matlab 求解常微分方程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 =++++--若上式中的系数n i t a i ,,2,1),( =均与t 无关,称之为常系数。

2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dt dy 可化为dt y dy =+1,两边积分可得通解为1-=t ce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解. 线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。

高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。

一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组 ⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n n n y y y t f y y y y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。

matlab 求解微分方程

matlab 求解微分方程

matlab 求解微分方程
在 MATLAB中可以使用 ode45 或者 ode15s 函数来求解常微分方程。

如果想要求解初值问题,可以使用 ode45 函数,语法如下:
```
tspan = [t0, tf]; % t0为初始时刻,tf为结束时刻
y0 = [y1, y2, ..., yn]; % y1, y2, ..., yn为初始条件
[t, y] = ode45(@(t, y) diffeq(t, y), tspan, y0);
```
其中,`diffeq` 是一个用户定义的函数,用来表示微分方程的右端,它的输入参数为时间 t 和状态变量 y,输出为微分方程的右端的值。

`t` 是时间向量,`y` 是状态变量的解。

如果想要求解延迟微分方程或者刚性微分方程,可以使用ode15s 函数,语法和 ode45 函数类似:
```
[t, y] = ode15s(@(t, y) diffeq(t, y), tspan, y0);
```
需要注意的是,求解微分方程之前,需要先定义好微分方程的右端函数 `diffeq` 。

Matlab求解微分方程及偏微分方程

Matlab求解微分方程及偏微分方程

第四讲Matlab求解微分方程(组)理论介绍:Matlab求解微分方程(组)命令求解实例:Matlab求解微分方程(组)实例实际应用问题通过数学建模所归纳得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的, 特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法:解析解法和数值解法.一.相关函数、命令及简介1.在Matlab中,用大写字母D表示导数,Dy表示y关于自变量的一阶导数, D2y表示y关于自变量的二阶导数,依此类推.函数dsolve用来解决常微分方程(组)的求解问题,调用格式为:X=dsolve(<eqnl,,,eqn2函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解.注意,系统缺省的自变量为t2.函数dsolve求解的是常微分方程的精确解法,也称为常微分方程的符号解. 但是,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:[T,Y]=solver(odefun,tspan,yO)说明:(1 )solver 为命令ode45、ode23、odel 13、odel5s、ode23s、ode23t、ode23tb、odel5i 之一.(2)odefun是显示微分方程),=f (t,y)在积分区间tspan =[心心]上从心到“用初始条件儿求解.(3)如果要获得微分方程问题在其他指定时间点bG©…心上的解,则令(span = 『“,•••『/■](要单调的).(4)因为没有一种算法可以有效的解决所有的ODE问题,为此,Matlab提供T多种求解器solver,对于不同的ODE问题,采用不同的solver.程(组)的初值问题的解的Matlab常用程序,其中:ode23采用龙格-库塔2阶算法,用3阶公式作误差估计来调节步长,具有低等的精度.。

matlab求解微分方程组的定长数值解

matlab求解微分方程组的定长数值解

matlab求解微分方程组的定长数值解使用Matlab求解微分方程组的定长数值解概述:微分方程是描述自然界中各种变化规律的重要数学工具。

在实际问题中,经常会遇到多个变量之间相互依赖的情况,这时就需要求解微分方程组。

Matlab是一种功能强大的数值计算软件,它提供了丰富的工具箱和函数,可以方便地求解微分方程组的定长数值解。

本文将介绍使用Matlab求解微分方程组的基本步骤和注意事项。

步骤:1. 定义微分方程组:首先需要定义微分方程组的方程形式。

例如,假设有一个二阶微分方程组:dx1/dt = f1(x1, x2, t)dx2/dt = f2(x1, x2, t)其中x1、x2为未知函数,t为自变量,f1、f2为已知函数。

在Matlab中,可以使用函数句柄的形式表示f1、f2,例如:f1 = @(x1, x2, t) x1 + x2 - t;f2 = @(x1, x2, t) x1 - x2 + 2*t;2. 设置初值条件:求解微分方程组需要给定初始条件。

例如,假设初始条件为x1(0) = 1,x2(0) = 2,可以使用以下代码设置:x0 = [1; 2];3. 定义求解区间:需要给定求解微分方程组的时间区间。

例如,假设求解区间为t = [0, 10],可以使用以下代码定义:tspan = [0, 10];4. 求解微分方程组:使用Matlab提供的ode45函数求解微分方程组的定长数值解。

ode45函数是一种常用的求解常微分方程初值问题的数值方法,可以自动选择合适的步长进行求解。

例如,可以使用以下代码求解微分方程组:[t, x] = ode45(@(t, x) [f1(x(1), x(2), t); f2(x(1), x(2), t)], tspan, x0);其中,@(t, x) [f1(x(1), x(2), t); f2(x(1), x(2), t)]表示微分方程组的右端项,t为自变量,x为未知函数的向量。

数学应用软件作业6用matlab求解微分方程的解析解和数值解

数学应用软件作业6用matlab求解微分方程的解析解和数值解
holdon
plot(t,y,'b');
四.上机结果
题1结果为:
ans =
C4*exp(2*x) + C2*exp(x*(5^(1/2)/2 - 1/2)) + C3/exp(x*(5^(1/2)/2 + 1/2))
题2结果为:
x =
4*cos(t) - 2/exp(2*t) + 3*sin(t) - (2*sin(t))/exp(t)
y =
sin(t) - 2*cos(t) + (2*cos(t))/exp(t)
题3结果为:
题4结果为:
解析解为:
y =
t + 1/exp(t)
作图如下:
title('ode15s图形');
题4:
Matlab程序:
(1)先建立程序如下:
y=dsolve('Dy=-y+t+1','y(0)=1','t')
截图如下:
作图:建立程序如下:
ezplot('t + 1/exp(t)',[0,1])
title('t + 1/exp(t)')
(2)先建立M文件,如下:
t0=0;tf=100;
[T,Y]=ode45('fun2',[0 100],[1 1]);
plot(T,Y(:,1),'+',T,Y(:,2),'*');
title('ode45图形');
(2)Matlab程序:
建立M文件,如下:
functiondy=fun1(t,y);

利用matlab代码循环定步长求解微分方程

利用matlab代码循环定步长求解微分方程

一、概述微分方程是描述自然界现象和工程问题最常用的数学模型之一。

在工程和科学领域中,求解微分方程是一项至关重要的工作,通常该过程可能比较繁琐。

本文将利用MATLAB代码对微分方程进行求解,通过循环定步长的方法,得到更精确的解析结果。

二、微分方程的求解微分方程在工程和科学领域中具有广泛的应用,例如在物理、化学、生物、经济学、电子工程等领域。

通常,微分方程可以表示为:dy/dx = f(x, y)其中,y是未知函数,x是自变量,f(x, y)是已知的函数。

为了求解微分方程,需要确定初始条件y(x0) = y0,其中x0和y0是已知的数值。

如果微分方程是线性的,通常可以通过解析方法求解。

但如果微分方程是非线性的,就必须借助数值计算工具来求解。

三、MATLAB代码的循环定步长方法MATLAB是一款功能强大的数学软件,具有丰富的数值计算函数和工具箱。

利用MATLAB编写代码求解微分方程,可以有效地提高计算的准确性和效率。

下面是利用MATLAB代码的循环定步长方法求解微分方程的一般步骤:1. 定义微分方程在MATLAB中定义微分方程的函数形式,例如:function dydx = myode(x, y)dydx = ...end2. 设定初始条件在MATLAB中设定微分方程的初始条件,例如:x0 = ...y0 = ...3. 设定步长和终止条件设定求解微分方程的步长和终止条件,例如:h = ...xfinal = ...4. 循环求解微分方程利用for循环或while循环,对微分方程进行迭代求解,直到达到终止条件。

在每一步中,将当前得到的结果保存下来,更新x和y的值。

5. 绘制结果利用MATLAB的绘图函数,绘制微分方程的解曲线。

可以通过绘制不同步长下的解曲线,分析步长对结果的影响。

四、案例分析以一阶非线性微分方程dy/dx = x^2 + y^2为例,使用MATLAB代码的循环定步长方法求解。

我们定义微分方程的函数形式:function dydx = myode(x, y)dydx = x^2 + y^2;end设定初始条件:x0 = 0;y0 = 1;设定步长和终止条件:h = 0.1;xfinal = 1;利用循环定步长方法求解微分方程:x = x0;y = y0;while x < xfinalk1 = h * myode(x, y);k2 = h * myode(x + h/2, y + k1/2);k3 = h * myode(x + h/2, y + k2/2);k4 = h * myode(x + h, y + k3);y = y + 1/6 * (k1 + 2*k2 + 2*k3 + k4);x = x + h;disp([x, y]);end绘制微分方程的解曲线:x = x0:h:xfinal;y = ...;plot(x, y);五、总结通过MATLAB代码的循环定步长方法,能够有效地求解微分方程并得到精确的解析结果。

MATLAB解微分方程

MATLAB解微分方程
-2 -2.5
0
500
1000 1500 2000 2500 3000
数学建模实验项目2(9)
五、实验题目
实验要求:针对下列问题,先建立数学模型,再确定模型 中的参数,并有结论。
1、求下列微分方程的解析解
(1) y′ − 2 y = x2
(2) y′ − xy = x, y(0) = 1
(3) y′′ + y′ = x, y(0) = 1, y′(0) = 1
x2
)
dx dt

x
=
0
x(0) = 2; x'(0) = 0
解: 令 y1=x,y2=y1’
则微分方程变为一阶微分方程组:
y2
'
=
y1'= 1000(1−
y2 y12
)y2

y1
y1(0) = 2, y2(0) = 0
(1)建立m-文件vdp1000.m如下: function dy=vdp1000(t,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1000*(1-y(1)^2)*y(2)-y(1);
其中k1是药物量被吸收到血液中的速率系数,k是血液中向体外 排除的速率系数,D是刚开始胃中或肌肉中的药物总量。 试用欧拉公式求上述微分方程数值解,并画出图形。(设
k1=0.6,k=0.2,D=200)
用Matlab软件求解微分方程 的解析解和数值解
数学与信息科学学院 孔祥庆
数学建模实验项目2(1)
一、实验名称:用Matlab软件求解微分方程的解析解和数值解 二、实验目的:
掌握用Matlab软件求解微分方程模型的解析解和数值解的方法 三、实验内容

MATLAB求解微分方程(实验6)微分方程求解-文档资料

MATLAB求解微分方程(实验6)微分方程求解-文档资料

dx
输入:y=dsolve ('Dy=1+y^2') y1=dsolve('Dy=1+y^2','y(0)=1','x')
输出:y= tan(t-C1)
(通解)
y1= tan(x+1/4*pi) (特解)
例2 常系数的二阶微分方程
y' '2 y'3y 0, y(0) 1, y' (0) 0
ode23:组合的2/3阶龙格-库塔-芬尔格算法 ode45:运用组合的4/5阶龙格-库塔-芬尔格算法
用于设定误差限(缺省时设定相对误差10-3, 绝对误差10-6), 命令为:options=odeset(’reltol’,rt,’abstol’,at), rt,at:分别为设定的相对误差和绝对误差.
14
注意: 1、在解n个未知函数的方程组时,x0和x均为n维向量,
m-文件中的待解方程组应以x的分量形式写成。
2、使用Matlab软件求数值解时,高阶微分方程必须 等价地变换成一阶微分方程组。
y(n) f (t, y, y, , y(n1) ) y(0), y(0), , y(n1) (0)
选择一组状态变量
x1 y, x2 y, , xn y(n1)
x1 x2 , x2 x3,
xn f (t, x1, x2 , , xn )
15
注意
x1 x2 , x2 x3,
xn f (t, x1, x2 , , xn )
1、建立M文件函数
function xdot = fun(t,x,y) xdot = [x2(t);x3(t);…;f(t, x1(t), x2(t),…xn(t))];

matlab 求解微分方程

matlab 求解微分方程

matlab 求解微分方程摘要:1.Matlab 简介2.微分方程基本概念3.Matlab 求解微分方程的方法4.常见微分方程求解实例5.总结正文:一、Matlab 简介Matlab 是一种广泛应用于科学计算、数据分析和可视化的编程语言。

它具有丰富的函数库和强大的矩阵计算能力,使得用户可以方便地完成各种复杂的数学运算和分析任务。

在微分方程求解领域,Matlab 同样具有很高的应用价值。

二、微分方程基本概念微分方程是数学中的一个重要分支,它描述了自然界和社会现象中许多变化规律。

微分方程可以分为偏微分方程和常微分方程两大类。

求解微分方程是数学和工程领域中的一个重要课题,关乎许多实际问题的解决。

三、Matlab 求解微分方程的方法Matlab 求解微分方程主要依赖于其内置的符号计算函数和数值计算函数。

用户可以根据微分方程的性质选择适当的求解方法,如符号解法、数值解法等。

Matlab 提供了丰富的函数和工具箱来支持微分方程的求解,如ode45、ode23 等。

四、常见微分方程求解实例1.常微分方程:例如一阶常微分方程y" + p(x)y = q(x),Matlab 可以通过ode45 函数求解。

2.偏微分方程:例如二维热传导方程,Matlab 可以通过pdepeye 函数求解。

3.线性微分方程组:例如常系数线性微分方程组,Matlab 可以通过ode45 等函数求解。

4.非线性微分方程:例如Riccati 方程,Matlab 可以通过ode45 等函数求解。

五、总结Matlab 作为一种强大的科学计算工具,可以帮助用户方便地求解各种微分方程。

matlab算法-求解微分方程数值解和解析解

matlab算法-求解微分方程数值解和解析解

MATLAB是一种用于数学计算、工程和科学应用程序开发的高级技术计算语言和交互式环境。

它被广泛应用于各种领域,尤其在工程和科学领域中被用于解决复杂的数学问题。

微分方程是许多工程和科学问题的基本数学描述,求解微分方程的数值解和解析解是MATLAB算法的一个重要应用。

1. 求解微分方程数值解在MATLAB中,可以使用各种数值方法来求解微分方程的数值解。

其中,常见的方法包括欧拉法、改进的欧拉法、四阶龙格-库塔法等。

这些数值方法可以通过编写MATLAB脚本来实现,从而得到微分方程的近似数值解。

以常微分方程为例,可以使用ode45函数来求解微分方程的数值解。

该函数是MATLAB中用于求解常微分方程初值问题的快速、鲁棒的数值方法,可以有效地得到微分方程的数值解。

2. 求解微分方程解析解除了求解微分方程的数值解外,MATLAB还可以用于求解微分方程的解析解。

对于一些特定类型的微分方程,可以使用符号计算工具箱中的函数来求解微分方程的解析解。

通过符号计算工具箱,可以对微分方程进行符号化处理,从而得到微分方程的解析解。

这对于研究微分方程的性质和特点非常有帮助,也有助于理论分析和验证数值解的准确性。

3. MATLAB算法应用举例在实际工程和科学应用中,MATLAB算法求解微分方程问题非常常见。

在控制系统设计中,经常需要对系统的动态特性进行分析和设计,这通常涉及到微分方程的建模和求解。

通过MATLAB算法,可以对系统的微分方程进行数值求解,从而得到系统的响应曲线和动态特性。

另外,在物理学、生物学、经济学等领域的建模和仿真中,也经常需要用到MATLAB算法来求解微分方程问题。

4. MATLAB算法优势相比于其他数学软件和编程语言,MATLAB在求解微分方程问题上具有明显的优势。

MATLAB提供了丰富的数值方法和工具,能够方便地对各种微分方程进行数值求解。

MATLAB具有直观的交互式界面和强大的绘图功能,能够直观地展示微分方程的数值解和解析解,有利于分析和理解问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注:上机作业文件夹以自己的班级姓名学号命名,文件夹包括如下上机报告和Matlab程序。

上机报告模板如下:
分别用函数ode45和ode15s计算求解,分别画出图形,图形分别标注标题。

4、求解微分方程
=y
-
y
+
y
t
,1
)0(
,1
+
'=
先求解析解,在[0,1]上作图;
再用ode45求数值解(作图的图形用“o”表示),在同一副图中作图进行比较,用不同的颜色表示。

三. 上机方法与步骤
给出相应的问题分析及求解方法,并写出Matlab程序,并有上机程序显示截图。

题1:直接用命令dsolve求解出微分方程的通解。

Matlab程序:
dsolve('D3y-D2y-3*Dy+2*y','x')
题2:将微分方程组改写为
5cos2exp(2)
5cos2exp(2)
(0)2,(0)0
dx
t t x y
xt
dy
t t x y
dt
x y

=+---



=-+-+-


==



,再用命令dsolve求解微分方
程的通解。

Matlab程序:
建立如下:
[x,y]=dsolve('Dx=5*cos(t)+2*exp(-2*t)-x-y','Dy=-5*cos(t)+2*exp(-2*t)+x-y','x(0)=2,y(0) =0','t')
x=simple(x)
y=simple(y)
题3:由于所给的微分方程为一阶微分方程,则直接用函数ode45和ode15s求解微分方程的数值解,具体程序如下:
(1)Matlab程序:
建立M文件,如下:
function dy=fun2(t,y);
dy=zeros(2,1);
dy(1)=*(1-y(1))-(1-y(2))*y(1)+*((1-y(2))^2); dy(2)=-10000*y(1)+3000*((1-y(2))^2);
取t0=0,tf=100,建立程序如下:
t0=0;tf=100;
[T,Y]=ode45('fun2',[0 100],[1 1]);
plot(T,Y(:,1),'+',T,Y(:,2),'*');
title('ode45图形');
(2)Matlab程序:
建立M文件,如下:
function dy=fun1(t,y);
dy=zeros(2,1);
dy(1)=*(1-y(1))-(1-y(2))*y(1)+*((1-y(2))^2); dy(2)=-10000*y(1)+3000*((1-y(2))^2);
取t0=0,tf=100,建立程序如下:
t0=0;tf=100;
[T,Y]=ode15s('fun1',[0 100],[1 1]);
plot(T,Y(:,1),'+',T,Y(:,2),'*');
title('ode15s图形');
题4:
Matlab程序:
(1)先建立程序如下:
y=dsolve('Dy=-y+t+1','y(0)=1','t')
截图如下:
作图:建立程序如下:
ezplot('t + 1/exp(t)',[0,1]) title('t + 1/exp(t)')
(2)先建立M文件,如下:function dy=fun3(t,y)
dy=zeros(1,1);
dy(1)=-y(1)+t+1;
再取t0=0,tf=1,建立程序如下:t0=0;tf=1;
[T,Y]=ode45('fun3',[0 1],[1]); plot(T,Y,'ro');
title('比较图');
t=0::1;
y=t+1./exp(t);
hold on
plot(t,y,'b');
四.上机结果
题1结果为:
ans =
C4*exp(2*x) + C2*exp(x*(5^(1/2)/2 - 1/2)) + C3/exp(x*(5^(1/2)/2 + 1/2))
题2结果为:
x =
4*cos(t) - 2/exp(2*t) + 3*sin(t) - (2*sin(t))/exp(t) y =
sin(t) - 2*cos(t) + (2*cos(t))/exp(t)
题3结果为:
题4结果为:
解析解为:
y =
t + 1/exp(t)
作图如下:。

相关文档
最新文档