why does ode45 happen this index error?
Afficher commentaires plus anciens
I've been struggling with this program for a long time.
Is this ode45 being used incorrectly?
global d;
d=1;
tspan=[0;0.05];
xi=[1;2;pi];
vk=[3;5];
func=@(xi,vk) TwoWheel2(xi,vk);
[t,y]=ode45(func,tspan,0);
function dxi = TwoWheel2(xi,vk)
v1=speed(vk);
wk=toRadian(vk);
dxi = zeros(3,1);
dxi(1) = cos(xi(3)) * v1;
dxi(2) = sin(xi(3)) * v1;
dxi(3) = wk;
end
function u0=toRadian(vk)
global d;
vr=vk(1);
vl=vk(2);
u0=(vr-vl)/(2*d);
end
function v1=speed(vk)
vr=vk(1);
vl=vk(2);
v1=(vr+vl)/2;
end
>> testode
The index exceeds the number of array elements (1).
error: testode>speed (line 22)
vl=vk(2);
error: testode>TwoWheel2 (line 7)
v1=speed(vk);
error: testode>@(xi,vk)TwoWheel2(xi,vk) (line 4)
func=@(xi,vk) TwoWheel2(xi,vk);
error: odearguments (line 90)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
error: ode45 (line 115)
odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
error: testode (line 5)
[t,y]=ode45(func,tspan,0);
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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!