1 / 19

实验十七 微分方程和微分方程组的求解

实验十七 微分方程和微分方程组的求解. 一、实验目的. 熟悉 MATLAB 软件中关于求解微分方程和微分方程组的各种命令,掌握利用 MATLAB 软件进行微分方程和微分方程组的求解。. 二、相关知识. 在 MATLAB 中,由函数 dsolve() 解决微分方程(组)的求解问题,其具体格式如下: X=dsolve(‘eqn1’,’eqn2’,…) 函数 dsolve 用来解符号微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。

sibyl
Télécharger la présentation

实验十七 微分方程和微分方程组的求解

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实验十七 微分方程和微分方程组的求解

  2. 一、实验目的 • 熟悉MATLAB软件中关于求解微分方程和微分方程组的各种命令,掌握利用MATLAB软件进行微分方程和微分方程组的求解。

  3. 二、相关知识 • 在MATLAB中,由函数dsolve()解决微分方程(组)的求解问题,其具体格式如下: • X=dsolve(‘eqn1’,’eqn2’,…) • 函数dsolve用来解符号微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。 • 例1:求解微分方程 的MATLAB程序为:dsolve('Dy=1/(x+y)','x'),注意,系统缺省的自变量为t,因此这里要把自变量写明。

  4. 二、相关知识 • 结果为:-lambertw(-C1*exp(-x-1))-x-1 • 其中:Y=lambertw(X)表示函数关系Y*exp(Y)=X。 • 例2:求解微分方程 。 • 解:先把方程改写为 • 例1:求解微分方程 的MATLAB程序为: dsolve('Dy=1/(x+y)','x'),注意,系统缺省的自变量为t,因此这里要把自变量写明。

  5. 结果为:-lambertw(-C1*exp(-x-1))-x-1 • 其中:Y=lambertw(X)表示函数关系Y*exp(Y)=X。 • 例2:求解微分方程 。 • 解:先把方程改写为 • 然后编写MATLAB程序: • Y2=dsolve('D2y-Dy^2/y=0', 'x') • 结果为: • Y2 = exp(C1*x)*C2

  6. 例3:求微分方程组 • 通解的MATLAB程序为: • [X,Y]=dsolve('Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t)','t') • 然后编写MATLAB程序: • Y2=dsolve('D2y-Dy^2/y=0', 'x') • 结果为: • Y2 = exp(C1*x)*C2

  7. 例3:求微分方程组 • 通解的MATLAB程序为: • [X,Y]=dsolve('Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t)','t') • 例4:求微分方程组 • 特解的MATLAB程序为: • [X,Y]=dsolve('Dx+2*x-Dy=10*cos(t), Dx+Dy+2*y=4*exp(-2*t)','x(0)=2','y(0)=0')

  8. 以上这些都是微分方程的精确解法,也称为微分方程的符号解。我们知道,有大量的微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:以上这些都是微分方程的精确解法,也称为微分方程的符号解。我们知道,有大量的微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为: • 例4:求微分方程组 • 特解的MATLAB程序为: • [X,Y]=dsolve('Dx+2*x-Dy=10*cos(t), Dx+Dy+2*y=4*exp(-2*t)','x(0)=2','y(0)=0')

  9. 以上这些都是微分方程的精确解法,也称为微分方程的符号解。我们知道,有大量的微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:以上这些都是微分方程的精确解法,也称为微分方程的符号解。我们知道,有大量的微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为: • [T,Y]=solver(odefun,tspan,y0) • 该函数表示在区间tspan=[t0,tf]上,用初始条件y0求解显式常微分方程 。 • solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。我们列表说明如下:

  10. [T,Y]=solver(odefun,tspan,y0) • 该函数表示在区间tspan=[t0,tf]上,用初始条件y0求解显式常微分方程 。 • solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。我们列表说明如下:

  11. odefun为显式常微分方程 中的 • tspan为求解区间,要获得问题在其他指定 • 点 上的解,则令 • (要求 单调), • y0初始条件。

  12. 例5:求解微分方程 , , • 的MATLAB程序如下: • fun=inline('-2*y+2*x*x+2*x');[x,y]=ode23(fun,[0,0.5],1) • 结果为: • x = 0,0.0400,0.0900,0.1400,0.1900,0.2400,0.2900,0.3400,0.3900,0.4400,0.4900,0.5000 • y = 1.0000,0.9247,0.8434,0.7754,0.7199,0.6764,0.6440,0.6222,0.6105,0.6084,0.6154,0.6179

  13. 例6:求解微分方程的 • 解,并画出解的图形。 • 分析:这是一个二阶非线性方程,用现成的方法均 • x = 0,0.0400,0.0900,0.1400,0.1900,0.2400,0.2900,0.3400,0.3900,0.4400,0.4900,0.5000 • y = 1.0000,0.9247,0.8434,0.7754,0.7199,0.6764,0.6440,0.6222,0.6105,0.6084,0.6154,0.6179

  14. 例6:求解微分方程的 • 解,并画出解的图形。 • 分析:这是一个二阶非线性方程,用现成的方法均不能求解,但我们可以通过下面的变换,将二阶方程化为一阶方程组,即可求解。 • 令: , , ,则得到:

  15. 接着,编写vdp.m如下: • function fy=vdp(t,x) • fy=[x(2);7*(1-x(1)^2)*x(2)-x(1)]; • 再编写m文件sy7_6.m如下: • 分析:这是一个二阶非线性方程,用现成的方法均不能求解,但我们可以通过下面的变换,将二阶方程化为一阶方程组,即可求解。 • 令: , , ,则得到:

  16. 接着,编写vdp.m如下: • function fy=vdp(t,x) • fy=[x(2);7*(1-x(1)^2)*x(2)-x(1)]; • 再编写m文件sy7_6.m如下: • y0=[1;0] • [t,x]=ode45(@vdp, • [0,40],y0); • y=x(:,1);dy=x(:,2); • plot(t,y,t,dy)

  17. 三、实验内容 • 1.利用MATLAB求常微分方程的初值问题 • , 的解。 • 2.利用MATLAB求常微分方程的初值问题 • , , 的解。 • 3.利用MATLAB求微分方程的解。 • 4.利用MATLAB求微分方程组 • 的特解。

  18. 5.求解微分方程 , , • , 的特解,并作出解函数的曲 • 线图。 • 6.完成实验报告。

More Related