好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MATLAB求解微分方程实验.ppt

28页
  • 卖家[上传人]:pu****.1
  • 文档编号:571450573
  • 上传时间:2024-08-10
  • 文档格式:PPT
  • 文档大小:575KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1MATLAB求解微分方程实验￿￿￿￿Still￿waters￿run￿deep.流静水深流静水深,人静心深人静心深￿￿￿￿Where￿there￿is￿life,￿there￿is￿hope有生命必有希望有生命必有希望 2实验目的实验目的实验内容实验内容MATLAB2、学会用、学会用Matlab求微分方程的数值解求微分方程的数值解.实验软件实验软件1、学会用、学会用Matlab求简单微分方程的解析解求简单微分方程的解析解.1 1、、求简单微分方程的解析解求简单微分方程的解析解.2、求微分方程的数值解、求微分方程的数值解. 3微分方程的解析解微分方程的解析解 求微分方程(组)的解析解命令:dsolve(‘方程方程1’, ‘方程方程2’,…‘方程方程n’, ‘初始条件初始条件’, ‘自变量自变量’)注意:① y ' Dy,y ' ' D2y ② 自变量名可以省略,默认变量名‘t’ 例1输入: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) (特解)MATLAB软件求解 5例2 常系数的二阶微分方程y=dsolve('D2y-2*Dy-3*y=0','x')y=dsolve('D2y-2*Dy-3*y=0','y(0)=1,Dy(0)=0','x')输入:y = C1*exp(-x)+C2*exp(3*x)y = 3/4*exp(-x)+1/4*exp(3*x)结果: 6x=dsolve('D2x-(1-x^2)*Dx+x=0', ' x(0)=3,Dx(0)=0')例3 非常系数的二阶微分方程无解析表达式! 7x=dsolve('(Dx)^2+x^2=1','x(0)=0')例4 非线性微分方程x = sin(t) -sin(t)若欲求解的某个数值解,如何求解?t=pi/2; eval(x)MATLAB软件求解 8输入:[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y')[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y','x(0)=0,y(0)=1')例5输出: x =-exp(3*t)*(C1*cos(4*t)-C2*sin(4*t)) y =exp(3*t)*(C1*sin(4*t)+C2*cos(4*t)) x =exp(3*t)*sin(4*t) y =exp(3*t)*cos(4*t)MATLAB软件求解 9解解 输入命令 : [x,y,z]=dsolve('Dx=2*x-3*y+3*z', ... 'Dy=4*x-5*y+3*z',... 'Dz=4*x-4*y+2*z', 't'); x=simple(x) % 将x简化 y=simple(y) z=simple(z)结 果 为:x =C3*exp(2*t)+exp(-t)*C1 y =C2*exp(-2*t)+C3*exp(2*t)+exp(-t)*C1 z =C2*exp(-2*t)+C3*exp(2*t) 10微分方程的数值解微分方程的数值解(一)常微分方程数值解的定义(一)常微分方程数值解的定义 在生产和科研中所处理的微分方程往往很复杂且大多得不出一般解。

      而在实际上对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值,或者得到一个满足精确度要求的便于计算的表达式因此,研究常微分方程的数值解法是十分必要的因此,研究常微分方程的数值解法是十分必要的返 回 11(二)建立数值解法的一些途径(二)建立数值解法的一些途径1、用差商代替导数、用差商代替导数 若步长h较小,则有故有公式:此即欧拉法欧拉法 122、使用数值积分、使用数值积分对方程y’=f(x,y), 两边由xi到xi+1积分,并利用梯形公式,有:实际应用时,与欧拉公式结合使用:此即改进的欧拉法改进的欧拉法故有公式: 133、使用泰勒公式、使用泰勒公式 以此方法为基础,有龙格龙格-库塔法库塔法、线性多步法线性多步法等方法4、数值公式的精度、数值公式的精度 当一个数值公式的截断误差可表示为O(hk+1)时(k为正整数,h为步长),称它是一个k阶公式阶公式k越大,则数值公式的精度越高•欧拉法是一阶公式,改进的欧拉法是二阶公式•龙格-库塔法有二阶公式和四阶公式•线性多步法有四阶阿达姆斯外插公式和内插公式返 回 14(三)用(三)用Matlab软件求常微分方程的数值解软件求常微分方程的数值解[t,,x]=solver((’f’,ts,x0,options))ode45 ode23 ode113ode15sode23s由待解方程写成的m-文件名ts=[t0,tf],t0、tf为自变量的初值和终值函数的初值ode23:组合的2/3阶龙格-库塔-芬尔格算法ode45:运用组合的4/5阶龙格-库塔-芬尔格算法自变量值函数值用于设定误差限(缺省时设定相对误差10-3, 绝对误差10-6),命令为:options=odeset(’reltol’,rt,’abstol’,at), rt,at:分别为设定的相对误差和绝对误差. 15 1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成。

      2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组注意注意:选择一组状态变量 16注意1、建立、建立M文件函数文件函数 function xdot = fun(t,x,y) xdot = [x2(t);;x3(t);;…;;f(t, x1(t), x2(t),…xn(t))];;2、数值计算、数值计算(执行以下命令)(执行以下命令) [t,x [t,x1 1,x,x2 2,…,x,…,xn n]=ode45(‘]=ode45(‘funfun',[t',[t0 0,t,tf f],],[x[x1 1(0),x(0),x2 2(0),…,x(0),…,xn n(0)])(0)]) 17解解: 令 y1= x,y2= y1’= x’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); 2、取t0=0,tf=3000,输入命令: [T,Y]=ode15s('vdp1000',[0 3000],[2 0]); plot(T,Y(:,1),'-')3、结果如图 18解解 1、建立m-文件rigid.m如下: function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2);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的图形为“+”线. 19例例9 Van der pol 方程方程:令令 y1=x (t), y2 = x’(t) 该方程无解析解! 20(1)编写M文件 ( 文件名为 vdpol.m): function dy = vdpol(t,y); dy=zeros(2,1); dy(1)=y(2); dy(2)=(1-y(1)^2)*y(2)-y(1); % 或 dy=[y(2);(1-y(1)^2)*y(2)-y(1)];(2)编写程序如下:(vdj.m) [t,y]=ode23('vdpol',[0,20],[3,0]); y1=y(:,1); % 原方程的解 y2=y(:,2); plot(t,y1,t,y2, '--' ) % y1(t),y2(t) 曲线图 pause, plot(y1,y2),grid % 相轨迹图,即y2(y1)曲线 21 蓝色曲线 ——y(1);(原方程解) 红色曲线 ——y(2);计算结果 22 23例10 考虑Lorenz模型:其中参数β=8/3,σ=10,ρ=28解:1)编写M函数文件(lorenz.m); 2) 数值求解并画三维空间的相平面轨线; (ltest.m) 241、、 lorenz.mfunction xdot=lorenz(t,x)xdot=[-8/3,0,x(2);0,-10,10;-x(2),28,-1]*x;2、、ltest.mx0=[0 0 0.1]';[t,x]=ode45('lorenz',[0,10],x0);plot(t,x(:,1),'-',t,x(:,2),'*',t,x(:,3),'+')pauseplot3(x(:,1),x(:,2),x(:,3)),grid on 25图中,x1的图形为实线(蓝),x2的图形为“*” 线(绿),x3的图形为“+”线(红)。

      取[t0,tf]=[0,10]计算结果如下图:计算结果如下图: 26曲线呈震荡发散状三维图形的混沌状若自变量区间取[0,20]、[0,40],计算结果如下: 27观察结果: 1、该曲线包含两个“圆盘”,每一个都是由螺线形轨道构成某些轨道几乎是垂直地离开圆盘中一个而进入另一个 2、随着t的增加,x(t)先绕一个圆盘几圈,然后“跳”到另一个圆盘中绕第二个圆盘几圈,又跳回原来的圆盘 并以这样的方式继续下去,在每个圆盘上绕的圈数是随机的 281))x0=[0 0.1 0.1]‘;[t0,tf]=[0,30];解向量y2))x00=[0.01 0.11 0.11]‘;[t0,tf]=[0,30];解向量x y – x = (y1-x1,y2-x2,y3-x3)思考:该空间曲线与初始点x0的选择有关吗? 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.