π
<-

Inversion de matrice pas à pas

Pour le TI-Basic sur Nspire

Inversion de matrice pas à pas

Unread postby Hayleia » 15 Nov 2012, 19:59

Bon, c'est encore moi, et je parle encore de matrices :P

Mais cette fois, c'est plus pour poser des questions, c'est parce que j'ai fini le programme en question :D
Voilà donc un classeur qui inverse une matrice pas à pas en utilisant la méthode de Gauss et en affichant les étapes de calculs (comme pour SuperDérivées, vous n'aurez plus qu'à recopier ^^) :)
Notez que cela sert aussi pour calculer le rang d'une matrice.

Comment il fonctionne ? Il concatène votre matrice et l'identité puis effectue des opérations élémentaires sur les lignes de la matrice obtenue. Il renvoie "erreur" puis une erreur si la matrice n'est pas inversible et renvoie une matrice rectangulaire avec l'identité et l'inverse si la matrice originale était inversible ^^

Pour l'utiliser, placez le classeur dans MyLib, rafraichissez les bibliothèques et tapez gauss\inverse(<votre_matrice>) dans n'importe quel classeur ou dans le ScratchPad :)

Ci-joints, deux screenshots, l'un avant le calcul, l'autre à la fin du calcul.
You do not have the required permissions to view the files attached to this post.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Inversion de matrice pas à pas

Unread postby Bisam » 17 Nov 2012, 09:56

J'avais oublié de te le dire la dernière fois, mais Philippe Fortin a déjà fait toute une bibliothèque de calculs avec des matrices (nommée "linalgcas") comprenant entre autres un programme nommé "gausstep" et un autre nommé "inversestep" avec des noms suffisamment explicites.

En plus, cette bibliothèque est préinstallée sur toutes les calculatrices Nspire (sans doute uniquement les CAS) produites depuis au moins 2 ans.
Si ça se trouve, tu la possèdes, toi aussi, sans le savoir...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Inversion de matrice pas à pas

Unread postby Hayleia » 17 Nov 2012, 16:21

Bisam wrote:J'avais oublié de te le dire la dernière fois, mais Philippe Fortin a déjà fait toute une bibliothèque de calculs avec des matrices (nommée "linalgcas") comprenant entre autres un programme nommé "gausstep" et un autre nommé "inversestep" avec des noms suffisamment explicites.

En plus, cette bibliothèque est préinstallée sur toutes les calculatrices Nspire (sans doute uniquement les CAS) produites depuis au moins 2 ans.
Si ça se trouve, tu la possèdes, toi aussi, sans le savoir...

Oui je l'ai. Tout ça pour rien :P

Mais en fait, je m'en souviens, je l'avais mise sur ma calculette moi-même (ainsi que d'autres) en me disant que ça pouvait être utile, sauf qu'à l'époque je ne savais pas du tout me servir de cette calculatrice, je n'ai donc jamais réussi à me servir de ce classeur -.-°
Je l'ai donc tout simplement oubliée et j'ai refait une fonction que j'avais déjà :p
Je vais voir si j'arrive à m'en servir maintenant que je sais à peu près me servir de ma calculette :)

Bof, c'est pas grave, c'était mon premier programme complet (le premier étant un simple Number Guessing game). Je me fiche qu'il ne serve à personne, au moins il marche, je peux continuer mon apprentissage ^^
Et puis comme je l'ai codé avec des fonctions très simples, des débutants (comme moi) pourront peut-être se lancer dans la programmation en examinant mon code source qui est très facile à comprendre :)

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Inversion de matrice pas à pas

Unread postby jmat » 25 Jul 2013, 12:59

très bonne, est semblable à celui utilisé par la HP 50g, ne manque élémentaires indiquer les changements entre les lignes, il serait possible de faire ces changements?

merci
User avatar
jmat
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 12.5%
 
Posts: 50
Joined: 24 Jul 2013, 01:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Inversion de matrice pas à pas

Unread postby nikitouzz » 25 Jul 2013, 13:22

Tiens tu programme sur nspire toi ^^

beau programme !
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: Inversion de matrice pas à pas

Unread postby Hayleia » 25 Jul 2013, 13:48

jmat wrote:très bonne, est semblable à celui utilisé par la HP 50g, ne manque élémentaires indiquer les changements entre les lignes, il serait possible de faire ces changements?

merci

Ça serait possible oui, mais pas très utile. Le programme fait tout le temps la même chose, et de la manière la plus simple algorithmiquement parlant (c'est à dire pas la plus simple du point de vue des calculs).

Par contre, j'ai codé ce truc il y a longtemps et en pas longtemps donc je ne me souviens plus trop comment il marche, mais je vais quand même essayer d'expliquer.
_____

Triangularisation inférieure :
Pour chaque colonne i, on cherche à mettre des zeros dans toutes les "cases" en dessous de la "case" (i,i). Pour ça, on cherche un "pivot", c'est à dire une ligne l telle que le nombre dans la case (l,i) soit non nul. Puis on se sert donc de cette ligne pour annuler tous les termes qu'on veut en dessous de (i,i), c'est à dire qu'on fait pour toutes les lignes k telles que k>i, L(k)-q*L(l)→L(k), où q est le quotient qui donne un zéro dans (k,i). Quelque part dans ces étapes se trouve aussi une "normalisation" où on met le terme (i,i) à 1.

Triangularisation inférieure :
Une fois triangulaire inférieure, il est facile d'annuler tous les termes "du dessus" puisqu'on a des 1 partout où ça nous arrange.

Fin.
_____

Voilà, j'espère qu'avec cette explication, mon programme est devenu plus clair, et si tu tiens vraiment à ajouter cette fonctionnalité, tu peux le faire, le programme n'est absolument pas protégé et le code n'est pas très obscur (j'ai pas vraiment de talents d'optimisation en Basic Nspire donc j'utilise majoritairement des boucles assez explicites dans leur but).

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Inversion de matrice pas à pas

Unread postby jmat » 26 Jul 2013, 00:00

Merci pour l'explication, maintenant je dois apprendre à programmer jeje
User avatar
jmat
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 12.5%
 
Posts: 50
Joined: 24 Jul 2013, 01:03
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider], michell0987654321 and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
709 utilisateurs:
>677 invités
>21 membres
>11 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)