Bonjour je suis en 1ere année d'école d'ingénieur et j'ai un projet à mener sur la résolution d'équation différentielle matricielle.
Voici mon équation : My''(t)+Dy'(t)+Ky(t)=x(t) , y(0)=yo et y'(0)=yo' où M,D,K sont des matrices carrées nxn, et x et y des vecteurs n
Pour résoudre cela, comme d'habitude il faut passer à un nouveau systeme, qui est le suivant :
u'(t)=Au(t)+Bx(t), u(0)=uo, y(t)=Cu(t), où A,B,C sont définis par le calcul, et u=(y,y') et uo=(yo,yo')
Donc pour résoudre mon problemem sous matlab, ce probleme me poser quelques soucis ..
En effet definir les matrices A,B,C est assez simple.
Mais j'ai deux optiques pour la résolution, soit je dois programmer le résultat qui est
y(t)=C.exp(At).uo + integrale de 0 à t de (h(t-s).x(s)ds)
ce qui me pose probleme dans ce cas là et ma fonction h(t-s). Je ne vois pas comment calculer avec matlab l'integrale sachant que j'integre entre 0 et t et ma fonction est definie par h(t-s).x(s).souci au niveau des parametres.mais en plus je ne sais pas comment faire pour que l'utilisateur donne la fonction x(t).car pour M,D,K c'était des matrices réelles, et là c'est un vecteur de fonction, et il n'est pas possible que l'utilisateur entre x(t)=(sin(t),cos(t))
Sinon j'ai une seconde méthode qui serait donc de considérer mon équation u'(t)=Au(t)+Bx(t) et de la résoudre comme une équation du premier ordre ..et là encore le probleme de ma fonction x(t) me pose un souci.
Je cherche donc comment je pourrais arriver a résoudre mon probleme de cette fonction x(t) ou alors de calculer l'intégrale.
Mon code, incorrect jusqu'a présent est le suivant
%Programme : Resolution d'une equation differentielle d'ordre deux avec second membre.
%Demander à l'utilisateur les matrices qu'il doit saisir
disp ('Resolution de M.y""+D.y"+K.y=X')
disp('Donner les matrices M, D , K et X')
%M=input('Matrice M= ')
%D=input('Matrice D= ')
%K=input('Matrice K= ')
%X=input('Matrice X= ')
disp('Donner les valeurs initiales du systeme : yo et dyo')
%YO=input('Matrice yo= ')
%DYO=input('Matrice dyo= ')
M=[1 2;3 4];
D=[5 6;7 8];
K=[9 10;11 12];
X=[1 4;5 7];
YO=[1 4;2 5];
DYO=[3 4;4 4];
for t=0:10
%Creer les nouvelles matrices A,B,C et Uo
n=size(M);
I=eye(n);
O=zeros(n);
M1=inv(M);
A=[O I ; -M1*K -M1*D];
B=[O ; M1];
C=[I O];
Uo=[YO;DYO];
%Creer la fonction H que l'on integrera par la suite
Z=t.*A
exp=expm(Z)
H=C*exp*B
%Creer le premier terme de la solution
Y1(t)=C*exp*Uo
%Integrer la fonction H*X
sum1=0;
sum2=0;
for i=0:t
pas=(s(i)+s(i+1))/2;
sum1=sum1+H(pas)
sum2=sum2+H(s(i))
end
Y2(t)=(H(0)+H(t)+4*sum1+2*sum2 )/6
Y(t)=Y1(t)+Y2(t)
end
Merci beaucoup pour l'aide qui pourra m'etre apporté
-----