{
 "metadata": {
  "name": "",
  "signature": "sha256:41ef815718811811d98a97ed69868021544b885c93ec12f910949e3fe13608e7"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## TP4: M\u00e9thode de la puissance et puissance inverse pour le calcul de valeurs propres\n",
      "\n",
      "Cr\u00e9er un r\u00e9pertoire \"TP4-NOM\" et lancer PYTHON dans ce r\u00e9pertoire.\n",
      "\n",
      "### Exercice 1\n",
      "\n",
      "Consid\u00e9rons la matrice $A\\in M_N(\\mathbb{R})$ d\u00e9finie par \n",
      "\n",
      "$$\n",
      "A=\\left(\n",
      "\\begin{array}{ccccc}\n",
      "2 & -1 & 0 & \\dots & 0\\\\\n",
      "-1 & 2 & -1 & \\ddots & \\vdots\\\\\n",
      "0 & \\ddots & \\ddots & \\ddots & 0\\\\\n",
      "\\vdots & \\ddots & -1 & 2  & -1\\\\\n",
      "0 & \\dots & 0 & -1 & 2\n",
      "\\end{array}\n",
      "\\right)\n",
      "$$\n",
      "\n",
      "Dans ce qui suit, on consid\u00e9rera les cas $N=10$ et $N=100$\n",
      "\n",
      "1. Cr\u00e9er un fichier \"puissance.py\". Ecrire un script pour construire $A$ pour toute valeur de $N$. Programmer la m\u00e9thode de la puissance pour calculer la plus grande valeur propre de $A$. Tracer l\u2019\u00e9volution de la valeur propre calcul\u00e9e en fonction du nombre d\u2019it\u00e9rations. Donner l\u2019ordre et la vitesse de convergence.\n",
      "2. Cr\u00e9er un fichier \"puissance-inv.py\". Programmer la m\u00e9thode de la puissance *inverse* pour calculer la plus petite valeur propre de $A$. Tracer l\u2019\u00e9volution de cette valeur propre calcul\u00e9e en fonction du nombre d\u2019it\u00e9rations. Donner l\u2019ordre et la vitesse de convergence.\n",
      "3. Cr\u00e9er  un fichier \"puissance-inv-1.py\". On peut montrer que les valeurs propres de $A$ sont comprises entre $0$ et $2$. Mettre en place un algorithme permettant de calculer la valeur propre de $A$ la plus proche de $1$.\n",
      "\n"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "#### Ins\u00e9rer le script (comment\u00e9) du fichier \"puissance.py\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "#### Ins\u00e9rer le script (comment\u00e9) du fichier \"puissance-inv.py\" "
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "#### Ins\u00e9rer le script (comment\u00e9) du fichier \"puissance-inv-1.py\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Exercice 2\n",
      "\n",
      "Dans ces exemple, on explore les limitations de la m\u00e9thode de la puissance. Soit $A$ la matrice\n",
      "\n",
      "$$\n",
      "A=\\left(\\begin{array}{cccc}\n",
      "0.5172 & 0.5473 & -1.224 & 0.8012\\\\\n",
      "0.5473 & 1.388 & 1.353 & -1.112\\\\\n",
      "-1.224 & 1.353 & 0.03642 & 2.893\\\\\n",
      "0.8012 & -1.112 & 2.893 & 0.05827\n",
      "\\end{array}\\right).\n",
      "$$\n",
      "\n",
      "Les valeurs propres de $A$ sont $\\mu_1=-4$, $\\mu_2=3$, $\\mu_3=2$ et $\\mu_4=1$. Les vecteurs propres correspondant \u00e0 $\\mu_1$ et $\\mu_2$ sont respectivement.\n",
      "$$\n",
      "\\displaystyle\n",
      "w_1=\\left(\\begin{array}{c} 0.3225\\\\-0.3225\\\\0.6451\\\\-0.6129\\end{array}\\right),\\quad w_2=\\left(\\begin{array}{c} -0.1290\\\\0.1290\\\\0.7419\\\\-0.6451\\end{array}\\right)\n",
      "$$\n",
      "\n",
      "1. Cr\u00e9er un fichier \"puissance-lim.py\"\n",
      "2. Programmer la m\u00e9thode de la puissance avec comme vecteur initial $x_0=(1\\;0\\;0\\;0)^T $. Etudier l'\u00e9volution de la valeur propre calcul\u00e9e et tracer $\\|x_k\\|_2$ en fonction de $k$.\n",
      "3. On part maintenant du vecteur initial $x_0=(1\\;1\\;1\\;1)^T $ (presque orthogonal \u00e0 $w_1$). M\u00eame question. Expliquer le ph\u00e9nom\u00e8ne observ\u00e9.\n",
      "4. On part de $x_0=(1\\;1\\;0\\;0)^T $ (orthogonal \u00e0 $w_1$ et $w_2$). M\u00eame question."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "#### Ins\u00e9rer le programme (comment\u00e9) \"puissance-lim.py\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Exercice de synth\u00e8se\n",
      "\n",
      "Soit $A\\in M_N(\\mathbb{R})$ la matrice d\u00e9finie par\n",
      "\n",
      "$$\n",
      "A=\\left(\n",
      "\\begin{array}{ccccc}\n",
      "4 & 1 & 0 & \\dots & 0\\\\\n",
      "1 & 4 & 1 & \\ddots & \\vdots\\\\\n",
      "0 & \\ddots & \\ddots & \\ddots & 0\\\\\n",
      "\\vdots & \\ddots & 1 & 4  & 1\\\\\n",
      "0 & \\dots & 0 & 1 & 4\n",
      "\\end{array}\n",
      "\\right)\n",
      "$$\n",
      "\n",
      "Dans ce qui suit, on consid\u00e9rera le cas $N=20$ et $N=200$.\n",
      "\n",
      "1. Programmer la m\u00e9thode de la puissance pour calculer la plus grande valeur propre de $A$. Tracer l\u2019\u00e9volution de la valeur propre calcul\u00e9e en fonction du nombre d\u2019it\u00e9rations. Donner l\u2019ordre et la vitesse de convergence.\n",
      "2. Programmer la m\u00e9thode de la puissance inverse pour calculer la plus petite valeur propre de $A$. Tracer l\u2019\u00e9volution de cette valeur propre calcul\u00e9e en fonction du nombre d\u2019it\u00e9rations. Donner l\u2019ordre et la vitesse de convergence.\n",
      "3. On peut montrer que les valeurs propres de $A$ sont comprises entre $2$ et $6$. Mettre en place un algorithme permettant de calculer la valeur propre de $A$ la plus proche de $4$.\n",
      "\n",
      "\n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}