0
我想用歐拉方法和RK4(龍格庫塔四階方法)求解四個一階ODE的系統。 方程:使用歐拉的四個ODES系統
#define F1(C2) C2
#define F2(C1,C3) k2/Da*C1*C3
#define F3(C4) C4
#define F4(C1,C3) b*k2/Db*C1*C3
這是我需要幫助的部分代碼:
for (x=start; x<=end; x+=h){
C1 = C1_0 + h * F1(C2);
C2 = C2_0 + h * F2(C1,C3);
C3 = C3_0 + h * F3(C4);
C4 = C4_0 + h * F4(C1,C3);
C1_0 = C1;
C2_0 = C2;
C3_0 = C3;
C4_0 = C4;
}
當循環到達所以從第一次計算它,它已經爲C1和C3值C4而不是等待下一步。所以這個方法全錯了。我想我會爲我的方程式需要功能,但我從來沒有這樣做過,所以如果任何人都可以更深入地解釋我,我將不勝感激。
後來我必須使用RK4來解決同一個系統,但是我猜如果我理解在這裏做什麼,它會是類似的。
謝謝。