Error when using the function ODE45
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Stephanie Velasco
 el 24 de Feb. de 2017
  
    
    
    
    
    Editada: Walter Roberson
      
      
 el 25 de Feb. de 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 comentarios
  John D'Errico
      
      
 el 24 de Feb. de 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.
Respuesta aceptada
  John Chilleri
      
 el 25 de Feb. de 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!
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


