Resoudre un système différentiel du second ordre

Fermé
pbpbpb - 25 janv. 2013 à 21:37
Bonjour,

Je cherche à résoudre le système différentiel du second ordre suivant

M * y'' + K * y = 0

Avec M et K des matrice 2x2. Voici ce que j'écris dans un premier fichier :
E=21000000;
L=100e-3;
h=25e-3;
l=1;
S=L*h;
V=S*l;
rho=7.8;
m=rho*V;


K=E*S/l*[1,-1;-1,1];
M=m/6*[2,1;1,2];
global M K



deltat= [0 10];
yinit=[0 0.25];
[t,y]=ode45(@oscillateur,deltat, yinit);


et dans le second fichier

function dy=oscillateur(t,y)

global M K
dy(:,1)=y(:,2);
dy(:,2)=-inv(M)*K*y(:,1);
end


Je reçois alors le message d'erreur suivant :

??? Attempted to access y(:,2); index out of bounds because size(y)=[2,1].

Error in ==> oscillateur at 4
dy(:,1)=y(:,2);

Error in ==> odearguments at 111
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

>>


D'où ma question : commenut faire ?