0

我有一個ODE:MATLAB:如何求解高維非線性ODE?

X」 = -x + F(X)

看起來很簡單,但是,x是100維即

X = [X 1, ...,X100]

此外,

音響(X)= LN(XI)/(LN(X1)+ ... + LN(×100))

其中,i是1和100和F(X)= [F1(間X),...,F100(x)]的

在MATLAB的網站,它說我應該先創建一個功能:

enter image description here

但我怎麼能這樣做呢?我有100個變量,所有的變量都通過高度非線性函數進行耦合。

任何幫助,非常感謝!

回答

1

功能可以利用MATLAB的矢量能力,因爲,從ode45 documentation中,「功能dydt = odefun(t,y),一個標量t和列向量y,必須返回一個列向量dydt」。所以,你可以odefun被簡單地表示爲

function dxdt = odefun(~,x) 
    logX = log(x); 
    dxdt = -x + logX/sum(logX); 
end 

,讓ode45,或其他適當的整合,處理其餘部分。