suivant: Autre algorithme
monter: Résolution d'un système d'équations
précédent: L'algorithme
Table des matières
Index
Voici le programme de résolution d'un système linéaire :
//Veq vecteur des equations
//v vecteur de variables
//renvoie le vecteur solution
linsolv(Veq,v):={
local A,B,j,k,l,deq,d,res,ll,rep;
d:=size(v);
deq:=size(Veq);
//A est la matrice du systeme +le 2nd membre
A:=syst2mat(Veq,v);
//B matrice reduite de Gauss-jordan
B:=rref(A);
res:=v;
//ll ligne l de B
ll:=makelist(0,0,d);
for (l:=0; l<deq;l++){
for (k:=0;k<d+1;k++){
ll[k]:=B[l][k];
}
j:=l;
while (ll[j]==0 && j<d){
j:=j+1;
}
//si (j==d and ll[d]==0)
//ll=ligne de zeros on ne fait rien
if (j==d and ll[d]!=0){
// pas de sol
return [];
}
else {//la sol res[j] vaut rep/ll[j]
if (j<d) {
rep:=-ll[d];
for (k:=j+1;k<d;k++) {
rep:=rep-ll[k]*v[k];
}
res[j]:=rep/ll[j];
}
}
}
return res;
}
Documentation de giac écrite par Renée De Graeve