{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Théorème\n", "Soit $\\phi: V \\rightarrow V$ une transformation linéaire d'un $\\mathbb{R}$-espace vectoriel $V$ de dimension finie $n \\in \\mathbb{N}$. Alors $\\phi$ est diagonalisable si et seulement si il existe $a \\in \\mathbb{R}, \\lambda_{1}, \\ldots, \\lambda_{r} \\in \\mathbb{R}$ distincts et $m_{1}, \\ldots, m_{r} \\in \\mathbb{N}$ tels que\n", "$$c_{\\phi}(t)=a\\left(t-\\lambda_{1}\\right)^{m_{1}} \\ldots\\left(t-\\lambda_{r}\\right)^{m_{r}}$$\n", "et $m_{i}=\\operatorname{dim} E_{\\lambda_{i}}$ pour tout $1 \\leq i \\leq n$\n", "\n", "### Critère equivalent de diagonalisabilité\n", "Une matrice $A$ $n \\times n$ est diagonalisable si et seulement si A possède $n$ vecteurs propres linéairement indépendant." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import sys, os\n", "sys.path.append('../Librairie')\n", "import AL_Fct as al\n", "import numpy as np\n", "import sympy as sp\n", "from IPython.utils import io\n", "from IPython.display import display, Latex, Markdown\n", "import plotly\n", "import plotly.graph_objects as go\n", "from Ch8_lib import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 1\n", "À l'aide de la représentation graphique des espaces propres associés aux différentes valeurs propres d'une matrice, determinez si cette dernière est diagonalisable. (Aucun long calcul requis).\n", "\n", "**Si besoin, la méthode à appliquer est donnée plus bas.**" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "A1 = [[3, 4], [0, 3]]\n", "A2 = [[1, 3], [4,5]]\n", "A3 = [[5, 0, 0],[0, 1, 0], [1, 0, 1]]\n", "A4 = [[1, 0, -2],[2 ,1, 0], [0, 0, 3]]\n", "\n", "# Choisir matrice (A = A1 ou A = A2 ...)\n", "A = A1\n", "\n", "# Executez cette cellule pour faire l'exercice pour la matrice A\n", "ch8_8_ex_1(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Méthode exercice 1 (en utilisant le théorème donné dans le MOOC)\n", "On sait que le polynôme caractéristique d'une matrice $A (n \\times n)$ est d'ordre $n$. \n", "\n", "Avec $c_A(t)=a(t-\\lambda_{1})^{m_{1}} \\ldots (t-\\lambda_{r})^{m_{r}}$, avec $a \\in \\mathbb{R}$, $r\\leq n$ et $\\lambda_{1}, \\ldots, \\lambda_{r} \\in \\mathbb{R}$ distincts, on peut en déduire que $\\sum_{i=1}^r m_i = n$\n", "\n", "Sachant également que $\\dim E_{\\lambda_i} \\leq m_i$, on a $m_i = \\dim E_{\\lambda_i} $ pour tout $ i = 1, .., r$ si et seulement si $\\sum_{i=1}^r \\dim E_{\\lambda_i} = n$ \n", "\n", "Le théorème donné plus haut indique qu'une matrice est diagonalisable si et seulement si $m_i = \\dim E_{\\lambda_i}$ pour tout $ i = 1, .., r$. \n", "\n", "On vient de montrer que c'est équivalent à $\\sum_{i=1}^r \\dim E_{\\lambda_i} = n$.\n", "\n", "Grâce à la représentation graphique des espaces propres, on connait la dimension de chaque espace propre (droite -> $\\dim E_{\\lambda_i} = 1$, plan -> $\\dim E_{\\lambda_i}=2$). Il suffit donc de vérifier que la somme des dimensions de tous les espaces propres est bien égal à $n$.\n", "\n", "#### Méthode exercice 1 (en utilisant le critère equivalent de diagonalisabilité)\n", "Plus simplement, on peut simplement vérifier si il existe $n$ vecteur propres linéairement indépendants. En sachant que deux vecteurs propres associés à des valeurs propres différentes sont linéairement indépendants.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 2\n", "Determinez si les matrices suivantes sont diagonalisables. Essayez d'utiliser la méthode la plus simple pour chaque cas.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Executez cette cellule pour faire l'exercice avec la matrice A\n", "A1 = [[1, 2], [3, 2]]\n", "A2 = [[5, -7], [0, 5]]\n", "A3 = [[3, 5, -10], [1, 7, 2], [-2, 2, 4]]\n", "A4 = [[3, 5, -10], [1, 7, 2], [-2, 2, 4]]\n", "A5 = [[1, 0, 0, 0],[11, -5, 0, 0],[-1, 2, 3, 0],[0, -2, 1, -3]]\n", "A6 = [[-1, 0, 0, 0],[11, -5, 0, 0],[-1, 2, -1, 0],[0, -2, 1, -1]]\n", "\n", "# Choisir matrice (A = A1 ou A = A2 ...)\n", "A = A6\n", "\n", "interactive_is_diag(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Méthode de diagonalisation\n", "Une matrice diagonalisable peut s'exprimer comme: $$A = PDP^{-1}$$ avec $D$ une matrice diagonale, si et seulement si les colonnes de $P$ sont $n$ vecteurs propres de $A$ linéairement indépendants. Dans ce cas, les éléments diagonaux de $D$ sont les valeurs propres de $A$ qui correspondent, respectivement, aux vecteurs propres dans $P$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 3\n", "Pour les matrices $A$ diagonalisables suivantes, donnez les matrices $P$ et $D$ telles que $A = P D P^{-1}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$ A_1 = \\left(\\begin{matrix}2 & 3\\\\1 & 4\\end{matrix}\\right) \\hspace{30mm}\n", "A_2 = \\left(\\begin{matrix}0 & 0\\\\-2 & -4\\end{matrix}\\right) $$ \n", "$$ A_3 = \\left(\\begin{matrix}1 & 6 & 2\\\\0 & 3 & 0\\\\2 & -6 & 1\\end{matrix}\\right) \\hspace{30mm}\n", "A_4 = \\left(\\begin{matrix}-2 & -7 & -1\\\\0 & 1 & 0\\\\-1 & -13 & -2\\end{matrix}\\right) $$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "A1 = sp.Matrix([[2, 3], [1, 4]])\n", "A2 = sp.Matrix([[0, 0], [-2, -4]])\n", "A3 = sp.Matrix([[1, 6, 2], [0, 3, 0], [2, -6, 1]])\n", "A4 = sp.Matrix([[-2, -7, -1], [0, 1, 0], [-1, -13, -2]])\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Choisir la matrice (A = A1)\n", "A = A1\n", "\n", "# Entrez les matrices P et D trouvée\n", "P_user = [[1, 0], [0, 1]]\n", "D_user = [[0, 0], [0, 0]]\n", "\n", "find_P_D(A, P_user, D_user)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }