簡體   English   中英

Matlab:使用匿名函數求解二階ODE

[英]Matlab: Solve 2nd order ODE using anonymous function

用matlab解決下面的ODE

在此處輸入圖片說明

t = 0:.01:20;
x0 = [0 0]';
xdot = @(t,x) [0 1; 0 0] * x;
ode45(@(t,x) xdot(x(1), x(2)),t,x0)

我收到此錯誤:

使用odearguments時出錯(第91行)@(T,X)XDOT(X(1),X(2))必須返回列向量。

您的x02 by 1矩陣,請在函數句柄中對其進行精確調整

xdot = @(t,x) [0 1; 0 0] * x; ---> xdot = @(t,x) [0 1; 0 0] * [x(1);x(2)];

因為xdot已經被定義為一個函數,所以您不需要@ode45傳遞它

代碼如下

t = 0:.01:20;
x0 = [0 0]';
xdot = @(t,x) [0 1; 0 0] * [x(1);x(2)];
ode45(xdot,t,x0)

暫無
暫無

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

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