Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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~

Risposta accettata

James Tursa
James Tursa il 9 Giu 2017
If I understand your equations correctly, simply
dx = x .* (alpha - a*x);
  2 Commenti
Choszit Lee
Choszit Lee il 10 Giu 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 il 10 Giu 2017
An error like that can be caused by using
ode45(MyFunc, .....)
instead of
ode45(@MyFunc, .....)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su 常微分方程 in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!