Help with a ode45 problem

1 visualización (últimos 30 días)
Esteban
Esteban el 1 de Dic. de 2012
Hi
I have the following function:
function f=matpendel(t,u,g,l,m,c)
f=[u(2)
-g/l*sin(u(1))-c/m*u(2)];
And I'm trying to plot this:
clf;
g=9.82; l=0.1; m=0.1; c=0.2; theta(0)=[10:30:130]*pi/180;
tspan=linspace(0,1,200);
for k=1:length(theta0)
u(0)=[theta0(k);0];
[t,U]=ode45(@(t,u)matpendel(t,u,g,l,m,c),tspan,u(0));
subplot(1,2,1), plot(t,U(:,1)), hold on
subplot(1,2,2), plot(U(:,1),U(:,2)), hold on
end
But I get the error Subscript indices must either be real positive integers or logicals. Does anybody know why?
  1 comentario
Jan
Jan el 1 de Dic. de 2012
The term "10:30:130" does not need additional square brackets. In fact, they only waste time, because this is a vector already.

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 1 de Dic. de 2012
Editada: Azzi Abdelmalek el 1 de Dic. de 2012
The error is in
theta(0)=[10:30:130]*pi/180;
do you mean
theta0=
  1 comentario
Esteban
Esteban el 1 de Dic. de 2012
Editada: Esteban el 1 de Dic. de 2012
Ah yes, it is true that I meant theta0 and not theta(0), thanks!
But I still get the same error...
Edit: I changed u(0) to u0 too, now it works. Thanks!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by