Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 9850
Réponses : 37
Type : discussion
Etat : réponses autorisées

Résolution d'un système à trois inconnues.

Sangohan38 le 22/06/2009 à 18:38
Je m'ennuyais aujourd'hui donc j'ai eu l'idée de ce petit programme qui résoud les systèmes d'équations à trois inconnues:

Code
ClrHome
{3,3}->dim([A]
{3,1}->dim([B]
dim([B]->dim([C]
For(E,1,3
ClrHome
Disp "EQUATION  :","","AX+BY+CZ=D",""
Output(1,10,E
Input "A",A
Input "B",B
Input "C",C
Input "D",D
A->[A](E,1
B->[A](E,2
C->[A](E,3
D->[B](E,1
End
ClrHome
[A]^-1[B]->[C]
Disp "SOLUTION:","X=",[C](1,1)>Frac,"Y=",[C](2,1)>Frac,"Z=",[C](3,1)>Frac
Pause
ClrHome
Output(1,1,"    "


Sangohan38
Rézus le 22/06/2009 à 19:47
ça peut pas se faire avec une matrice et la formule de gauss-jordan ?

Ah ! Ben en fait si (je viens d'essayer ) mais pas avec les ti-82 puisqu'elles n'ont pas gauss-jordan.

Mais donc y fo aussi créer un prgm pour les équations a 2 inconnus pour les ti-82.
Sangohan38 le 23/06/2009 à 14:45
Normalement, j'ai déjà posté un programme pour résoudre les systèmes à deux inconnues.
Et je connais pas la formule de Gauss-Jordan d'où la création de ce programme.

Sangohan38

PS: Ecris français c'est plus lisible.
Rézus le 23/06/2009 à 18:37
D'accord.
Tant qu'on y est, à quoi sert l'instruction dim(
KillerMapper le 23/06/2009 à 18:40
C'est pour dimensionner une liste ou une matrice.
Pour une liste ça revient à indiquer combien de nombre elle contiendra, pour les matrices comme ici, ça indique le nombre de lignes et de colonnes.

Ça permet d'éviter des erreurs de domaine et de gérer la mémoire occupée.
Rézus le 23/06/2009 à 18:46
Ah merci c'est utile à savoir.
Donc si je comprends bien, ici la matrice [B] ne pourra pas dépasser 3 lignes et une colonne.
Et si je veux le faire avec une liste je dois marquer {9}->dim(L1
par exemple.
denis le 23/06/2009 à 18:55
pas besoin de mettre les crochets "{ }" pour dimenssioner une liste, il suffit seulement d'écrire :

9->dim L1
Sangohan38 le 23/06/2009 à 19:40
Les crochets sont inutiles dans le cas d'une liste mais pour une matrice, ils sont indispensables.

Sangohan38
Ryu0174 le 22/09/2009 à 21:58
Bonjour, je viens de recopier ton programme sur une Ti 82 stats et elle m'affiche une erreur au niveau du signe - entre ^ et 1 j'aimerais savoir si cela viens d'une erreur de recopiage de ta pars ou d'une erreur due a mon modele de calculatrice.
Merci d'avance pour ta réponse. happy.gif
End
ClrHome
[A]^-1[B]->[C]
fhk le 23/09/2009 à 15:20
Il faut mettre le signe "-" qui se trouve à droite du ".", et non pas le "-" au dessus du "+"
Ryu0174 le 23/09/2009 à 18:34
Apres avoir remplacé ce signe l'erreur se trouve maintenant au niveau de la matrice [B] qui suit.
Rézus le 23/09/2009 à 18:47
Eh bien donne le type d'erreur qu'il t'affiche,c'est la première chose à faire.
Ryu0174 le 23/09/2009 à 19:10
ERR:DOMAIN

quelques petits problèmes avec ce programme
lors de a conversion en base 2 les chiffres défiles jusqu'à l'extrémité gauche de l'écran puis me viens cette erreur.
lors de la conversion en base 16 il n'a pas l'air d'affiché les chiffres avant les lettres exemple pour une conversion de base 10 a base 16 du nombre 945 il affiche B1 au lieu de 3B1
Rézus le 23/09/2009 à 19:21
Euh là tu poste pas sur le bon topic.
jonas le 29/09/2009 à 21:29
Bonjour, j'ai moi aussi recopier ce prog et j'obtiens la même erreur au niveau de la matrice B, erreur de domaine. Comprends pas ! Merci de votre aide.
Rézus le 30/09/2009 à 18:11
Vérifiez que toutes les valeurs que vous avez tapées dans des lignes contenant des lettres entre crochets sont correctes
jonas le 30/09/2009 à 20:24
Salut et merci pour ta réponse, à vue de nez ça me paret correct mais je me demande une chose.
A chaque fois que l'on rencontre des valeurs entre crochets comme tu dis, faut il taper crochet - A - crochet ou est-ce le menu matrice qu'il faut utilser ?
J'ai pour ma part utilisé le menu matrice.
Autre chose, le menu matrice se présente comme ceci :
[A] 1x1
[B]
[C]
etc...
Est-ce normal la présence du "1x1" dans la première ligne ?
Voilà, je vais reverifier le prog.
Rézus le 30/09/2009 à 21:51
Oui,il faut aller les chercher dans le menu matrice.
Les chiffres à côté de la matrice [A] sont normales mais si tu venais d'utiliser le programme,ça aurait dû être 3x3.
jonas le 01/10/2009 à 18:25
Je comprends pas bien ton histoire de 3x3 pour moi les matrices ça se réfère qu'aux films matrix, j'ai pas encore vu ça en math, mais tel que je m'en souviens il y a toujours eu 1x1 à côté de la matrice [A] même depuis que j'ai essayé d'utiliser le prog ci dessus. J'ai revérifié le code et il est correctement recopié. L'erreure est toujours au même endroit et de même type (j'ai pas ma caltoche j'ai oublié, voir ci dessus).
Au fait c'est quoi le but de la ligne [A]^-1 ? C'est mettre à la puissance moins 1 ?
jonas le 01/10/2009 à 18:52
Grave erreure de ma part ! Désolé pour le double poste mais je viens en effet de m'apercevoir le coup du 3x3, voilà mon menu matrice actuel :
[A] 3x3
[B] 3x1
[C] 3x1
[D]
...

Ca à l'air correct le problème ne vient donc pas de la dimension.
ps: je viens de tomber sur un topic sympa sur les matrice sur le site du zéro pour ceux que ca interresse.
ak71 le 11/10/2009 à 22:03
bonjour a tous! j'ai un petit probleme ac ce programme, ma TI 82 stats.fr m'indique qu'il ya une erreur de syntaxe dans l'écriture des parentheses( par exemple dans (3,3)). j'ai utilisé les parenthèses normales, ne fallait-il pas?
ak71 le 11/10/2009 à 22:07
j'ai résolu le probleme ( qui ne meritait pas d'etre posé d'ailleurs). si jamais d'autres internautes veulent savoir la reponse, il faut utilliser les parentheses "accoladées" en utilisant 2nde (touche parentheses normales)
Jonas le 17/10/2009 à 17:32
Bâ moi ça ne fonctionne toujours pas et je ne vois pas pourquoi...
Jonas le 17/10/2009 à 18:13
Heu et encore désolé pour le double post mais je viens de tester quelques ptit truc hors programme et j'ai en fait découvert que ma TI refuse formelement toute division de matrice, je m'explique :
Je découvre que [A]^-1 = 1/[A] non ? Donc je test (programme et hors programme) et la elle me dit erreur de domaine. Ensuite j'essaye au hasard [A]/[B] et même erreure. En revanche j'essaye [A]x[B] et là, ca marche. ??!!
N'y a-t-il pas moyen d'obtenir [A]^-1 par multiplication ?
Si vous comprenez pourquoi je ne peux pas diviser une matrice ?
sypotu le 17/10/2009 à 18:35
il est impossible mathematiquement de diviser une matrice
par contre tu peux utiliser la touche au dessous de [math]
Jonas le 17/10/2009 à 18:56
Salut à toi sypotu et merci de ta réponse.
J'ai remplacé le code [A]^-1[B]->[C] par le suivant : [A](touche au dessous de math (-1))fois [B]->C. En gros ce que tu m'a dit.
Désormais je n'est plus l'erreur de domaine mais "MAT SINGUL", la TI me dit que c'est au (-1).
sypotu le 17/10/2009 à 20:47
cela veux dire que le determinant de la matrice est nul.
J'y connait rien en matrice donc je ne peux pas t'aider plus...
Jonas le 17/10/2009 à 20:58
Pas grave merci quand même de ton aide !
Jonas le 17/10/2009 à 21:51
Wahou !!! J'halucine j'ai réussi !!! Grâce à ce super tuto j'ai pu comprendre comment fonctionnait les matrices :
https://vandymath.pages-perso.[...]_et_matrice.pdf

A partir de là et accrochez vous bien, j'ai juste modifié cette ligne de code:
dim([B])->dim([C]) un truc du genre en ça : {3,1}->dim([C]).
Etonnant non ? L'important c'est que ça marche enfin !!!
Merci beaucoup et j'espère que j'ai aider d'autre gens voilà !
Sangohan38 le 20/10/2009 à 18:04
Le principe de cette ligne était que ça prend moins de place d'écrire dim([A]->dim([B] que {3,2]->dim([B]

Sangohan38
Styxx80 le 22/05/2011 à 13:07
Bonjour, j'ai recopié le programme et essayé de l'utiliser, cependant il me marque : ERR:DOMAINE. Je fais voir, il me note que c'est sur : [A]^-1[B]->[C], plus particulièrement sur [B]. Si quelqu'un a une solution .. Merci d'avance.
sandro le 22/05/2011 à 13:36
vérifie que les trois matrices ont les mêmes dimentions et qu'aucune valueur ne vaut 0.
Sandro
Styxx80 le 22/05/2011 à 21:21
J'ai :
[A] 3x3
[B] 3x1
[C] 3x1

...

(Je ne sais pas trop m'en servir de cette calculatrice ...)
linkakro le 22/05/2011 à 21:51
Saisis le nom des matrices dans l'écran principal pour connaître le contenu de tes matrices (ou bien édite les avec le menu matrice).

S'il y a plusieurs solutions alors l'erreur vient de là car l'inversion de matrice n'a de sens que pour une unique solution.
sandro le 23/05/2011 à 10:06
le problème vient peut-être de la différence de taille des matrices?
Sandro
linkakro le 23/05/2011 à 22:21
Je ne crois pas car
[A1 B1 C1]*[X]=[D1]
[A2 B2 C2] [Y] [D2]
[A3 B3 C3] [Z] [D3]
Sangohan38 le 26/05/2011 à 17:58
J'ai trouvé le soucis: c'est qu'il faut prendre la fonction inverse et non ^-1 après A (normal 1/A n'existe pas par contre A^-1 existe et est la matrice inverse).

Sangohan38
linkakro le 26/05/2011 à 18:06
En effet. bigmouth.gif
Je n'avais pas immaginé qu'ils écrivaient 1/[A]. Je savais pour la syntaxe mais je n'ai pas réagit.

J'ajoûte qu'il faut impérativement écrire "^-1" avec la touche [x^-1].