簡體   English   中英

如何從 Matlab 中的 ode45 獲取特定 t 值的 y 和 y' 值?

[英]How do I get the values of y and y' for specific values of t from ode45 in Matlab?

我必須解決一個二階微分方程,我特別需要在最終時間點 y 的一階導數的值。 我的代碼如下:

[T Y]=ode45(@(t y)vdp4(t,y,0.3),[0 1],[0.3/4,((3*0.3)^0.5)/2]);

我知道輸出將包含 ode45 評估函數的值。 要獲得特定時間值處的 y 值,建議在MATLAB 文檔中提供兩個以上的時間點。 我也是這樣做的。

tspan=[0:0.01:1]
[T Y]=ode45(@(t y)vdp4(t,y,0.3),tspan,[0.3/4,((3*0.3)^0.5)/2]);

T 向量仍然沒有從 0 到 1 的所有值(最后一個值為 0.39)。 這尤其發生在多次執行 ode45 函數之后。 我在MATLAB 文檔中發現了其他內容:使用“sol”結構來為特定的 t 值計算值。 這是正確的方法嗎? 作為參考,我的微分方程在以下函數中。

function dy = vdp4(t,y,k)

dy = zeros(2,1);    % a column vector

dy(1)=y(2);
dy(2)=(y(2)^2-2*t*y(2)+2*y(1))/k+2;

end

編輯:我提供了參數值。 它現在應該是可執行的。

嘗試繪制您的解決方案,您將找到答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM