其中向量
為狀態變數
構成的向量,即
,常稱為系統的狀態向量,n稱為系統的階次,而
為任意函式數,t為時間變數,這樣就可以採用數值方法求解常微分方程組了。另外任意高階微分方程都可以通過變數替換變成一階微分方程組,這裡不再贅述.
尤拉法在 時刻系統狀態向量的值為
,若選擇計算步長h,則可以寫出在
時刻系統狀態向量的值為
這樣,用迭代的方法可以由給定的初值問題逐步求出在所選擇的時間段t∈[0,t]內各個時刻
處的原問題數值解。提高數值解精度的一種顯然的方法是減小步長h的值。然而,並不能無限制地減小h的值,這主要有兩條原因:
(1)減慢計算速度.因為對選定的求解時間而言,減小步長就意味著增加在這個時間段內的計算點數目,故計算速度減慢;
(2)增加累積誤差因為不論選擇多小的步長,所得出的數值解都將有個捨入誤差,減小計算步長則將增加計算的次數,從而使得整個計算過程的捨入誤差的疊加和傳遞次數增多,產生較大的累積誤差。
四階龍格庫塔法(runge-kutta)
3. adams演算法
ode求解器ww2.mathworks.cn
求解非剛性微分方程 ,ode45,ode23,ode15s,ode223等等,用啊基本類似,以ode45為例說明.
語法
[t,y] = ode45(odefun,tspan,y0)
[t,y] = ode45(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode45(odefun,tspan,y0,options)
sol = ode45(___)
說明示例
[t,y] = ode45(odefun,tspan,y0)(其中 tspan = [t0 tf])求微分方程組 y′=f(t,y) 從 t0 到 tf 的積分,初始條件為 y0。解陣列 y 中的每一行都與列向量 t 中返回的值相對應。
所有 matlab® ode 求解器都可以解算 y′=f(t,y) 形式的方程組,或涉及質量矩陣 m(t,y)y′=f(t,y) 的問題。求解器都使用類似的語法。ode23s 求解器只能解算質量矩陣為常量的問題。ode15s 和 ode23t 可以解算具有奇異質量矩陣的問題,稱為微分代數方程 (dae)。使用 odeset 的 mass 選項指定質量矩陣。
ode45 是乙個通用型 ode 求解器,是您解算大多數問題時的首選。但是,對於剛性問題或需要較高準確性的問題,其他 ode 求解器可能更適合。有關詳細資訊,請參閱選擇 ode 求解器。
[t,y] = ode45(odefun,tspan,y0,options) 還使用由 options(使用 odeset 函式建立的引數)定義的積分設定。例如,使用 abstol 和 reltol 選項指定絕對誤差容限和相對誤差容限,或者使用 mass 選項提供質量矩陣。
[t,y,te,ye,ie] = ode45(odefun,tspan,y0,options) 還求 (t,y) 的函式(稱為事件函式)在何處為零。在輸出中,te 是事件的時間,ye 是事件發生時的解,ie 是觸發的事件的索引。
對於每個事件函式,應指定積分是否在零點處終止以及過零方向是否重要。為此,請將 'events' 屬性設定為函式(例如 myeventfcn 或 @myeventfcn),並建立乙個對應的函式:[value,isterminal,direction] = myeventfcn(t,y)。有關詳細資訊,請參閱 ode 事件位置。
sol = ode45(___) 返回乙個結構體,您可以將該結構體與 deval 結合使用來計算區間 [t0 tf] 中任意點位置的解。您可以使用上述語法中的任何輸入引數組合。
二階偏微分方程組 龍格庫塔法 四階龍格庫塔法
建議閱讀原文 預備知識中點法解常微分方程 組 龍格庫塔法是一類數值解微分方程的演算法,其中較常見的是四階龍格庫塔法 這裡不進行推導,僅僅給出公式如下 其中 由以上兩式,不難把該演算法拓展到方程組的情況 對於 元微分方程組 我們可以把該式記為向量函式的形式 現在我們僅需要把式 1 和 式 2 中的所有...
龍格庫塔法求微分方程
首先,我們可以知道一階龍格庫塔法的表示式 上述式子可以改寫成如下式子 這裡我們可以看成k是在步長為h情況下,函式的增長量,f x,y 為函式y的斜率。這個式子其實比較好理解的。然後我們來看二階龍格庫塔的推導過程 二階情況下一般表示式中就只有k1和k2了,二階龍格庫塔我們可以看成是一階表示式的乙個變形...
數理方程 二階線性偏微分方程的分類和標準式
更新 9 apr 2016 對於任意的二元二階齊次線性偏微分方程,a dfrac 2a dfrac a dfrac b 1 dfrac b 2 dfrac cu 0 求特徵方程 確定分類 化為標準型的方法為 1.截 只關心其中的二階部分 a dfrac 2a dfrac a dfrac 0 2.換 ...