How to use ode45 to solve a system with many dimensions?

2 Ansichten (letzte 30 Tage)
Choszit Lee
Choszit Lee am 9 Jun. 2017
Kommentiert: Walter Roberson am 10 Jun. 2017
Hi there,
I meet a interesting question——How to simulate a system with 100 dimensions using ode45?
Obviously, it's impossible to write all equations as below:
dx(1)=x(1)*(α(1)-a(1,1)*x(1)-a(1,2)*x(2)...)
dx(2)=x(2)*(α(2)-a(2,1)*x(1)-a(2,2)*x(2)...)
...
dx(100)=x(100)*(α(100)-a(100,1)*x(1)-a(100,2)*x(2)...)
Does there exist any tricks to solve this questions?
Looking forward to any suggestions~

Akzeptierte Antwort

James Tursa
James Tursa am 9 Jun. 2017
If I understand your equations correctly, simply
dx = x .* (alpha - a*x);
  2 Kommentare
Choszit Lee
Choszit Lee am 10 Jun. 2017
Thank you for your answer~Yesterday I have tried to generate a function as below:
function dxdt = MyFunc(t,x)
global a alpha
dxdt = x.*(alpha-a*x);
end
Then run ode45(MyFunc, [0 100], [2 1]) in my main function, I gain a error: Not enough input arguments. However, when I use dxdt=@(t,x)[x.*(alpha-a*x)] instead, it works well...This really puzzles me.
Walter Roberson
Walter Roberson am 10 Jun. 2017
An error like that can be caused by using
ode45(MyFunc, .....)
instead of
ode45(@MyFunc, .....)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 常微分方程 finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!