解題指令群 > 求解 ODE
求解 ODE
您可以使用解題指令群與 odesolve 函數,在指定值域內求解滿足常微分方程式 (ODE) 的函數。
按一下以複製此運算式
以下的輸出函數是在值域 0 ≤ x ≤ 20 內求解:
在解題指令群中使用 ODE 時,必須注意下列條件約束:
運算子 - 在解題指令群中使用等於運算子求解 ODE。請勿使用比較運算子或不等式運算子。若要定義導數,請使用導數或微分運算子,例如 d/dxd2/dx2y'(x)y''(x)
初始與邊界條件 - 每個 n 階 ODE 必須有 n 個獨立等式條件約束:
初始值問題 - 單一初始點 a 處需要 y(x) 及其第一個 n − 1 階導數的值。
邊界值問題 - n 個條件約束必須指定初始點 a 或終點 b 處之 y(x) 及其導數的特定值。這些條件約束必須滿足 sbval 函數的輸入需求。當您提供邊界值條件時,函數 odesolve 會呼叫 sbval
無論何種情況,您在邊界條件中使用的端點都必須符合 odesolve 指令所指定的端點。PTC Mathcad 會檢查條件的類型與數目是否正確,若有錯誤還會傳回錯誤。
代數條件約束 - 您可以新增代數條件約束,例如 y(b) + z(b) = w(b)。解題指令群接著會包含額外的不明函數 w,您必須將其指定為 odesolve 中的輸出函數之一。
輸出 - 您必須將 odesolve 的輸出指派給函數名稱或函數名稱向量,而不提供引數。
這些函數的隱含引數是積分的變數:
解題法
視問題規模與使用的相關步距大小之不同,可能需要降低 TOL 值,才可取得適當的解。若 PTC Mathcadodesolve 報告有太多積分項,請嘗試這個方法。
求解的函數不得在積分區間內包含任何奇點,否則會產生不可靠的結果。
若求解在許多循環內具有周期行為的問題,會發生混淆現象。若要在結果中取得預期的頻率,請增加內插點數。
若要求解在最高階導數項數中非線性的 ODE,或者若要在程式迴圈中求解 ODE,請使用 rkfixed 或其他指令行 ODE 求解器之一。您也可以使用局部函數,在程式迴圈中指派參數化解題指令群的輸出。
這是否有幫助?