Borrar filtros
Borrar filtros

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

1 visualización (últimos 30 días)
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~

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 常微分方程 en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!