Métalocif le 19/05/2013 à 14:48
Ahah, je suis de retour !
Une fois les partiels passés, je posterai sans doute quelques uns de mes programmes récents. En attendant...
Je cherche à créer un programme pour étalonner un système, c'est à dire écrire ce système :
a1x + b1y + c1z = d1
a2x + b2y + c2z = d2
a3x + b3y + c3z = d3
sous la forme :
a1x + b1y + c1z = d1
0 + b2'y + c2'z = d2'
0 + 0 + c3'z = d3'
en soustrayant la première ligne aux autres pour annuler x, pour en soustrayant la deuxième aux autres pour annuler y,... afin de le résoudre plus facilement.
J'ai donc pensé à mettre le système (de dimensions variables) sous la forme d'une matrice et d'utiliser la fonction *row+, qui fait exactement ce dont j'ai besoin. Curieusement, ça ne marche pas

, donc j'aurais besoin de votre aide.
Code
:ClrHome
:Input"NB D'INCONNUES?",A
:Delvar [J] Delvar I Delvar J
:{A,A+1->dim([J]
:For(J,1,A
: For(I,1,A+1
: ClrHome
: Input"COEFF.?",B //J'ai oublié comment afficher un compteur dans un input...
: B->[J](J,I
: End
:End
:Disp [J]
:For(I,2,A
: *row+(-[J](I,1)/[J](1,1),[J],I,1 //On soustrait la ligne 1 à la ligne actuelle en multipliant la ligne 1 de telle sorte que a1=-a2
:End
:Pause
:ClrHome
:Disp [J]
Je n'ai codé que la première étape de l'étalonnement. L'erreur est que la matrice ne change pas : le deuxième Disp affiche la même chose que le premier...
Merci d'avance pour votre aide,
Métalocif