百度文库- 让每个人平等地提升自我11 实验二:微分方程与差分方程模型Matlab 求解一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;[2] 熟悉 MATLAB软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程;[4] 熟悉离散 Logistic模型的求解与混沌的产生过程。二、实验原理1. 微分方程模型与MATLAB求解解析解用 MATLAB命令 dsolve( ‘eqn1’, ’eqn2’, ...) 求常微分方程(组)的解析解。其中‘ eqni' 表示第 i 个微分方程, Dny表示 y 的 n 阶导数 , 默认的自变量为 t 。( 1) 微分方程例 1求解一阶微分方程21ydxdy(1) 求通解输入:dsolve('Dy=1+y^2') 输出:ans = tan(t+C1) (2)求特解输入:dsolve('Dy=1+y^2','y(0)=1','x') 指定初值为 1,自变量为 x 输出:ans = tan(x+1/4*pi) 百度文库- 让每个人平等地提升自我22 例 2 求解二阶微分方程221()04(/ 2)2(/ 2)2 /x yxyxyyy原方程两边都除以2x ,得211(1)04yyyxx输入: dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') ans = - (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) + (exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2)) 试试能不用用 simplify函数化简输入 : simplify(ans) ans = 2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) ( 2)微分方程组例 3 求解df/dx=3f+4g; dg/dx=-4f+3g。(1)通解 : [f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g') f = exp(3*t)*(C1*sin(4*t)+C2*cos(4*t)) g = exp(3*t)*(C1*cos(4*t)-C2*sin(4*t)) 特解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1') f = exp(3*t)*sin(4*t) g = exp(3*t)*cos(4*t) 百度文库- 让每个人平等地提升自我33 数值解在微分方程 ( 组) 难以获得解析解的情况下,可以用Matlab 方便地求出数值解。格式为 : [t,y] = ode23('F',ts,y0,options) 注意:?微分方程的形式: y' = F(t, y),t 为自变量, y 为因变量(可以是多个,如微分方程组);?[t, y] 为输出矩阵,分别表示自变量和因变量的取值;?F 代表一阶微分方程组的函数名(m文件,必须返回一个列向量,每个元素对应每个方程的右端);?ts 的取法有几种,( 1)ts=[t0, tf] 表示自变量的取值范围,(2)ts=[t0,t1,t2,⋯,tf],则输出在指定时刻t0,t1,t2,⋯,tf处给出...