2013-10-05 34 views
0

正如標題所示,我想知道如何從Matlab ode中檢索二階導數。 我試圖模擬的系統由12個一階微分方程描述。如何從ode檢索加速度

讓我們來解釋一下:

... 

[T,Y] = ode113(@sixdofsolver,time,Y0,options,settings); 

T = 1700x1載體

Y = 1700x12矩陣

現在,如果我做的:

[dY] = sixdofsolver(T,Y,settings) 

DY = 12X 1矢量

我曾預計會有像Y這樣的大小相同的矩陣。

我在做什麼錯?

回答

2

你在正確的軌道上。您的集成功能sixdofsolver可能首先被設計用於Matlab的ODE解算器。這些函數在一個時間點(和一個單一的狀態值)評估函數,而不是在一定的時間範圍內。

您或者需要重寫您的sixdofsolver函數,以便它可以處理多於一次的時間,或者您需要創建基於此函數的新函數。換句話說,你需要矢量化整合功能。你可能有像y(1),y(2),...,y(12). Well, now the input state vector is a matrix so you need to use something like y(:,1), y(:,2), ..., y(:,12)這樣的變量。您可能需要執行其他操作,例如切換到元素明智的操作符。我無法幫助你從你提供的更多。

+0

謝謝。這正是我所擔心的......(這個sixdofsolver是相當長和複雜的,無論如何我會試着去管理如何重寫,如果我需要幫助,我會在這裏發佈代碼。)謝謝。 – SolidSnake