ebook img

Chapitre 09 (600 Ko) Algèbre linéaire PDF

28 Pages·2008·0.59 MB·French
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Chapitre 09 (600 Ko) Algèbre linéaire

9 e r Chapitre 9. t i Calcul matriciel p a h C L'objectif de ce chapitre est de présenter l’utilisation de TI-Nspire CAS dans le domaine du calcul matriciel et de montrer comment il est possible d’en étendre les fonctionnalités. Sommaire 1. Présentation.........................................................................................................2 2. Création de matrices...........................................................................................4 3. Recherche du rang d’une matrice.....................................................................4 3.1 Étude directe à partir d’une réduite de Gauss.........................................4 3.2 Fonction de calcul du rang.........................................................................5 4. La recherche du noyau d’un endomorphisme.................................................5 4.1 Recherche du noyau avec la fonction solve............................................6 4.2 Recherche du noyau avec la fonction zeros............................................6 4.3 Fonction de recherche des vecteurs du noyau.......................................7 4.4 Fonction de recherche d’une base du noyau..........................................8 5. Éléments propres...............................................................................................10 5.1 Valeurs propres d’une matrice.................................................................10 5.2 Vecteurs propres d’une matrice...............................................................10 6. Diagonalisation...................................................................................................11 6.1 Étude directe de la diagonalisation.........................................................11 6.2 Utilisation d'un programme de diagonalisation......................................12 7. Décomposition DN d’une matrice....................................................................14 7.1 Résultats utiles...........................................................................................14 8. Calcul des puissances symboliques...............................................................19 8.1 Méthode de calcul......................................................................................19 8.2 Une astuce utile..........................................................................................19 8.3 Exemples d’utilisation................................................................................20 9. Exponentielle d’une matrice.............................................................................20 9.1 Méthode utilisée.........................................................................................20 9.2 Exemple d’utilisation..................................................................................21 10. Réduction de Gauss et inversion pas à pas..................................................21 10.1 Exemple d’utilisation du programme de réduction................................22 10.2 Exemple d’utilisation du programme d’inversion...................................23 Philippe Fortin (Lycée Louis Barthou – Pau) / Roland Pomès (Lycée René Cassin – Bayonne) 2 TI-Nspire CAS en prépa 1. Présentation La TI-Nspire CAS permet d’effectuer directement (sans recours à l’écriture de programme) certains calculs matriciels assez complexes. Il est par exemple possible d’effectuer le calcul exact des puissances d’une matrice, et dans certains cas, le calcul approché des exponentielles. La façon la plus simple pour définir une matrice est d’utiliser l’un des modèles disponibles en appuyant sur /r : Matrice 22. Vecteur ligne de dimension 2 (matrice 12). Vecteur colonne de dimension 2 (matrice 21). Matrice de taille quelconque. On obtient ensuite une boite de dialogue permettant de choisir le nombre de lignes et de colonnes.  Attention au message en bas de l’écran indiquant que certaines étapes du calcul ont été faites dans l’ensemble des nombres complexes. © T³ France 2008 / Photocopie autorisée Calcul matriciel 3 On peut aussi obtenir l’expression approchée des valeurs ou vecteurs propres (dans b7B) :  Un calcul en mode réel peut entraîner le message d’erreur ci-dessus, on est convié à passer en mode complexe. Les fonctions eigVl et eigVc sont des fonctions utilisant des algorithmes numériques, qui permettent d’obtenir des valeurs approchées des valeurs propres et des vecteurs propres. Ces algorithmes travaillent dans . Du fait des erreurs liées aux calculs numériques, il est possible que des valeurs qui devraient être réelles soient obtenues sous la forme de nombres complexes ayant une partie imaginaire très petite. C’est ce qui est arrivé dans l’écran ci-dessus. Nous allons voir dans ce chapitre qu’il est également possible d’utiliser d’autres fonctions, permettant de résoudre différents problèmes classiques sous forme symbolique :  Recherche du rang d’une matrice.  Recherche du noyau d’un endomorphisme.  Recherche de l’expression symbolique des valeurs et vecteurs propres.  Diagonalisation d’un endomorphisme.  Réduction d’un endomorphisme non diagonalisable.  Calcul des puissances symboliques d’une matrice.  Calcul de l’exponentielle d’une matrice. Les fonctions et programmes que nous allons rencontrer et décrire dans ce chapitre font partie de la bibliothèque linalgcas téléchargeable sur le site www.univers-ti-nspire.fr. Voir la démo d’utilisation de la bibliothèque linalgcas sur le site www.univers-ti-nspire.fr. © T³ France 2008 / Photocopie autorisée 4 TI-Nspire CAS en prépa 2. Création de matrices Comme nous l’avons vu dans le paragraphe précédent, on peut utiliser différents modèles prédéfinis. On peut aussi utiliser la syntaxe [1,2;3,4] le séparateur ; (/:) indiquant le changement de ligne. Le sous-menu Créer du menu Matrice & vecteur, accessible par b76, contient différentes fonctions de création de matrices. En particulier, la fonction constructMat permet de construire les matrices dont le terme général a est défini par une expression. ij Autres fonctions : - diag(liste) : matrice diagonale. La diagonale est définie par une liste (entre {}). - randMat(n, p) : matrice aléatoire, ayant n lignes et p colonnes. - newMat(n, p) : matrice nulle, ayant n lignes et p colonnes. - identity(n) : matrice unité n n. 3. Recherche du rang d’une matrice 3.1 Étude directe à partir d’une réduite de Gauss L O M 2 1 0 P M P Considérons par exemple la matrice A 2 2 6 . NM QP 2 0 2 Pour obtenir le rang de cette matrice, il suffit d’effectuer une réduction de Gauss de cette matrice (ref), et de compter le nombre de lignes non nulles.  On peut aussi utiliser la réduite de Gauss-Jordan (rref). © T³ France 2008 / Photocopie autorisée Calcul matriciel 5 Dans cet exemple, on peut voir qu’il y en a deux. Le rang est donc égal à 2. 3.2 Fonction de calcul du rang Il est facile d’écrire une fonction automatisant ce décompte. L’idée est d’ajouter des nombres n , i égaux à 1 si la ligne n°i est non nulle, et égaux à 0 dans le cas contraire. Pour tester si la ligne n°i est nulle, il suffit de tester la valeur de sa norme. Ce qui conduit à l’écriture de la fonction suivante. Define LibPub rank(m)=Func ©m: rang de m Local n n:= rref(m) ∑(when(norm(n[i])=0,0,1),i,1,rowDim(n)) EndFunc  La fonction when s’utilise sous la forme when(condition, résultat-si-vrai, résultat-si-faux, résultat-si-l'on-ne-sait-pas).  Si n est une matrice, n[i] correspond à la i-ème ligne. norm(n[i]) sera égal à 0 si et seulement si cette ligne est nulle. rowDim(n) correspond au nombre de lignes de la matrice. Reportez-vous au chapitre 14 pour une découverte de la programmation sur TI-Nspire CAS, et au chapitre 15 pour plus d’information sur l’utilisation des commandes Define LibPub, Define LibPriv. 4. La recherche du noyau d’un endomorphisme L O M 2 1 0 P M P Considérons à nouveau la matrice A 2 2 6 . NM QP 2 0 2 Même sans utiliser ce qui précède, on peut vérifier que cette matrice n’est pas inversible. Il suffit de calculer le déterminant de la matrice. Comment obtenir le noyau de l’application linéaire associée ? © T³ France 2008 / Photocopie autorisée 6 TI-Nspire CAS en prépa 4.1 Recherche du noyau avec la fonction solve Une première méthode consiste à résoudre le système d’équations définissant le noyau avec la fonction solve. Le système est écrit à l’aide du modèle , disponible en appuyant sur /r. Les solutions sont donc du type (z,2z, ),z avec z quelconque. Le noyau est donc de dimension 1, et il a f est engendré par 1,2,1 . 4.2 Recherche du noyau avec la fonction zeros On peut aussi choisir d’utiliser la fonction zeros, qui permet d’avoir un résultat plus compact : zeros({2x+y,-2x+2y-6z,2x+2z},{x,y,z}) Il est possible de construire automatiquement la liste des équations à résoudre. Pour cela, on définit un vecteur quelconque, et on fait le produit de la matrice par ce vecteur : © T³ France 2008 / Photocopie autorisée Calcul matriciel 7 La fonction de conversion mat▶list permet ensuite de récupérer la liste des composantes, et il est ensuite possible d’utiliser la fonction zeros : 4.3 Fonction de recherche des vecteurs du noyau Il est possible d’automatiser ce qui vient d’être fait en utilisant deux fonctions. Attention, le texte de ces deux fonctions utilise des méthodes un peu sophistiquées, vous pouvez les ignorer dans un premier temps. Define LibPriv vect(n)=Func ©n: vecteur de dim n Local i,v v:=newMat(n,1) For i,1,n v[i,1]:=expr("θ"&string(i)) EndFor v EndFunc On commence par construire une matrice colonne de n lignes, ne contenant que des 0. Ensuite, une boucle construit les variables θ1, θ2, … qui sont placées dans ce vecteur. On utilise pour cela plusieurs fonctions de manipulation des chaînes de caractères. 1. La fonction string est utilisée pour convertir le contenu de la variable i : 1, 2, … en chaîne de caractères : "1", "2", … 2. En utilisant l’opérateur de concaténation , on colle cette chaîne à "θ" pour obtenir "θ1", " θ2", … 3. La fonction expr permet de fabriquer les noms de variables θ1, θ2, … à partir de ces dernières chaînes de caractères. Voici à présent le texte de la fonction permettant d’obtenir les vecteurs du noyau par la méthode décrite dans le paragraphe précédent : Define LibPub vker(m)=Func © mat: vect. de ker(mat) Local i,n,v,leq,linc n:=colDim(m) v:=vect(n) leq:=mat▶list(m*v) linc:= mat▶list (v) expr("zeros("&string(leq)&","&string(linc)&")") EndFunc La fonction vect construit un vecteur quelconque de dimension donnée. La fonction vker utilise ce vecteur pour déterminer le noyau en utilisant la méthode précédente. © T³ France 2008 / Photocopie autorisée 8 TI-Nspire CAS en prépa  vect doit être définie dans la même activité que vker pour que cette dernière puisse fonctionner (voir le chapitre 15 à ce sujet). La dernière ligne de cette fonction est pour le moins ésotérique. Elle permet de résoudre un problème qui n’a rien d’évident. Si une variable, par exemple leq, contient la liste des équations, par exemple {2x+y,x-y} et si une autre variable, linc, contient la liste des inconnues, par exemple {x,y}, alors zeros(leq,linc} n’est pas équivalent à zeros({2x+y,x-y},{x,y}) Ceci provient d’un mécanisme d’évaluation un peu particulier de la fonction zeros. Comme nous l’avons vu dans l’exemple du paragraphe précédent, il est possible de mémoriser une liste d’équations dans une variable, par contre, il n’est pas possible de faire de même avec la liste des inconnues. Le seul moyen de résoudre le problème consiste à construire la chaîne de caractères : "zeros({2x+y,x-y},{x,y})" à partir du contenu des variables leq et linc, puis à exécuter l’instruction contenue dans cette chaîne à l’aide de la fonction expr. C’est exactement ce que fait notre dernière ligne… Voici un exemple d’utilisation de ces deux fonctions :  La fonction vker correspond à la fonction kernelvectors de la bibliothèque linalgcas, téléchargeable sur le site www.univers-ti-nspire.fr. 4.4 Fonction de recherche d’une base du noyau Nous allons maintenant écrire une fonction qui sera capable de déterminer directement une base du noyau d’une application linéaire définie par sa matrice. Voici deux exemples illustrant l’utilisation de cette fonction kernelbasis : © T³ France 2008 / Photocopie autorisée Calcul matriciel 9 4.5 Texte de la fonction kernelbasis Define LibPub kernelbasis(m)=Func ©mat: noyau de mat nxn Local a If det(m)≠0 Then [0] Else a:=rref(augment(m,1+0*m)) (subMat(a, rank(m)+1,rowDim(m)+1)) EndIf EndFunc 4.6 Quelques explications sur la fonction kernelbasis Les explications qui suivent nécessitent quelques connaissances de base sur l’interprétation des opérations sur les lignes d’une matrice en terme de produits matriciels, et sur le calcul de produit par blocs. Si vous ne connaissez pas encore ces notions, n’hésitez pas à simplement laisser de côté la suite de ce paragraphe. Dans ce qui suit on parle du “noyau d’une matrice”, il s’agit d’un raccourci pour désigner le noyau de l’endomorphisme associé à cette matrice. Pour chercher la réduite de Gauss d’une matrice, on effectue des opérations élémentaires sur les lignes de la matrice. Cela revient à faire un produit, à gauche, par une matrice inversible. Soit A une matrice nn, et I la matrice identité de même dimension. n Si l'on fait une réduction de ce type sur une matrice du type M  A I , matrice n2n, on obtient n GT A I  TA TI  TA T . n n L O P Q M P Par ailleurs, en raison de la nature d’une réduite de Gauss, la matrice G sera du type GN Q, avec O R a f a f P et Q matrices triangulaires rn, O matrice nulle nr n, R matrice nr n. En identifiant avec ce qui précède, on a L O L O L O L O Q Q QA Q P Q M P M P M P M P T N Q et GN Q A In N QN Q. R R RA R 0 R t t En particulier RA0 et donc, en transposant, A R0. a f t t La matrice R est une matrice n nr , elle est extraite de T qui est inversible. Les nr vecteurs colonnes de cette matrice forment donc une famille libre. t t t t De plus, A R0, et donc pour tout vecteur colonne V de R, AV 0. j i t On a ainsi trouvé nr vecteurs V , formant une famille libre, et tous dans le noyau de A qui est j précisément de dimension nr. L O P Q M P En conclusion, la réduction de Gauss de la matrice M  A In sous la forme GN Q permet de O R t trouver une base du noyau de A : il suffit d’extraire R et de transposer cette matrice. t Pour obtenir une base du noyau de A, il suffit de partir de M  A I comme on le fait dans la n fonction kernelbasis. © T³ France 2008 / Photocopie autorisée 10 TI-Nspire CAS en prépa 5. Éléments propres 5.1 Valeurs propres d’une matrice Pour calculer les valeurs exactes des valeurs propres d’une matrice, on doit “simplement” rechercher les racines du polynôme caractéristique. Ce polynôme s’obtient à l’aide de la fonction charPoly qui b g correspond au calcul de det MxI . n Voici maintenant deux courtes fonctions permettant de résoudre le problème de la recherche des valeurs propres. La fonction valp recherche les valeurs propres réelles : Define LibPub valp(m)=zeros(det(m-x),x) La fonction cvalp traite également les valeurs propres complexes : Define LibPub cvalp(m)=cZeros(det(m-x),x)  Lors de l’addition entre une matrice de M  et un scalaire , le scalaire est automatiquement n identifié à la matrice I . n Vous trouverez dans la bibliothèque linalgcas les fonctions eigenvals et ceigenvals ayant les mêmes fonctionnalités que les fonctions ci-dessus. 5.2 Vecteurs propres d’une matrice Pour déterminer les vecteurs propres d’un endomorphisme f défini par une matrice M, il suffit a f d’utiliser la fonction kernelbasis pour déterminer une base de chaque Ef kIedr  .  © T³ France 2008 / Photocopie autorisée

Description:
L'objectif de ce chapitre est de présenter l'utilisation de TI-Nspire CAS dans le . bibliothèque linalgcas téléchargeable sur le site www.univers-ti-nspire.fr.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.