【matlab】微分方程建模基础讲解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u011956367/article/details/97815637

tips:

需要有高等数学知识基础

1.求微分方程的解析解

matlab命令:

dsolve(‘方程1’, ‘方程2’,…‘方程n’, ‘初始条件’, ‘自变量’) 

例如:d²y/dx²=0,对应表达式为D2y=0。

exm:求通解

dsolve('Du=1+u^2','t')

exm:方程组情况

[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')
xyz分别保存三个未知数的通解

exm:求特解

 y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')

2.求微分方程的数值解

  • 将高阶方程转化为一阶方程组。
  • 建立相应的函数文件。 
  • 调用求解函数solver(ode23、ode45等)。

注:

  1. 在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成。
  2. MATLAB提供了7个常微分方程求解器(solver)分别是ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,其中前3个适用于求解非刚性(Nonstiff)问题,后4个适用于刚性问题。
  3. 刚性:设有一阶常系数线性微分方程组y’=Ay+f,如果它的Jacobian矩阵的特征值相差十分悬殊;简单点说,就是系统包含多个相互作用但变化速度相差十分悬殊的子过程。

例题

猜你喜欢

转载自blog.csdn.net/u011956367/article/details/97815637
今日推荐