I keep getting errors when trying to use the ode 45 function to integrate an acceleration equation to determine vO vs. t, transferring all constants to the function using global variables.
Ältere Kommentare anzeigen
This is my main code:
clc
clear
f=3500;
cd=.6;
cf=3;
m0=600;
c=2;
d=0;
dN=0;
for t=0:0.1:5
vE=0;
m=m0-(c*t);
n=0;
v=0;
a=(f/m)-((cd/m)*v);
vE=vE+(a*.1);
fprintf('VEuler is %1.2f when t is %1.1f \n',vE,t)
vO=v+vE;
dN=((5+t)*((vO+vE)/2))+d;
end
fprintf('After initiating acceleration, the dragster has moved %1.2f meters\n',dN)
y0 = 0;
tspan=0:0.1:5;
[t,y]= ode45('fun',tspan,y0);
fprintf('\n t y\n');
tvalues=transpose(t);
fxvalues=transpose(fx);
With the function:
function fx=fun(t,y0)
global f cd cf m0 c;
fx=(((cf/m0-c.*t))*y0)-((cd/m0-c.*t).*y0.^2)+(f/m0-c.*t);
end
Matlab is telling me that it's returning a vector length of zero, an ode arguements error (odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options,varargin);)
and that there's an error in the ode function itself. I've explored the internet and tried several online solutions but none have worked.
1 Kommentar
madhan ravi
am 30 Nov. 2018
Bearbeitet: madhan ravi
am 30 Nov. 2018
please don't close the question that have an answer , thank you for understanding , see https://www.mathworks.com/help/matlab/math/parameterizing-functions.html , what's unclear?
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!