剛性微分方程與非剛性的大概區分(自看,求指點)


(這里的內容是作為自己的一個粗略的總結,不確定是否正確,希望有大佬能夠更明確的指出其中的錯誤,作出指導)

對於剛性和非剛性微分方程的區分,可以簡單的轉變為在將原方程轉換為常微分方程組后,進行一個簡單的系數判斷:

例如:

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 的初始值,要求為列向量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM