![](/img/trans.png)
[英](python, matplotlib) how can I do differential in graph that isn't from equation?
[英]How do I solve a second order differential equation using Octave?
我是 Octave 的新手,我正在嘗試為我的項目求解以下方程式。 我找不到任何解決微分方程的直接指南。 有人可以演示如何解決嗎? 非常感謝您的幫助!
我正在嘗試 plot 對於具有給定初始 h、miu、r、theta、g、L 以及 h 和 theta wrt t 的導數的方程,h 隨時間變化的圖表。 這可能嗎? 如果是這樣,怎么辦?
我嘗試在給定條件下將方程式輸入 Octave,但似乎存在我無法識別的錯誤。
我對編碼也非常陌生,但我需要這個來完成我的項目
無論您將使用什么數值軟件,Octave 或其他軟件(不進行形式計算),第一步是將您的系統或 p 階 N 耦合常微分方程 (ODE) 轉換為 p*N 耦合 ODE 系統訂單1 。
這總是通過將中間導數設置為新變量來完成的。 那么對於你的系統
會變成
然后,使用 Octave,如doc lsode
中所述,您定義了一個 function say Xdot = dsys(X)
,它對該系統進行編碼。 X
是向量[h, theta, H, J]
, Xdot
是它們各自導數的返回向量,如一階 ODE 系統的右側表達式所定義。
因此, Xdot
的前 2 個元素將是微不足道的,只是Xdot=[X(3) X(4)...]
。
當然, dsys()
還必須使用參數M, g, m, µ, L
和r
。 據我了解,它們不能作為額外的 arguments 傳遞給dsys()
。 所以你必須在調用lsode
之前定義它們。
對於初始狀態,您必須定義已知初始值的向量X0=[h0, theta0, H0, J0]
。
然后必須定義要計算並獲取 X 值的遞增時間向量 >= 0。 例如, t = 0:100
。 0 必須是t
的第一個元素。
最后,調用Xt = lsode(@dsys, X0, t)
。 之后你應該得到
Xt(:,1)
是h(t)
的值Xt(:,2)
是theta(t)
的值Xt(:,3)
是H(t)=(dh/dt)(t)
的值Xt(:,4)
是J(t)=(dtheta/dt)(t)
的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.