[Matlab科学计算] Matlab符号计算二:计算常微分方程解析解

1.基本概念

含有自变量x、未知的一元函数y(x)及其导数{y}'(x)的方程称为常微分方程。一般形式为:

                                                                        y^{m}(x)=F(x,y,{y}',...,y^{m-1})

它的求解就是寻找一个能够满足该微分方程的函数y=f(x)

        方程中函数最高阶导数y^{m}(x)的阶数m称为常微分方程的阶数。m阶常微分方程通解f(x)一般含有m个待定系数,给出边始条件可以求出 特解。

2.常微分方程的符号格式

1)用Dmy表示函数y=f(x)m阶导数,m阶常微分方程一般形式的符号格式为

                                                                           Dmy=F(x,y,Dy,D2y,...,D(m-1)y)

2)m阶常微分方程的m个边始条件的符号格式为

                                                                    y(x_{0})=y_{0},Dy(x_{0})=y_{1},...,D(m-1)y(x_{0})=y_{m-1}

3.使用函数dsolve说明

                                                                     [y1,y2,...,y12]=dsolve(a1,a2,...,a12)

1)每个输入参量a1,a2,...,a12包含三部分内容:微分方程、边始条件和界定的自变量,每部分都用单引号界定,两部分之间用逗号分隔,三部分顺序不可置换。微分方程部分不可以缺省。

2)若缺省部分或者全部“边始条件”,输出含有待定常数的微分方程通解。待定常数的数目等于缺省边始条件个数,默认用C1,C2等表示。

3)当“界定的自变量”缺省时,默认的自变量用字母“t”表示。

4)每条指令的输入参数ai最多有12组,因此可用于求解方程个数小于等于12的常微分方程组。

5)输出参量yi表示方程组的第i个解,求解一个常微分方程时可以省略。

4.计算举例

计算常微分方程

求解二阶常微分方程\frac{d^{2}y}{dx^{2}}+y=1-x^{2}

计算通解:

y=dsolve('D2y+y=1-x^2','x')
y =
 
C5*cos(x) + C6*sin(x) - x^2 + 3

计算特解:y(0)=0.2,{y}'(0)=0.5

y=dsolve('D2y+y=1-x^2','y(0)=0.2,Dy(0)=0.5','x')
y =
 
sin(x)/2 - (14*cos(x))/5 - x^2 + 3

画出特解函数曲线图:ezplot

ezplot('sin(x)/2 - (14*cos(x))/5 - x^2 + 3',[-3 3])

计算常微分方程组

\left\{\begin{matrix} \frac{du}{dt}=3u-2v\\ \frac{dv}{dt}=v=2u \end{matrix}\right.

计算通解:

[u,v]=dsolve('Du=3*u-2*v,Dv=2*u-v')
u =
 
2*C9*exp(t) + C10*(exp(t) + 2*t*exp(t))
 
 
v =
 
2*C9*exp(t) + 2*C10*t*exp(t)

计算特解:u(0)=1,v(0)=0

[u,v]=dsolve('Du=3*u-2*v,Dv=2*u-v','u(0)=1,v(0)=0','s')
u =
 
exp(s) + 2*s*exp(s)
 
 
v =
 
2*s*exp(s)

猜你喜欢

转载自blog.csdn.net/zhwzhaowei/article/details/94564452
今日推荐