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,或其他适当的整合,处理其余部分。