Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
Choszit Lee
Choszit Lee le 9 Juin 2017
Commenté : Walter Roberson le 10 Juin 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~

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 常微分方程 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!