Error when using the function ODE45

2 Ansichten (letzte 30 Tage)
Stephanie Velasco
Stephanie Velasco am 24 Feb. 2017
Bearbeitet: Walter Roberson am 25 Feb. 2017
I have written to the following function to solve a differential equation using ODE 45, but i always seem to come across an error saying the "Inputs must be floats, namely single or double.". I am trying to solve for dt/dx,t(x)= 1/(a*x^(0.6)-b*x)), to find the time. but i get an error every time. since I have x in the equation idk what I'm doing wrong.
script
x_interval=[0.5 10];
t0 = [0];
[x,t] = Ode45(diff_,x_interval,t0);
function dt/dx = diff_(x,t)
a = 10;
b=0.5;
syms x;
t = (1/(a*x^(0.6)-b*x));
dt_dx =t;
end
  2 Kommentare
John D'Errico
John D'Errico am 24 Feb. 2017
How is this question significantly different from the last time you asked it, asking for help on solving the same question? Please stop making multiple postings for the very same problem.
Stephanie Velasco
Stephanie Velasco am 25 Feb. 2017
I wasn't sure if this one was clear enough, Im sorry about that. Have a blessed day

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

John Chilleri
John Chilleri am 25 Feb. 2017
Hello,
You just need to change a few things:
Script - missing an @ symbol.
x_interval=[0.5 10];
t0 = 0;
[x,t] = ode45(@diff_,x_interval,t0);
Function - don't use sym and you have a / in the name.
function dt_dx = diff_(x,t)
dt_dx = (1/(10*x^(0.6)-.5*x));
end
I simplified your function, but you can leave it as,
function dt_dx = diff_(x,t)
a = 10;
b=0.5;
t = (1/(a*x^(0.6)-b*x));
dt_dx =t;
end
Hope this helps!

Weitere Antworten (0)

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by