ode45 where odefun requires more parameters

 Respuesta aceptada

Star Strider
Star Strider el 25 de Dic. de 2014
I’m not exactly certain what you’re actually asking, since my interpretation of your question is covered in the ode45 documentation. You haven’t listed the code for your ‘odefun’, or described what you want to do, so I’m guessing here.
If I understand correctly, what you want to do is a common way of passing extra parameters to your ODE function.
To use it with ode45, you only pass the ODE solver the ‘t’ and ‘y’ variables:
[t,y] = ode45(@(t,y) odefun(t,y,a,b,c), tspan, ic);
Note that ‘a’, ‘b’, and ‘c’ have to exist in your workspace.

3 comentarios

Jordan Bai
Jordan Bai el 10 de Mzo. de 2021
Editada: Jordan Bai el 10 de Mzo. de 2021
Thanks, I've been looking for a solution for ages!
Forgive my ignorance, but what exactly does putting @(t,y) first do?
@(t,y) odefun(t,y,a,b,c)
This creates an anonymous function, with t and y as inputs. The values of the other variables are retrieved when the anonymous function is created:
y=1;
f=@(x) x+y;
y=3;
f(1)
ans = 2
Star Strider
Star Strider el 10 de Mzo. de 2021
Rik — Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 25 de Dic. de 2014

Comentada:

el 10 de Mzo. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by