Je dois inverser une matrice carrée en Javascript avec l'algorithme de Gauss-Jordan. J'ai donc commencé par chercher des codes déjà faits mais je n'ai pas trouvé grand chose.... Ainsi je me suis dit que j'allais tester et contrôler sur scilab (je connais mieux) puis traduire en Javascript, mais voila, ça fais 2 jours que je m'arrache les cheveux sur mon code :
- Code: Tout sélectionner
//A=[2.2569,5.1648,6.3236,8.2658,7.1235;6.7854,8.2358,2.0325,1.0356,3.1589;5.3214,8.6896,9.3696,9.1689,6.1985;3.3256,4.1894,2.3212,1.3698,2.9698;4.1987,9.9785,7.3687,8.1698,7.1896]
A=[2,-1,0;-1,2,-1;0,-1,2]
function Minv=inverse(M)
l=size(M,1)
c=size(M,2)
Minv=eye(l,c)
disp(M)
for i=1:l
for j=1:c
Pmax=0
posmax=0
for k=1:c
if Pmaxj then
f=M(i,j)/M(i,i)
disp(f)
for k=j:c
Minv(i,k)=Minv(i,i)*f-Minv(i,k) // Transformation de la matrice en matrice diagonale
end
end
if i<j then
f=M(i,j)/M(i,i)
disp(f)
for k=j:c
Minv(i,k)=Minv(i,i)*f-Minv(i,k) // Transformation de la matrice en matrice diagonale
end
end
end
end
for i=2:l
f=M(1,1)/M(i,i)
for k=1:c
M(i,k)=M(i,k)*f // facteur pour la normalisation
end
end
coef=M(1,1)
for i=1:l
for j=1:c
Minv(i,j)=Minv(i,j)/coef // Normalisation
end
end
endfunction
Ainv=inverse(A)
disp(Ainv)
disp(inv(A))
Voila, je ne sais plus ou donner de la tête... Est ce que quelqu'un qui a l'habitude de faire cette opération peut m'aider svp?
