码迷,mamicode.com
首页 > 其他好文 > 详细

刚性微分方程与非刚性的大概区分(自看,求指点)

时间:2018-08-05 20:27:20      阅读:5919      评论:0      收藏:0      [点我收藏+]

标签:求指点   方程组   总结   结果   指点   style   matlab   end   str   

(这里的内容是作为自己的一个粗略的总结,不确定是否正确,希望有大佬能够更明确的指出其中的错误,作出指导)

对于刚性和非刚性微分方程的区分,可以简单的转变为在将原方程转换为常微分方程组后,进行一个简单的系数判断:

例如:

y‘‘‘ - 3y‘‘ - y‘y = 0, y(0) = 0, y‘(0) = 0, y‘‘(0) = -1;

在这里可以设  y1 = y, y2 = y‘, y3 = y‘‘, 有

  y1‘ = y2,       y1(0) = 0,

  y2‘ = y3,       y2(0) = 1,

  y3‘ = 3y3 + y2y1,   y3(0) = -1,

这里可以简单判断出方程组的右侧系数矩阵值差异不大,得到的特征值差异随之也不大,可以简单判断为非刚性微分方程

MATLAB中解非刚性微分方程常用 ode45 ;

 

又例如:

  y‘‘ - 1000(1 - y^2)y‘ + y = 0, y(0) = 2, y‘(0) = 0;

在这里可以设y1 = y, y2 = y‘, 有

  y1‘ = y2,           y1(0) = 2,

  y2‘ = 1000(1 - y1^2)y2 - y1,  y2(0) = 0,

这里可以简单判断出方程组的右侧系数矩阵值差异较大,得到的特征值差异随之较大,可以简单判断为刚性微分方程

MATLAB中解刚性微分方程常用 ode15s , ode23s , ode23t , ode23tb ;

 

对于所有的初值问题解方程方法均有 solver(  ‘f( t, y )‘ , [t0 tend], y0 ) :

  --solver : 指代所有的方法调用;

  --f( t, y ) : 为M文件定义的微分方程 y‘ = f(x, y) 右端的函数, 即使用不到两个参数,也要保留两个参数,且返回的结果应是列向量;

  --[t0 tend] : 为参数中变量 x / t 的取值范围;

  --y0 : 为参数中 y 的初始值,要求为列向量

刚性微分方程与非刚性的大概区分(自看,求指点)

标签:求指点   方程组   总结   结果   指点   style   matlab   end   str   

原文地址:https://www.cnblogs.com/yanmingjiang/p/9426810.html

(0)
(3)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!