# Input argument for ode45 function type error

1 visualización (últimos 30 días)
Aleem Andrew el 7 de Nov. de 2021
Comentada: Star Strider el 7 de Nov. de 2021
I am trying to modify the following code.
tspan = [0 10];
x0 = 0;
[t,x] = ode45(@(t,x) (-4.76e+1*x^2 + 5.69e-9*x + 7.98e-2)/(1.67e+4*x + 1.12), tspan, x0);
plot(t,x,'b')
xlim([0 0.001])
The input argument to the ode45 function is directly typed in. If instead you write it as
tspan = [0 10];
x0 = 0;
f = (-4.76e+1*x^2 + 5.69e-9*x + 7.98e-2)/(1.67e+4*x + 1.12);
[t,x] = ode45(@(t,x) f, tspan, x0);
plot(t,x,'b')
xlim([0 0.001])
then there is an error, even though the type of the argument is the same. Can anyone explain how the argument can be input as a variable that stores the expression?
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Star Strider el 7 de Nov. de 2021
Yes.
Create it as an anonymous function at the outset —
tspan = [0 10];
x0 = 0;
f = @(t,x) (-4.76e+1*x^2 + 5.69e-9*x + 7.98e-2)/(1.67e+4*x + 1.12);
[t,x] = ode45(f, tspan, x0);
figure
plot(t,x,'b')
grid
xlim([0 0.001])
.
##### 4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
Aleem Andrew el 7 de Nov. de 2021
Thank you, I appreciate your help
Star Strider el 7 de Nov. de 2021
As always, my pleasure!
.

Iniciar sesión para comentar.

### Categorías

Más información sobre Symbolic Math Toolbox 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!

Translated by