{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "88edeb42",
   "metadata": {
    "toc": true
   },
   "source": [
    "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n",
    "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Décomposition-en-valeurs-singulières\" data-toc-modified-id=\"Décomposition-en-valeurs-singulières-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Décomposition en valeurs singulières</a></span><ul class=\"toc-item\"><li><span><a href=\"#Motivation\" data-toc-modified-id=\"Motivation-1.1\"><span class=\"toc-item-num\">1.1&nbsp;&nbsp;</span>Motivation</a></span></li><li><span><a href=\"#Construction-de-la-SVD\" data-toc-modified-id=\"Construction-de-la-SVD-1.2\"><span class=\"toc-item-num\">1.2&nbsp;&nbsp;</span>Construction de la SVD</a></span></li><li><span><a href=\"#Valeurs-Propres\" data-toc-modified-id=\"Valeurs-Propres-1.3\"><span class=\"toc-item-num\">1.3&nbsp;&nbsp;</span>Valeurs Propres</a></span></li><li><span><a href=\"#Cas-général\" data-toc-modified-id=\"Cas-général-1.4\"><span class=\"toc-item-num\">1.4&nbsp;&nbsp;</span>Cas général</a></span></li><li><span><a href=\"#Exemple\" data-toc-modified-id=\"Exemple-1.5\"><span class=\"toc-item-num\">1.5&nbsp;&nbsp;</span>Exemple</a></span></li></ul></li></ul></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "035af98b",
   "metadata": {},
   "source": [
    "# Décomposition en valeurs singulières\n",
    "\n",
    "Ce chapitre introduit une décomposition matricielle importante, la décomposition en valeurs singulières. Même si une telle décomposition n’est pas unique, chaque variante a des applications utiles. Comprendre ce chapitre\n",
    "\n",
    "-   Donner une motivation pour la décomposition en valeurs singulières d’une matrice.\n",
    "-   Définir les valeurs singulières et la décomposition en valeurs singulières.\n",
    "-   Calculer la décomposition en valeurs singulières d’une matrice.\n",
    "\n",
    "**Prérequis**\n",
    "Les connaissances requises pour ce chapitre incluent les __valeurs propres__ et __vecteurs propres__ et l’__orthogonalité__."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6126488d",
   "metadata": {},
   "source": [
    "## Motivation\n",
    "\n",
    "On considère la problématique d'identification de structures dans les données. A titre d'illustation, on s'intéresse en particulier à la recherche de structure dans les classements de films par des spectateurs : \n",
    "\n",
    "|     Movie     | Alice |  Tom  |  Léa  |\n",
    "| ------------- | ----- | ----- | ----- |\n",
    "| Star Wars     |   5   |   4   |    1  |\n",
    "| Blade runner  |   5   |   5   |    0  |\n",
    "| Amélie        |   0   |   0   |    5  |\n",
    "| Delicatessen  |   1   |   0   |    4  |\n",
    "\n",
    "Chaque spectateur a attribué une note entre 0 et 5 à chacun des filmls en fonction de leurs goûts. Que peut-on dire de ce classement?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba30e2e4",
   "metadata": {},
   "source": [
    "Soit $\\mathbf{A} \\in \\mathbb{R}^{n \\times n}$. Si $\\mathbf{A}$ est\n",
    "diagonalisable, alors $\\mathbf{A} = \\mathbf{P}\\mathbf{D} \\mathbf{P}^{-1}$ pour\n",
    "$\\mathbf{P},\\mathbf{D} \\in \\mathbb{C}^{n\\times n}$ telles que $\\mathbf{P}$ soit inversible\n",
    "et $\\mathbf{D}$ soit diagonale. Nous avons vu comment une telle\n",
    "décomposition permet de calculer aisément les puissances $\\mathbf{A}^k$ pour\n",
    "tout entier positif $k$."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2bb0c47",
   "metadata": {},
   "source": [
    "Dans le cas où $\\mathbf{A} \\in \\mathbb{R}^{n\\times n}$ est\n",
    "symétrique, nous avons vu que, $\\mathbf{A} = \\mathbf{Q}\\mathbf{D} \\mathbf{Q}^T$ pour\n",
    "$\\mathbf{Q},\\mathbf{D} \\in \\mathbb{R}^{n\\times n}$ telles que $\\mathbf{Q}$ soit orthogonale\n",
    "et $\\mathbf{D}$ soit diagonale. \n",
    "\n",
    "\n",
    "> __Définition__\n",
    "Une matrice est dîte orthogonale si et seulement si $A^TA = I$ (ou A A^T =I). Autrement dit, $A^T = A^{-1}$, et les colonnes de $A$ sont orthonormales deux à deux.\n",
    "\n",
    "\n",
    "Soit $\\vec{x} \\in \\mathbb{R}^{n}$. L’application $T:\\mathbb{R}^n \\rightarrow \\mathbb{R}^n$ définie par\n",
    "$T(\\vec{x}) = \\mathbf{Q}\\vec{x}$ est une application linéaire préservant les longueurs; on dit qu’elle est une **isométrie**.\n",
    "\n",
    " Or, si $S:\\mathbb{R}^n \\rightarrow \\mathbb{R}^n$ est définie par $S(\\vec{x}) = \\mathbf{A}\\vec{x}$, alors\n",
    "$S(x) = \\mathbf{Q}\\mathbf{D}\\mathbf{Q}^T \\vec{x}$ commence par appliquer une\n",
    "isométrie, pour ensuite mettre à l’échelle les composantes résultantes,\n",
    "et finalement appliquer l’inverse de l’isométrie. Lorsque $n = 2$, on peut visualiser une telle suite de transformations comme une rotation/réflexion suivie d’une mise à l’échelle, suivie de la rotation/réflexion inverse."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97e60ab2",
   "metadata": {},
   "source": [
    "Que se passer-t-il si nous remplaçons la dernière transformation par une autre isométrie? Autrement dit, quelles matrices peut-on décomposer sous la forme $$\\mathbf{P} \\mathbf{D} \\mathbf{Q}^T,$$ où $\\mathbf{P}$ et $\\mathbf{Q}$ sont orthogonales et $\\mathbf{D}$ est diagonale? Il s’avère que toutes les matrices de $\\mathbb{R}^{n \\times n}$ ont une telle décomposition!"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f50593e",
   "metadata": {},
   "source": [
    "> __Théorème__\n",
    "> \n",
    "> Pour chaque $\\mathbf{A} \\in \\mathbb{R}^{n\\times n}$, il existe une matrice diagonale $\\mathbf{\\Sigma} \\in \\mathbb{R}^{n\\times n}$ et des matrices orthogonales $\\mathbf{U}, \\mathbf{V} \\in \\mathbb{R}^{n\\times n}$ telles que\n",
    "> $$\\mathbf{A} = \\mathbf{U} \\mathbf{\\Sigma} \\mathbf{V}^T.$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2d9f4f55",
   "metadata": {},
   "source": [
    "Si $\\mathbf{A} = \\mathbf{U} \\mathbf{\\Sigma} \\mathbf{V}^T$, où $\\mathbf{U}$ et $\\mathbf{V}$ sont\n",
    "orthogonales et $\\mathbf{\\Sigma}$ diagonale, alors la décomposition en valeurs singulières est une\n",
    "diagonalisation orthogonale de la matrice symétrique $\\mathbf{A}^T\\mathbf{A}$.\n",
    "\n",
    "Si on choisit une matrice $\\mathbf{A} \\in \\mathbb{R}^{n\\times n}$ arbitrairement,\n",
    "peut-on utiliser une diagonalisation orthogonale de $\\mathbf{A}^T\\mathbf{A}$\n",
    "pour obtenir $\\mathbf{\\Sigma}$ et $\\mathbf{V}$?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe596867",
   "metadata": {},
   "source": [
    "Les valeurs propres de $\\mathbf{A}^T\\mathbf{A}$ sont réelles et non négatives. \n",
    "\n",
    "En effet, on considère $B \\in \\mathbb{R}^n$ une matrice symétrique. Soit $v$ un vecteur propre de $B$ associé à la valeur propre $\\lambda$. On a que\n",
    "\\begin{align*}\n",
    "(Bv)^T v &= v^T B^T v \\\\ \n",
    "& = v^T B v \\\\\n",
    "& = \\lambda v^T v\n",
    "\\end{align*}\n",
    "Par définition, nous savons que $(Bv)^Tv\\geq 0$ (il s'agit de la norme induite par $B$) et $v^T v>0$ (c'est la norme $2$ de $v$). On en déduit que $\\lambda \\geq 0$.\n",
    "\n",
    "Si on pose $B=A^T A$, nous avons bien la propriété annoncée au départ."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dcd436e3",
   "metadata": {},
   "source": [
    "## Construction de la SVD"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9c71df6",
   "metadata": {},
   "source": [
    "On considère la diagonalisation de $\\mathbf{A}^T\\mathbf{A}$ donnée par $\\mathbf{Q}\\mathbf{D}\\mathbf{Q}^T$, c'est-à-d ire\n",
    "\\begin{align*}\n",
    "    A^TA =Q\\begin{bmatrix} \n",
    "        \\lambda_1 & 0 & 0 \\\\\n",
    "        0 &\\ddots & 0\\\\\n",
    "        0 & 0 & \\lambda_n^2 \n",
    "    \\end{bmatrix} Q^T.\n",
    "\\end{align*}\n",
    "\n",
    "On suppose ensuite que la décomposition en valeurs singulières de $A$ existe. On peut donc écrire $A$ sous la forme $A=U\\Sigma V^T$, avec $U$ et $V$ des matrices orthogonales, ce qui conduite à \n",
    "\\begin{align*}\n",
    "A^T A &= (U\\Sigma V^T)^T (U\\Sigma V^T) \\\\\n",
    "& = V\\Sigma^T U^T U \\Sigma V^T \\\\\n",
    "& = V\\Sigma^T\\Sigma V^T \\\\\n",
    "& = V\n",
    "    \\begin{bmatrix} \n",
    "        \\sigma_1^2 & 0 & 0 \\\\\n",
    "        0 &\\ddots & 0\\\\\n",
    "        0 & 0 & \\sigma_n^2 \\\\\n",
    "        \\end{bmatrix} V^T.\n",
    "\\end{align*}\n",
    "\n",
    "On peut ainsi identifier les éléments des deux décompositions, nous obtenons $\\sigma_k^2=\\lambda^k$ pour $1\\leq k \\leq n$ et $\\mathbf{V} = \\mathbf{Q}$. \n",
    "\n",
    "\n",
    "Nous devons maintenant déterminer la matrice orthogonale $\\mathbf{U}$ telle\n",
    "que \n",
    "$$\\mathbf{A} = \\mathbf{U} \\mathbf{\\Sigma} \\mathbf{V}^T.$$ \n",
    "Si toutes les valeurs propres soient positives alors $\\mathbf{\\Sigma}$ est inversible et $$\\mathbf{U} = \n",
    "\\mathbf{A}\\mathbf{V}\\mathbf{\\Sigma}^{-1}.$$ \n",
    "\n",
    "Nous devons vérifier  que $\\mathbf{U}$ est orthogonale :\n",
    "\\begin{align*}\n",
    "U^T U& = (A V \\Sigma^{-1})^T A V \\Sigma^{-1})\\\\\n",
    "& = \\Sigma^{-1} V^T A^T A V \\Sigma^{-1} \\\\\n",
    "& = \\Sigma^{-1} V^T V D V^T V \\Sigma^{-1} \\\\\n",
    "& =\\Sigma^{-1} D \\Sigma^{-1}\\\\\n",
    "& = I.\n",
    "\\end{align*}\n",
    "\n",
    "$\\mathbf{U}$ est donc orthogonale.\n",
    "\n",
    "On en conclut que si la décomposition en valeurs singulières existe, alors nous pouvons la calculer simplement."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3586ffa",
   "metadata": {},
   "source": [
    "Si, au contraire, au moins une des valeurs propres est nulle, la situation est plus compliquée, mais conceptuellement semblable au cas précédent."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bc70d07",
   "metadata": {},
   "source": [
    "## Valeurs Propres\n",
    "\n",
    "Soit $\\mathbf{A} \\in \\mathbb{R}^{m \\times n}$. On a déjà vu que $\\mathbf{A}\\mathbf{A}^T$ et\n",
    "$\\mathbf{A}^T\\mathbf{A}$ sont des matrices réelles et symétriques, et donc leurs valeurs\n",
    "propres sont des nombres réels. De plus, elles sont diagonalisable en base\n",
    "orthonormée.\n",
    "\n",
    "Nous allons étudier quelques propriétés de ces valeurs propres.\n",
    "\n",
    "1. les valeurs propres de $\\mathbf{A}^T\\mathbf{A}$ et les valeurs propres de $\\mathbf{A}\\mathbf{A}^T$ sont non négatives.\n",
    "\n",
    "2. Soit $\\lambda$ une valeur propre de $\\mathbf{A}^T\\mathbf{A}$ et $v$ un vecteur propre non nul associé. On pose $u= A v$. On a donc que \n",
    "\\begin{align*}\n",
    "A A^T u &= A A^T (A v)\\\\\n",
    "& =A (A^T A) v\\\\\n",
    "& =A (\\lambda v)\\\\\n",
    "& = \\lambda A v\\\\\n",
    "& = \\lambda u\n",
    "\\end{align*}\n",
    "On en déduit ainsi que si $v$ est vecteur propre associé à la valeur propre $\\lambda$ de $A^T A$, alors $u$ est vecteur propre associé à la valeur propre $\\lambda$ de $A A^T$. Les matrices $AA^T$ et $A^TA$ possèdent les mêles valeurs propres.\n",
    "\n",
    "\n",
    "\n",
    "De même, on peut montrer de la même façon que toute valeur propre de\n",
    "$\\mathbf{A}\\mathbf{A}^T$ est aussi une valeur propre de $\\mathbf{A}^T\\mathbf{A}$.\n",
    "Par conséquent, $\\mathbf{A}\\mathbf{A}^T$ et $\\mathbf{A}^T\\mathbf{A}$ ont les mêmes\n",
    "valeurs propres et elles ont les mêmes multiplicités (algébriques et géométriques)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ac8b81a",
   "metadata": {},
   "source": [
    "Ce résultat se synthétise par la proposition suivante\n",
    "\n",
    "> __Proposition__\n",
    "> \n",
    "> Soit $\\{v^{(1)},\\ldots, v^{(k)}\\}$ une base de l’espace vectoriel des vecteurs propres de $\\mathbf{A}^T\\mathbf{A}$ associé à la valeur propre positive $\\lambda$. Alors, les vecteurs $u^{(1)} = \\mathbf{A}v^{(1)},\\ldots, u^{(k)} = \\mathbf{A}v^{(k)}$ sont linéairement indépendants.\n",
    "\n",
    ">__Démonstration__\n",
    ">\n",
    "> Supposons que les vecteurs $u^{(1)},\\ldots, u^{(k)}$ ne soient pas linéairement indépendants.\n",
    ">\n",
    "> Alors il existe des scalaires $\\alpha_1,\\ldots, \\alpha_k \\in \\mathbb{R}$ non tous nuls tels que\n",
    ">   $$\\alpha_1 u^{(1)} + \\cdots + \\alpha_k u^{(k)} = 0.$$\n",
    ">\n",
    ">En multipliant chacun des côtés à gauche par $\\mathbf{A}^T$, nous obtenons\n",
    "> $$\\alpha_1 \\mathbf{A}^T u^{(1)} + \\cdots  + \\alpha_k \\mathbf{A}^T u^{(k)} = 0,$$\n",
    "> ou, de façon équivalente,\n",
    "> $$(\\alpha_1 \\lambda)v^{(1)} + \\cdots + (\\alpha_k\\lambda) v^{(k)} = 0.$$\n",
    ">\n",
    "> Puisque $\\lambda > 0$ et que $\\alpha_1,\\ldots, \\alpha_k \\in \\mathbb{R}$\n",
    "> sont non tous nuls, on en déduit que \n",
    "> $\\alpha_1\\lambda,\\ldots, \\alpha_k\\lambda$ sont non tous nuls. Ceci contredit l'indépendence linéaire de $v^{(1)},\\ldots,v^{(k)}.$\n",
    "\n",
    "Soient $\\lambda_1,\\ldots, \\lambda_r$ les valeurs propres positives de\n",
    "$\\mathbf{A}^T\\mathbf{A}$ ou $\\mathbf{A}\\mathbf{A}^T,$ ordonnées selon\n",
    "$\\lambda_1 \\geq \\cdots \\geq \\lambda_r$. On appelle  **valeurs singulières de\n",
    "$\\mathbf{A}$** les quantités $\\sigma_i = \\sqrt{\\lambda_i}$, $i = 1,\\ldots, r.$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96187084",
   "metadata": {},
   "source": [
    "## Cas général\n",
    "\n",
    "Nous allons maintenant nous intéressé au cas des matrices rectangulaires.\n",
    "> __Théoreme__ [SVD]\n",
    "> \n",
    "> Pour toute matrice $\\mathbf{A} \\in \\mathbb{R}^{m\\times n}$, il existe une matrice orthogonale $\\mathbf{U} \\in \\mathbb{R}^{m\\times m}$, une matrice orthogonale $\\mathbf{V} \\in \\mathbb{R}^{n\\times n}$, et une matrice diagonale $\\mathbf{\\Sigma} \\in \\mathbb{R}^{m\\times n}$ dont les éléments sont non négatifs, telles que\n",
    "> \\begin{align}\n",
    "    \\mathbf{A} = \\mathbf{U} \\mathbf{\\Sigma} \\mathbf{V}^T.\n",
    "\\end{align}\n",
    "\n",
    "On dit qu'une matrice de dimension $m \\times n$  est **diagonale** si tous ses éléments $(i,j)$ sont nuls lorsque $i \\neq j$.\n",
    "\n",
    "Soit $\\mathbf{V} \\mathbf{D} \\mathbf{V}^T$ une diagonalisation en base orthonormée de $\\mathbf{A}^T \\mathbf{A}$ telle que tous les éléments positifs de $\\mathbf{D}$ sont placés dans les $r$ premiers éléments de la diagonale. \n",
    "\n",
    "Supposons aussi que les valeurs propres sont énumérées par $\\lambda_1,\\ldots, \\lambda_r$, où $\\lambda_1 \\geq \\cdots \\geq \\lambda_r$.\n",
    "\n",
    "Pour $i = 1,\\ldots r$, on dénote $\\sqrt{\\lambda_i}$ par $\\sigma_i,$ la\n",
    "$i$-ième colonne de $\\mathbf{V}$ par $v^{(i)},$ et\n",
    "$\\frac{1}{\\sigma_i} \\mathbf{A}v^{(i)}$ par $u^{(i)}.$\n",
    "\n",
    "Notons que $u^{(i)}$ est unitaire pour chaque $i = 1,\\ldots, r$.\n",
    "\n",
    "De plus, lorsque $i \\neq j.$ Ainsi, on peut construire une base\n",
    "orthonormée $\\{u^{(1)},\\ldots,u^{(m)}\\}$ de\n",
    "$\\mathbb{R}^{m},$ à partir de $\\{u^{(1)},\\ldots,u^{(r)}\\}.$\n",
    "\n",
    "Soit $\\mathbf{\\Sigma}\\in \\mathbb{R}^{m \\times n}$ la matrice diagonale telle que le\n",
    "$i$-ième élément de la diagonale est $\\sigma_i$ pour $i = 1,\\ldots,r$ et\n",
    "tous les autres éléments sont nuls. Alors,\n",
    "$$\\mathbf{A}\\mathbf{V} = \\mathbf{U} \\mathbf{\\Sigma}.$$ \n",
    "Puisque $\\mathbf{V}$ est orthogonale, on multiplie à droite de chaque côté par $\\mathbf{V}^T$ afin d’obtenir\n",
    "$$\\mathbf{A} = \\mathbf{U} \\mathbf{\\Sigma} \\mathbf{V}^T,$$ \n",
    "ce qui complète la démonstration du théorème."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9e6f9f5",
   "metadata": {},
   "source": [
    "## Exemple\n",
    "\n",
    "Soit\n",
    "$ A = \\begin{bmatrix} \n",
    "        1 & 1 & 0 \\\\\n",
    "        0 & 1 & 1\n",
    "    \\end{bmatrix}.$\n",
    "Nous obtenons une décomposition en valeurs singulières de la matrice $\\mathbf{A}$.\n",
    "\n",
    "Premièrement, les valeurs propres de\n",
    "$\\mathbf{A}^T \\mathbf{A} =\n",
    "\\begin{bmatrix} 1 & 1 & 0 \\\\ 1 & 2 & 1 \\\\ 0 & 1 & 1\\end{bmatrix}$\n",
    "sont obtenues en trouvant les racines du polynôme charactéristique\n",
    "\\begin{align*}\n",
    "\\begin{vmatrix}\n",
    "1 -\\lambda & 1 & 0 \\\\\n",
    "1 & 2-\\lambda & 1 \\\\\n",
    "0 & 1 & 1-\\lambda\n",
    "\\end{vmatrix} \n",
    "= (1-\\lambda) \n",
    "\\begin{vmatrix}\n",
    "2-\\lambda & 1 \\\\\n",
    "1 & 1-\\lambda\n",
    "\\end{vmatrix}\n",
    "- \\begin{vmatrix}\n",
    "1 & 1 \\\\\n",
    "0 & 1-\\lambda\n",
    "\\end{vmatrix} = -\\lambda(\\lambda - 3)(\\lambda -1 )\n",
    "\\end{align*}\n",
    "Ainsi, les valeurs propres sont 3, 1 et 0.\n",
    "Posons $\\sigma_1 = \\sqrt{3}$ et $\\sigma_2 = 1$.\n",
    "\n",
    "La forme échelonnée réduite de $\\mathbf{A}^T \\mathbf{A} - 3\\mathbf{I}$ est\n",
    "$\\begin{bmatrix} 1 & 0 & -1\\\\ 0 & 1 & -2 \\\\ 0 & 0 & 0\\end{bmatrix}.$\n",
    "Ainsi, une base orthonormée de\n",
    "$null({\\mathbf{A}^T \\mathbf{A} - 3\\mathbf{I}})$ est donnée par\n",
    "le vecteur $v^{(1)} = \\begin{bmatrix} \\frac{1}{\\sqrt{6}} \\\\\n",
    "\\frac{2}{\\sqrt{6}} \\\\ \\frac{1}{\\sqrt{6}}\\end{bmatrix}$.\n",
    "Posons $u^{(1)} = \\frac{1}{\\sigma_1} \\mathbf{A} v^{(1)} =\n",
    "\\begin{bmatrix}\n",
    "\\frac{1}{\\sqrt{2}} \\\\ \\frac{1}{\\sqrt{2}}\n",
    "\\end{bmatrix}$.\n",
    "\n",
    "La forme échelonnée réduite de $\\mathbf{A}^T \\mathbf{A} - \\mathbf{I}$ est\n",
    "$\\begin{bmatrix} 1 & 0 & 1\\\\ 0 & 1 & 0 \\\\ 0 & 0 & 0\\end{bmatrix}$.\n",
    "Ainsi, une base orthonormée de\n",
    "$null({\\mathbf{A}^T \\mathbf{A} - \\mathbf{I}})$ est donnée par le vecteur\n",
    "$v^{(2)} = \\begin{bmatrix} -\\frac{1}{\\sqrt{2}} \\\\ 0 \\\\\n",
    "\\frac{1}{\\sqrt{2}}\\end{bmatrix}$.\n",
    "Posons $u^{(2)} = \\frac{1}{\\sigma_2} \\mathbf{A} v^{(2)} =\n",
    "\\begin{bmatrix}\n",
    "-\\frac{1}{\\sqrt{2}} \\\\ \\frac{1}{\\sqrt{2}}\n",
    "\\end{bmatrix}$.\n",
    "\n",
    "La forme échelonnée réduite de $\\mathbf{A}^T \\mathbf{A}-0\\mathbf{I}$ est\n",
    "$\\begin{bmatrix} 1 & 0 & -1\\\\ 0 & 1 & 1 \\\\ 0 & 0 & 0\\end{bmatrix}$.\n",
    "Ainsi, une base orthonormée de $null({\\mathbf{A}^T \\mathbf{A}-0\\mathbf{I}})$\n",
    "est donnée par le vecteur\n",
    "$v^{(3)} = \\begin{bmatrix} \\frac{1}{\\sqrt{3}} \\\\ -\\frac{1}{\\sqrt{3}} \\\\\n",
    "\\frac{1}{\\sqrt{3}}\\end{bmatrix}$.\n",
    "\n",
    "En posant $\\mathbf{U} = \\begin{bmatrix} u^{(1)} &\n",
    "u^{(2)}\\end{bmatrix}$, $\\mathbf{\\Sigma} = \\begin{bmatrix} \\sigma_1 & 0 & 0\\\\ 0 &\n",
    "\\sigma_2 & 0 \\end{bmatrix}$,\n",
    "et\n",
    "$\\mathbf{V} = \\begin{bmatrix} v^{(1)} & v^{(2)} \n",
    "& v^{(3)}\\end{bmatrix}$,\n",
    "on obtient $\\mathbf{A} = \\mathbf{U}\\mathbf{\\Sigma} \\mathbf{V}^T$, où\n",
    "$\\mathbf{U}$ et $\\mathbf{V}$ sont des matrices orthogonales.\n",
    "\n",
    "Les calculs permettant d’obtenir une décomposition en valeurs\n",
    "singulières sont très long à faire à la main. En pratique, nous utiliser des bibliothèques dédiées pour réaliser cette décomposition."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.8.12"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": true,
   "autocomplete": false,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": true,
   "user_envs_cfg": false
  },
  "nbTranslate": {
   "displayLangs": [
    "*"
   ],
   "hotkey": "alt-t",
   "langInMainMenu": true,
   "sourceLang": "en",
   "targetLang": "fr",
   "useGoogleTranslate": true
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": true,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
