您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > MATLAB作业5参考答案
MATLAB作业5参考答案1、试求出下面线性微分方程的通解。543225432()()()()()136415217680()[sin(2)cos(3)]3tdytdytdytdytdytytettdtdtdtdtdt假设上述微分方程满足已知条件(0)1,(1)3,()2,(0)1,(1)2yyyyy,试求出满足该条件的微分方程的解析解。【求解】先定义t为符号变量,求出等号右侧的函数,则可以由下面命令求出方程的解析解,解的规模较大,经常能占数页。symstexp(-2*t)*(sin(2*t+sym(pi)/3)+cos(3*t))ans=exp(-2*t)*(sin(2*t+1/3*pi)+cos(3*t))y=dsolve(['D5y+13*D4y+64*D3y+152*D2y+176*Dy+80*y=',...'exp(-2*t)*(sin(2*t+1/3*pi)+cos(3*t))'],'y(0)=1','y(1)=3','y(pi)=2',...'Dy(0)=1','Dy(1)=2')略:事实上,仔细阅读求出的解析解就会发现,其中大部分表达式是关于系数的,所以如果能对系数进行近似则将大大减小解的复杂度。vpa(y)ans=.20576131687242798353909465020576e-2*exp(-2.*t)*cos(3.*t)+.15538705805619602372728107411086e-1*exp(-2.*t)*sin(2.*t)+.76830587084294035590921611166287e-2*exp(-2.*t)*cos(2.*t)-106.24422608844727797303237726774*exp(-2.*t)*t^2+98.159206062620455331994871615083*exp(-2.*t)*t+59.405044899367325888329709780356*exp(-2.*t)*t^3-30.741892776456442808809983330755*exp(-2.*t)+.20576131687242798353909465020576e-2*exp(-2.*t)*sin(3.*t)+31.732152104579289125415500223136*exp(-5.*t)2、试求解下面微分方程的通解以及满足(0)1,()2,(0)0xxy条件下的解析解。66()5()4()3()sin(4)2()()4()6()cos(4)ttxtxtxtytetytytxtxtet【求解】可以用下面的语句得出微分方程组的通解。symst[x,y]=dsolve('D2x+5*Dx+4*x+3*y=exp(-6*t)*sin(4*t)',...'2*Dy+y+4*Dx+6*x=exp(-6*t)*cos(4*t)')解略。将已知初始条件代入,则可以得出下面的特解。symst[x,y]=dsolve('D2x+5*Dx+4*x+3*y=exp(-6*t)*sin(4*t)',...'2*Dy+y+4*Dx+6*x=exp(-6*t)*cos(4*t)','x(0)=1','x(pi)=2','y(0)=0')vpa(x),vpa(y)解略。3、试求出微分方程2511()(2)()(1)()xyxyxyxxexx的解析解通解,并求出满足边界条件(1),()1yy的解析解。【求解】微分方程的通解可以由下面的函数直接求出symsxy=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)','x')y=exp(x)*C2+exp(x)*log(x)*C1+1/1296*(6*exp(6*x)*Ei(1,6*x)+11+30*x+36*x^2)*exp(-5*x)若需要求取满足边界条件的特解,需要在求解时代入边界条件,这样就可以由下面的语句得出微分方程的特解。symsxy=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)',...'y(1)=pi','y(pi)=1','x')y=-1/1296*exp(x)*(6*exp(1)*Ei(1,6)+77*exp(-5)-1296*sym(pi))/exp(1)+1/1296*exp(x)*log(x)*(6*Ei(1,6)*exp(6*sym(pi)+6)+77*exp(6*sym(pi))-1296*sym(pi)*exp(6*sym(pi)+5)+3*sqrt(-1)*pi*csgn(sym(pi))*exp(6*sym(pi)+6)-6*Ei(1,6*sym(pi))*exp(6*sym(pi)+6)-3*sqrt(-1)*pi*exp(6*sym(pi)+6)-3*sqrt(-1)*pi*csgn(6*sqrt(-1)*sym(pi))*exp(6*sym(pi)+6)-30*sym(pi)*exp(6)+3*sqrt(-1)*pi*csgn(sym(pi))*csgn(6*sqrt(-1)*sym(pi))*exp(6*sym(pi)+6)-36*sym(pi)^2*exp(6)-11*exp(6)+1296*exp(5*sym(pi)+6))/log(sym(pi))*exp(-6*sym(pi)-6)+1/1296*(6*exp(6*x)*Ei(1,6*x)+11+30*x+36*x^2)*exp(-5*x)由于使用了sym(pi)这样精确的表示,其实还可以用数值解的方法对各个系数进行近似,这样可以得出如下结果。vpa(y,10)ans=1.155578411*exp(x)-.9717266142*exp(x)*log(x)+.7716049383e-3*(6.*exp(6.*x)*Ei(1,6.*x)+11.+30.*x+36.*x^2)*exp(-5.*x)还可以对该结果进行图形显示,得出如图所示的解曲线,可见,该曲线通过两个给定点。x1=0.5:0.01:4;y1=subs(y,x,x1);plot(x1,y1,1,pi,'o',pi,1,'o')4、Lotka-Volterra扑食模型方程为()4()2()()()()()3()xtxtxtytytxtytyt,且初值为(0)2,(0)3xy,试求解该微分方程,并绘制相应的曲线。【求解】用下面命令可以立即解出微分方程的模型,并绘制出解的时间响应曲线和相平面曲线,分别如图所示。f=inline('[4*x(1)-2*x(1)*x(2);x(1)*x(2)-3*x(2)]','t','x');[t,x]=ode45(f,[0,10],[2;3]);5、是给出求解下面微分方程的MATLAB命令,(3)22,(0)2,(0)(0)0tyytyytyyeyyy并绘制出()yt曲线。试问该方程存在解析解吗?选择四阶定步长Runge-Kutta算法求解该方程时,步长选择多少可以得出较好的精度,MATLAB语言给出的现成函数在速度、精度上进行比较。【求解】因为该方程为含有非线性项的微分方程,所以一般来说该方程不能有解析解,只能求解其数值解。要求解该方程。,则需要引入状态变量x1,x2,x3,这样可以写出一阶微分方程组。就可以用下面的语句求解微分方程,并绘制出状态变量的时域响应曲线,可见,时变微分方程也可以容易地求解。f=inline('[x(2);x(3);-t^2*x(1)*x(2)-t^2*x(2)*x(1)^2+exp(-t*x(1))]','t','x');[t,x]=ode45(f,[0,10],[2;0;0]);6、试用解析解和数值解的方法求解下面的微分方程组5()2()3(),(0)1,(0)2()2()3()4()4()sin,(0)3,(0)4txtxtxtexxytxtytxtyttyy【求解】该方程的解析解可以由下面的语句直接得出symst[x,y]=dsolve('D2x=-2*x-3*Dx+exp(-5*t)','D2y=2*x-3*y-4*Dx-4*Dy-sin(t)',...'x(0)=1','Dx(0)=2','y(0)=3','Dy(0)=4')x=1/12*exp(-5*t)-10/3*exp(-2*t)+17/4*exp(-t)y=-71/5*exp(-3*t)-265/16*exp(-t)+11/48*exp(-5*t)+100/3*exp(-2*t)+1/5*cos(t)-1/10*sin(t)+51/4*exp(-t)*tf=inline(...'[x(2);-2*x(1)-3*x(2)+exp(-5*t);x(4);2*x(1)-3*x(3)-4*x(2)-4*x(4)-sin(t)]',...'t','x');[t1,x1]=ode45(f,[0,10],[1;2;3;4]);ezplot(x,[0,10]),line(t1,x1(:,1))figure;ezplot(y,[0,10]),line(t1,x1(:,3))得出的x(t)和y(t)曲线的数值解与解析解分别如图所示,可见,得出的数值解精度还是很高的,在曲线上无法区分出解析解和数值解。7、下面的方程在传统微分方程教程中经常被认为是刚性微分方程。使用常规微分方程解法和刚性微分方程解法分别求解这两个微分方程的数值解,并求出解析解,用状态变量曲线比较数值求解的精度。11212122119245cossin,(0)33(1)1224519cossin,(0)33yyyttyyyytty112122232330.149.9,(0)1(2)50,(0)270120,(0)1yyyyyyyyyyy解略,参见讲义。8、试求出习题3中给出的微分方程边值问题数值解,绘制出()yt曲线,并和该习题得出的解析解比较精度。【求解】微分方程的解析解可以由下面的函数直接求出symsxy=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)',...'y(1)=pi','y(pi)=1','x')ezplot(y,[0,10])9、试用数值方法求解偏微分方程22220,00,001,00,0xyyxuuxyuuxy,并绘制出u函数曲面。【求解】可以看出,该方程为椭圆型偏微分方程,且c=1,f=0,用pdetool函数提供的界面求解该方程,选择并设置椭圆微分方程,再选择矩形区域,可以设置出横轴和纵轴的边界条件,求解微分方程则可以得出所示的解曲面。
本文标题:MATLAB作业5参考答案
链接地址:https://www.777doc.com/doc-4989713 .html