Méthode de Newton Raphson

Fermé
manaliac Messages postés 3 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 18 mai 2010 - 22 avril 2009 à 14:25
Bonjour,

je souhaiterai resoudre l'equation suivante : |M|d²q/dt² + [C]dq/dt+[K]q= F(balourd + pesanteur)

ou M,K et C sont des matrices 8*8 dans une base modale telle que : X=phi*q

j'ai effetué ensuite la méthode des trapèzes et j'ai obtenu finalement le système suivant :

((4|M|/ot²)+2|C|/ot+|K|)*q1=|M|*(4*q0/ot²+4*dq0/ot+d²q0) + |C|*(2q0/ot+dq0)+f

avec: ot: pas de temps ( t1=t0+ot)

q0 : deplacement à l'instant t q1=deplacement à t+ot
dq0:vitesse à l'instant t " "
d²q0: acceleration à l"instant t " "

donc voilà ce que j'ai fait :

v=(2*%pi*10000)/60; // vitesse de rotation
// variation de l'accélération du rotor à l'instant initial (conditions initiales)

t_initial=0;
F_b=m_b*v^2*[cos(v*t_initial);sin(v*t_initial);0;0;cos(v*t_initial);sin(v*t_initial);0;0];

Y1=F_b+F_p; //vecteur balourd et pesanteur

q02=inv([M])*(Y1-[C]*q01-[K]*q00)

for t=0:dt:(2*%pi)/v

q10=q00;
q11=-q01 + (2/dt)*(q10-q00)
q12=-q02+(2/dt)*(q11-q01)

// resolution :

dq10=inv[((4*[M])/(dt^2)+(2/dt)*[C]+[K])] *(F_p+F_b-[M]*q12-[C]*q11-[K]*q10)
q10=q10+dq10

q11=--q01 + (2/dt)*(q10-q00)
q12=-q02+(2/dt)*(q11-q01);

if (abs(dq10)/abs(q10))< 0.001 // inférieur à epsilon
q00=q10;
q01=q11;
q02=q12;
printf("c juste!!!")
else
printf("c faux!!!")

end
end


qu'en pensez vous?? je suis vraiment perdue parce que la programmation c pas mon fort!!!
pls aidez moi