下载此文档

用 Matlab 求解微分方程.ppt


文档分类:高等教育 | 页数:约28页 举报非法文档有奖
1/28
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/28 下载此文档
文档列表 文档介绍
用 Matlab 求解微分方程
借助 Matlab 软件,可以方便地求出微分方程(组)的解析解和数值解。
微分方程(组)的解析解
求微分方程(组)解析解的命令为
dsolve(‘eqn1’, ‘eqn2’, ..., ‘x’)
其中“eqni”表示第 i 个方程,“x”表示微分方程(组)中的自变量,默认时自变量为 t。此外,在“eqni”表示的方程式中,用 D 表示求微分,D2、D3 等表示求高阶微分,任何 D 后所跟的字母表示因变量。
例 求解一阶微分方程 dy/dx = 1 + y2。
求通解
输入:dsolve(‘Dy=1+y^2’, ‘x’)
输出:ans = tan(x+C1)
求特解
输入:dsolve(‘Dy=1+y^2’, ‘y(0)=1’, ‘x’)
输出:ans = tan(x+1/4*pi)
例 求解下列微分方程的通解及 y(0) = 0 和
y (0) = 15 条件下的特解
求通解
输入:y=dsolve('D2y+4*Dy+29*y=0', 'x')
输出:y = C1*exp(-2*x)*sin(5*x)+C2*exp(-2*x)*cos(5*x)
求特解
输入:y=dsolve('D2y+4*Dy+29*y=0', 'y(0)=0, Dy(0)=15', 'x')
输出:y = 3*exp(-2*x)*sin(5*x)
例 求解下列微分方程组
求通解
方式一
输入:
[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 = C2*exp(-t)+C3*exp(2*t)
y = C2*exp(-t)+C3*exp(2*t)+exp(-2*t)*C1
z = C3*exp(2*t)+exp(-2*t)*C1
方式二
输入:[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 = C2/exp(t)+C3*exp(t)^2
y = C2*exp(-t)+C3*exp(2*t)+exp(-2*t)*C1
z = C3*exp(2*t)+exp(-2*t)*C1
求特解
输入:[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',
'x(0)=0', 'y(0)=1', 'z(0)=2', 't');
x=simple(x) % 将x化简
y=simple(y)
z=simple(z)
输出:x = exp(2*t)-exp(-t)
y = exp(2*t)-exp(-t)+exp(-2*t)
z = exp(2*t)+exp(-2*t)
微分方程(组)的数值解
事实上,能够求得解析解的微分方程或微分方程组少之又少,多数情况下需要求出微分方程(组)的数值解。
Matlab中求微分方程数值解的函数有五个:ode45,ode23,ode113,ode15s,ode23s。调用格式为
[t, x] = solver (‘f’, ts, x0, options)
需要特别注意的是:
① solver 可以取以上五个函数之一,不同的函数代表不同的内部算法:ode23 运用组合的 2/3 阶龙格—库塔—费尔贝算法,ode45 运用组合的 4/5 阶龙格—库塔—费尔贝算法。通常使用函数 ode45;
② f 是由待解方程写成的m文件的文件名;
③ ts=[t0, tf],t0、tf为自变量的初值和终值;
④ x0为函数的初值;

用 Matlab 求解微分方程 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数28
  • 收藏数0 收藏
  • 顶次数0
  • 上传人夜无眠
  • 文件大小239 KB
  • 时间2018-10-09
最近更新