微分方程问题的解法学习教案.pptx
《微分方程问题的解法学习教案.pptx》由会员分享,可在线阅读,更多相关《微分方程问题的解法学习教案.pptx(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1微分方程微分方程(wi fn fn chn)问题的解问题的解法法第一页,共85页。y=dsolve(D4y+10*D3y+35*D2y+50*Dy+24*y=,.y=dsolve(D4y+10*D3y+35*D2y+50*Dy+24*y=,.87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1).87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1).+10,y(0)=3,Dy(0)=2,D2y(0)=0,D3y(0)=0)+10,y(0)=3,Dy(0)=2,D2y(0)=0,D3y(0)=0)第2页/共
2、85页第二页,共85页。分别处理系数,如:分别处理系数,如:n,d=rat(double(vpa(-445/26*cos(1)-51/13*sin(1)-69/2)n,d=rat(double(vpa(-445/26*cos(1)-51/13*sin(1)-69/2)ans=ans=-8704 185%rat()-8704 185%rat()最接近最接近(jijn)(jijn)有理数的分数有理数的分数判断误差:判断误差:vpa(-445/26*cos(sym(1)-51/13*sin(1)-69/2+8704/185)vpa(-445/26*cos(sym(1)-51/13*sin(1)-69
3、/2+8704/185)ans=ans=第3页/共85页第三页,共85页。y=dsolve(D4y+10*D3y+35*D2y+50*Dy+24*y=,.y=dsolve(D4y+10*D3y+35*D2y+50*Dy+24*y=,.87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+.87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+.10,y(0)=1/2,Dy(pi)=1,D2y(2*pi)=0,Dy(2*pi)=1/5);10,y(0)=1/2,Dy(pi)=1,D2y(2*pi)=0,Dy(2*
4、pi)=1/5);如果用推导的方法求如果用推导的方法求CiCi的值,每个系数的解析解至少要的值,每个系数的解析解至少要写出写出1010数行数行,故可采用有理式近似故可采用有理式近似 的方式表示的方式表示(bi(bi osh).osh).vpa(y,10)%vpa(y,10)%有理近似值有理近似值ans=ans=1.196361839*exp(-5.*t)+.4166666667-.4785447354*sin(t)*cos(t)*exp1.196361839*exp(-5.*t)+.4166666667-.4785447354*sin(t)*cos(t)*exp(-5.*t)-.4519262
5、218e-1*cos(2.*t)*exp(-5.*t)-2.392723677*cos(t)2*exp(-5.*t)-.4519262218e-1*cos(2.*t)*exp(-5.*t)-2.392723677*cos(t)2*exp(-5.*t)+.2259631109*sin(2.*t)*exp(-5.*t)-473690.0893*exp(-3.*t)+31319.63786*exp(-5.*t)+.2259631109*sin(2.*t)*exp(-5.*t)-473690.0893*exp(-3.*t)+31319.63786*exp(-2.*t)-219.1293619*exp(
6、-1.*t)+442590.9059*exp(-4.*t)(-2.*t)-219.1293619*exp(-1.*t)+442590.9059*exp(-4.*t)第4页/共85页第四页,共85页。n n例:求解(qi ji)n n x,y=dsolve(D2x+2*Dx=x+2*y-exp(-t),Dy=4*x+3*y+4*exp(-t)第5页/共85页第五页,共85页。n n例:例:n n syms t x syms t xn n x=dsolve(Dx=x*(1-x2)x=dsolve(Dx=x*(1-x2)n nx=x=n n 1/(1+exp(-2*t)*C1)(1/2)1/(1+e
7、xp(-2*t)*C1)(1/2)n n-1/(1+exp(-2*t)*C1)(1/2)-1/(1+exp(-2*t)*C1)(1/2)n n syms t x;x=dsolve(Dx=x*(1-x2)+1)syms t x;x=dsolve(Dx=x*(1-x2)+1)n nWarning:Explicit solution could not be found;implicit Warning:Explicit solution could not be found;implicit solution returned.solution returned.n n In D:MATLAB6p
8、5toolboxsymbolicdsolve.m at In D:MATLAB6p5toolboxsymbolicdsolve.m at line 292line 292n nx=x=n nt-Int(1/(a-a3+1),a=.x)+C1=0t-Int(1/(a-a3+1),a=.x)+C1=0n n故只有故只有(zh(zh y y u)u)部分非线性微分方程有解析解。部分非线性微分方程有解析解。第6页/共85页第六页,共85页。6.2 6.2 微分方程问题的数值解法微分方程问题的数值解法微分方程问题算法微分方程问题算法(sun f)(sun f)概述概述第7页/共85页第七页,共85页。微
9、分方程(wi fn fn chn)求解的误差与步长问题:第8页/共85页第八页,共85页。第9页/共85页第九页,共85页。第10页/共85页第十页,共85页。四阶定步长四阶定步长Runge-KuttaRunge-Kutta算法算法(sun f)(sun f)及及 MATLAB MATLAB 实现实现第11页/共85页第十一页,共85页。function tout,yout=rk_4(odefile,tspan,y0)function tout,yout=rk_4(odefile,tspan,y0)y0y0初值列向量初值列向量(xingling)(xingling)t0=tspan(1);th
10、=tspan(2);t0=tspan(1);th=tspan(2);if length(tspan)=3,h=tspan(3);%tspan=t0,th,h if length(tspan)t_final=100;x0=0;0;1e-10;%t_final t_final=100;x0=0;0;1e-10;%t_final为设定的仿真为设定的仿真(f(f n n zhn)zhn)终止时间终止时间 t,x=ode45(lorenzeq,0,t_final,x0);plot(t,x),t,x=ode45(lorenzeq,0,t_final,x0);plot(t,x),figure;%figure
11、;%打开新图形窗口打开新图形窗口 plot3(x(:,1),x(:,2),x(:,3);plot3(x(:,1),x(:,2),x(:,3);axis(10 42-20 20-20 25);%axis(10 42-20 20-20 25);%根据实际数值手动设置坐标根据实际数值手动设置坐标系系第17页/共85页第十七页,共85页。n n可采用(ciyng)comet3()函数绘制动画式的轨迹。n n comet3(x(:,1),x(:,2),x(:,3)第18页/共85页第十八页,共85页。n n描述微分方程是常微分方程初值问题数值求解的关键(gunjin)。n n f1=inline(-8/
12、3*x(1)+x(2)*x(3);-10*x(2)+10*x(3);,.n n -x(1)*x(2)+28*x(2)-x(3),t,x);n n t_final=100;x0=0;0;1e-10;n n t,x=ode45(f1,0,t_final,x0);n n plot(t,x),figure;n n plot3(x(:,1),x(:,2),x(:,3);axis(10 42-20 20-20 25);n n得出完全一致的结果。第19页/共85页第十九页,共85页。下带有附加参数的微分方程下带有附加参数的微分方程下带有附加参数的微分方程下带有附加参数的微分方程(wi fn(wi fn(wi
13、 fn(wi fn fn chn)fn chn)fn chn)fn chn)求解求解求解求解n n例:第20页/共85页第二十页,共85页。n n编写函数编写函数n nfunction xdot=lorenz1(t,x,flag,beta,rho,sigma)function xdot=lorenz1(t,x,flag,beta,rho,sigma)n n flag flag变量变量(binling)(binling)是是不能省略的不能省略的n n xdot=-beta*x(1)+x(2)*x(3);xdot=-beta*x(1)+x(2)*x(3);n n -rho*x(2)+rho*x(3
14、);-rho*x(2)+rho*x(3);n n -x(1)*x(2)+sigma*x(2)-x(3);-x(1)*x(2)+sigma*x(2)-x(3);n n求微分方程:求微分方程:n n t_final=100;x0=0;0;1e-10;t_final=100;x0=0;0;1e-10;n n b2=2;r2=5;s2=20;b2=2;r2=5;s2=20;n n t2,x2=ode45(lorenz1,0,t_final,x0,b2,r2,s2);t2,x2=ode45(lorenz1,0,t_final,x0,b2,r2,s2);n n plot(t2,x2),plot(t2,x2
15、),optionsoptions位置为位置为,表示不需修改控制选项,表示不需修改控制选项n n figure;plot3(x2(:,1),x2(:,2),x2(:,3);axis(0 72-20 22 -35 40);figure;plot3(x2(:,1),x2(:,2),x2(:,3);axis(0 72-20 22 -35 40);第21页/共85页第二十一页,共85页。n nf2=inline(-beta*x(1)+x(2)*x(3);-rho*x(2)+rho*x(3);,.n n -x(1)*x(2)+sigma*x(2)-x(3),t,x,flag,beta,rho,sigma)
16、;n n flag变量(binling)是不能省略的第22页/共85页第二十二页,共85页。微分方程微分方程(wi fn fn chn)(wi fn fn chn)转换转换单个高阶常微分方程单个高阶常微分方程(wi fn fn(wi fn fn chn)chn)处理方法处理方法第23页/共85页第二十三页,共85页。第24页/共85页第二十四页,共85页。n n例:例:n n函数函数(hnsh)(hnsh)描述为:描述为:n n function y=vdp_eq(t,x,flag,mu)function y=vdp_eq(t,x,flag,mu)n n y=x(2);-mu*(x(1)2-1
17、)*x(2)-x(1);y=x(2);-mu*(x(1)2-1)*x(2)-x(1);n n x0=-0.2;-0.7;t_final=20;x0=-0.2;-0.7;t_final=20;n n mu=1;t1,y1=ode45(vdp_eq,0,t_final,x0,mu);mu=1;t1,y1=ode45(vdp_eq,0,t_final,x0,mu);n n mu=2;t2,y2=ode45(vdp_eq,0,t_final,x0,mu);mu=2;t2,y2=ode45(vdp_eq,0,t_final,x0,mu);n n plot(t1,y1,t2,y2,:)plot(t1,y1
18、,t2,y2,:)n n figure;plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2),:)figure;plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2),:)第25页/共85页第二十五页,共85页。n n x0=2;0;t_final=3000;x0=2;0;t_final=3000;n n mu=1000;t,y=ode45(vdp_eq,0,t_final,x0,mu);mu=1000;t,y=ode45(vdp_eq,0,t_final,x0,mu);n n 由于变步长所采用的步长过小,所需时间较长,由于变步长所采用的步长过小,所需时间
19、较长,导致输出的导致输出的y y矩阵过大,超出计算机存储空间容量。矩阵过大,超出计算机存储空间容量。所以不适合采用所以不适合采用ode45()ode45()来求解,可用刚性方程来求解,可用刚性方程(fngchng)(fngchng)求解算法求解算法ode15s()ode15s()。第26页/共85页第二十六页,共85页。高阶常微分方程组的变换高阶常微分方程组的变换(binhun)(binhun)方法方法第27页/共85页第二十七页,共85页。n n例:第28页/共85页第二十八页,共85页。第29页/共85页第二十九页,共85页。n n描述(mio sh)函数:n n function dx=
20、apolloeq(t,x)n n mu=1/82.45;mu1=1-mu;n n r1=sqrt(x(1)+mu)2+x(3)2);n n r2=sqrt(x(1)-mu1)2+x(3)2);n n dx=x(2);n n 2*x(4)+x(1)-mu1*(x(1)+mu)/r13-mu*(x(1)-mu1)/r23;n n x(4);n n -2*x(2)+x(3)-mu1*x(3)/r13-mu*x(3)/r23;第30页/共85页第三十页,共85页。n n求解:求解:n n x0=1.2;0;0;-1.04935751;x0=1.2;0;0;-1.04935751;n n tic,t,y
21、=ode45(apolloeq,0,20,x0);toc tic,t,y=ode45(apolloeq,0,20,x0);tocn nelapsed_time=elapsed_time=n n 0.8310 0.8310n n length(t),length(t),n n plot(y(:,1),y(:,3)plot(y(:,1),y(:,3)n nans=ans=n n 689 689n n得出的轨道不正确得出的轨道不正确(zhngqu)(zhngqu),n n默认精度默认精度RelTolRelTol设置设置n n得太大,从而导致的得太大,从而导致的n n误差传递,可减小该误差传递,可减小
22、该n n值。值。第31页/共85页第三十一页,共85页。n n改变(gibin)精度:n n options=odeset;options.RelTol=1e-6;n n tic,t1,y1=ode45(apolloeq,0,20,x0,options);tocn nelapsed_time=n n 0.8110n n length(t1),n n plot(y1(:,1),y1(:,3),n nans=n n 1873第32页/共85页第三十二页,共85页。min(diff(t1)min(diff(t1)ans=ans=1.8927e-004 1.8927e-004 plot(t1(1:en
23、d-1),plot(t1(1:end-1),diff(t1)diff(t1)第33页/共85页第三十三页,共85页。n n例:第34页/共85页第三十四页,共85页。n n x0=1.2;0;0;-1.04935751;n n tic,t1,y1=rk_4(apolloeq,0,20,0.01,x0);tocn nelapsed_time=n n 4.2570n n plot(y1(:,1),y1(:,3)n n%绘制出轨迹曲线n n显而易见,这样(zhyng)求解n n是错误的,应该采用n n更小的步长。第35页/共85页第三十五页,共85页。n n tic,t2,y2=rk_4(apoll
24、oeq,0,20,0.001,x0);toc tic,t2,y2=rk_4(apolloeq,0,20,0.001,x0);tocn nelapsed_time=elapsed_time=n n 124.4990 124.4990 计算时间过长计算时间过长n n plot(y2(:,1),y2(:,3)plot(y2(:,1),y2(:,3)n n%绘制出轨迹曲线绘制出轨迹曲线n n严格说来某些点仍不严格说来某些点仍不n n满足满足10106 6的误差的误差(wch)(wch)限,限,n n所以求解常微分方程所以求解常微分方程n n组时建议采用变步长组时建议采用变步长n n算法,而不是定步长算
25、法,而不是定步长n n算法。算法。第36页/共85页第三十六页,共85页。n n例:第37页/共85页第三十七页,共85页。用用MATLABMATLAB符号工具箱求解,符号工具箱求解,令令 syms x1 x2 x3 x4 syms x1 x2 x3 x4 dx,dy=solve(dx+2*x4*x1=2*dy,dx*x4+dx,dy=solve(dx+2*x4*x1=2*dy,dx*x4+3*x2*dy+x1*x4-x3=5,dx,dy)%dx,dy3*x2*dy+x1*x4-x3=5,dx,dy)%dx,dy为指定变量为指定变量dx=dx=-2*(3*x4*x1*x2+x4*x1-x3-5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 问题 解法 学习 教案
限制150内