{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import sympy as sp\n", "from IPython.display import display, Latex\n", "from Ch8_lib import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Définition 1:\n", "Soient $A\\in M_{n \\times n}(\\mathbb{R})$ et $t$ une indéterminée. Le polynôme caractéristique de $A$, noté $c_A(t)$, est le polynme défini par $$c_A(t)=\\det (A-tI)$$\n", "\n", "### Proposition 2:\n", "Soient $A,P\\in M_{n\\times n}(\\mathbb{R})$ et supposons que soit inversible. Alors \n", "$$c_A(t)=c_{PAP^{-1}}(t).$$\n", "\n", "### Définition 3:\n", "Soit $T:V \\to V$ une transformation linéaire d'un $\\mathbb{R}$-espace vectoriel de dimension finie $V$. On définit le polynôme caractéristique de $T$ par $c_T(t)=c_A(t),$ où $A=[T]_{\\mathscr{B}}$ pour une base ordonnée quelconque $\\mathscr{B}$ de $V$.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\lambda \\in \\mathbb{R}$ est une valeur propre de $A\\in M_{n \\times n}(\\mathbb{R})$ si et seulement si: $$ c_A(\\lambda) = \\det (A-\\lambda I) = 0$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exemple 1\n", "Méthode pour calculer les valeurs propres d'une matrice $3 \\times 3$.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Définition de la matrice (Par défaut, les coefficients sont fixés à 1)\n", "A = sp.Matrix([[1,1,1],[1,1,1],[1,1,1]])\n", "\n", "l = sp.symbols('\\lambda')\n", "I = sp.eye(3)\n", "\n", "# Calcul étape par étape du polynome caractéristique (degré 3 ici).\n", "Determinant_3x3(A-l*I, True, True, 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On a donc le polynome caractéristique de la matrice A, les valeurs propres sont les racines de ce polynôme.\n", "On résout $$\\det (A- \\lambda I) = 0$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Résolution de l'équation avec sympy\n", "eq = sp.Eq(sp.det(A-l*I),0)\n", "sol = sp.solve(eq, l)\n", "\n", "display(Latex(\"Les racines du polynôme caractéristiques (les valeurs propres de A) sont: $\" + \n", " sp.latex(sol) + \"$.\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercice 1\n", "Trouver les valeurs propres des matrices données ci-dessous en trouvant les racines du polynôme caractéristique.\n", "\n", "*Pour trouver les racines des polynômes caractéristiques de degré 3 ou 4, factorisez à l'aide de racines évidentes $\\in [-2, -1, 0, 1, 2]$*" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Trouver les valeurs propres des matrices suivantes\n", "A_1 = sp.Matrix([[-2, 4], [5, -1]])\n", "A_2 = sp.Matrix([[1, 2], [3, 1]])\n", "A_3 = sp.Matrix([[1, 0, 4], [1, 3, 1], [2, 4, -1]])\n", "A_4 = sp.Matrix([[4, 0, 1], [-2, 1, 0], [-2, 0, 1]])\n", "A_5 = sp.Matrix([[1, 2, 0, 0], [2, 1, 0, 0], [-4, 2, 2, -1], [-8, 5, 0, 1]])\n", "A_6 = sp.Matrix([[4, 0, 0, 0], [7, -11, 0, 0], [-0.5, 2.3, sp.sqrt(2), 0], [-8, 5, 2, 11]])\n", "\n", "# Matrice à afficher\n", "A = A_1\n", "display(Latex(\"Trouvez les valeurs propres de la matrice $A =\" + latexp(A) + \"$\"))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Affiche la solution étape par étape pour la matrice spécifiée comme argument de la fontion valeurs_propres\n", "valeurs_propres(A_1)" ] } ], "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 }