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.
Afficher commentaires plus anciens
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 commentaire
madhan ravi
le 30 Nov 2018
Modifié(e) : madhan ravi
le 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?
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Ordinary Differential Equations dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!