{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<span style=\"font-size:8pt\"><i>ENSAM-Bordeaux, Mathématiques et informatique. Date : le 14/11/22. Auteur : Éric Ducasse. Version : 1.4</i></span>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Version de sympy : 1.11.1\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import sympy as sb\n",
    "sb.init_printing()\n",
    "from IPython.display import display # pour remplacer print\n",
    "print(\"Version de sympy :\", sb.__version__) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <span style=\"color:#0066BB\"> **Calcul formel : TD n°1, première partie** </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-danger\"> <span style=\"color:#800000\"> <i>Pour chaque exercice, faire exécuter la partie <b>exemples</b> cellule par cellule $\\left(\\mathtt{Maj+Entrée}\\right)$, avant de passer à la partie <b>Travail à faire</b>.</i> </span> </div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color: #0000BB\"> *Exercice 1* </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 1.1 Objectifs </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <i><span style=\"color:#005500\"> Savoir faire du calcul exact avec des entiers, des fractions, des nombres transcendants<br /> et les fonctions mathématiques usuelles ; savoir vérifier une égalité. </span></i>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 1.2 Exemples </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Fractions :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAAQCAYAAACYwhZnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAB30lEQVR4nM3Vz4tPYRQG8M9MY2MwasqKxIQsSX7ExqjJPzELRYkaxIo4jlI2yEyUhvzay3pKShgpaxmNZGM1SUxDyljc+53u3L7f+bXhbJ7ue57e87zvOe9z26anp/3r6KgvZOZaXMJBdOMLniAj4utSC2VmPx6Wn0ci4k4j114j9uAtDuENruMjTmA0M7uXKGAdhvCjWb5+E7ewBgMRMVTZ5BpO4TKOLlJAG+5hAo9xps5pr5A3og+fcLPGC0yiPzM7FyMCA+hV3O5kM0K1Hb0ljkTEn1kKIr7jJZZj90KrZ+ZWXMGNiHjeilcVsaXEsRbcDyVuXqCADjzCZ5ydi1udia4Sv7XgNtZXL0QELmAb9kXE1FzE9rmStWgrcV5jycyditNfjYjR+fhVEY2TdjUjYlWN10pAow1jOD+fAGa3432JrXq+qcRWM9OIFZU9fmZmM85wZg4rBvZkVcSzEvsys736QjJzJfZiCq/nEfELd1vktivm5IXi0KNUbiIixjNzROEVxxUON6MDnbgdETNvvXTYZRiPiN/lPlM43ExBZl4sRTyo2nbdMY/hFQYz8wDeYRf2K9pwrsZ/ivXYoDC5JcWs1xER49iB+2Xx0+jBIPZExMRSC80Vbf/Dr/wvVO6PUgoAy9wAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle 0.4$"
      ],
      "text/plain": [
       "0.4"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ne_marche_pas = 2/5 ; ne_marche_pas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAACWUlEQVR4nMXVO4gfVRTH8U8eaGAFwRQJKMZHYaEiFhY20RgQJfj4R7bz0QrCErDwAXLyExIsBCMoRhA2ELFTsUiiCLsYxUIQfCGiYIKFJkElIRFETdZiZuXv7N1dNwT8NWfm3N+c+51zZ+5dNTc35//W2vmLJOsxwjbciMvxB77ENKar6lyrSJIN+BEvV9VUnzuKTYvMe7yqNi6AwCRewU+YxQ/YgO14DXcnmayqVuvuw2q8Pcifwp6G/8z4zTjEt7gXB8bfOMnT+AQP9EBvNoqO8AsOD/Inq2pnw/8v/QNRVTMtQ1UdS7IXu3D7ECLJpbgDb1TV2eUmXBJiGf3Zx78aY9twEd5qjF2c5EFcid/wBQ4PYVcvN3uStXi4v323YRn1E7zfGNuI/bou7sEMvkty24og8BxuwMGqem8AuA534VBV/T54bhpbe5AJ3R/3Kq7CoSQ3zRuXXI4kU3gc3+ChhuVOXGLhX6GqMkh9hUeTnOlr7tR1cfFOJHkML+JrbKmqXxu2kW4vObDUywy0t4+b5xNNiCQ78FJPv6WqjjU8a3APZqrq1AogTvRxYlGIJE/gBXzWA5wYenptxnqNpVhGt/bx+yZEkmd0H+Kn2FpVPy9RbDvO4Z3hQJLrk1zWyG/SdRhen8+Pnx2P4FmcxYeYSobflqNVta+/vh8fV9XxBuAknkwyiyM4jWt1e8o6HMTzCyBwdR/XYEejMHyAfUluwRW6ZWtpFtfhZl37J3ASH+n2jf3jZ9Cq8znKk+zGU7imqo6suMBA/2WzammEzy8EAOfZiQutvwE1I8BM2pOOQAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{2}{5}$"
      ],
      "text/plain": [
       "2/5"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F1 = sb.Rational(2,5) ; F1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAACWUlEQVR4nMXVO4gfVRTH8U8eaGAFwRQJKMZHYaEiFhY20RgQJfj4R7bz0QrCErDwAXLyExIsBCMoRhA2ELFTsUiiCLsYxUIQfCGiYIKFJkElIRFETdZiZuXv7N1dNwT8NWfm3N+c+51zZ+5dNTc35//W2vmLJOsxwjbciMvxB77ENKar6lyrSJIN+BEvV9VUnzuKTYvMe7yqNi6AwCRewU+YxQ/YgO14DXcnmayqVuvuw2q8Pcifwp6G/8z4zTjEt7gXB8bfOMnT+AQP9EBvNoqO8AsOD/Inq2pnw/8v/QNRVTMtQ1UdS7IXu3D7ECLJpbgDb1TV2eUmXBJiGf3Zx78aY9twEd5qjF2c5EFcid/wBQ4PYVcvN3uStXi4v323YRn1E7zfGNuI/bou7sEMvkty24og8BxuwMGqem8AuA534VBV/T54bhpbe5AJ3R/3Kq7CoSQ3zRuXXI4kU3gc3+ChhuVOXGLhX6GqMkh9hUeTnOlr7tR1cfFOJHkML+JrbKmqXxu2kW4vObDUywy0t4+b5xNNiCQ78FJPv6WqjjU8a3APZqrq1AogTvRxYlGIJE/gBXzWA5wYenptxnqNpVhGt/bx+yZEkmd0H+Kn2FpVPy9RbDvO4Z3hQJLrk1zWyG/SdRhen8+Pnx2P4FmcxYeYSobflqNVta+/vh8fV9XxBuAknkwyiyM4jWt1e8o6HMTzCyBwdR/XYEejMHyAfUluwRW6ZWtpFtfhZl37J3ASH+n2jf3jZ9Cq8znKk+zGU7imqo6suMBA/2WzammEzy8EAOfZiQutvwE1I8BM2pOOQAAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{2}{5}$"
      ],
      "text/plain": [
       "2/5"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F2 = sb.S(2)/5 ; F2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F1 == F2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Remarque : si la fraction contient d'autres symboles que des entiers, l'utilisation de l'opérateur / fonctionne :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\frac{\\pi}{3}, \\  \\frac{3 \\cdot \\left(1 - i\\right)}{2}, \\  \\frac{2}{e}, \\  \\frac{\\sqrt{3}}{2}\\right]$"
      ],
      "text/plain": [
       "⎡π  3⋅(1 - ⅈ)     -1  √3⎤\n",
       "⎢─, ─────────, 2⋅ℯ  , ──⎥\n",
       "⎣3      2             2 ⎦"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[sb.pi/3,3/(1+sb.I),2/sb.E,sb.sqrt(3)/2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Nombres irrationnels :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH4AAAAaCAYAAABxRujEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEpklEQVR4nO2aa4hVVRiGn/FCgRWl+adICMoaG3GcLmYZKYJdjCIlKiM18I9FIoXdQF5fQVDELhAUFGgQFNZAVjpWYthlokCbLoqZREVESAWlWGrj9GPtU5s9e9vZ++w5M+F+YFictfZa77fnW+tb31rntPT19RHH9lpgCvANsFfSair+V9heBEwDzgUOSLor+cyIlH7nAT9KWjiw5lXEsX068HvJw64Bpqc1pDm+YnC4Drhe0ltlDWg7M1oPK0ukomGmA+82S6xy/BDA9nBguKSjzdKsHD80uArobqZg5fihwY3AlmYKVsldAtsPAOuAeZJeapLsGEm/NEkLqByfxmVRubMZYrYvBL7KaBsD3ArMBiYSzuVHgS+A9cB6SceL6Fahvj+PAK3A103Suxl4I6PtNuA5woXax8CTQCfQBjwPbLTdUkS0WvEJJH3fZMnxkvZltO0jTIzN8ZVt+zHgE2AuMIcwGXJRl+NtzwberHPMyZJ68hpyAu25wCLgcuAM4DtCmFsjqbcsnUhrBrAdWCvpoRLHHQasBD6U1BWrHw1k7u2StmfU/2T7WWAV4fw/MI4HfgOeARYDu4FXY20XA7cDHwDvAJ/nNSKN6Gz7InAHsB94BTgC3EB44YuABWVoxeiIyk9LHncWMBU4B+iK1TeSzR+Lyr+KdK5rj5dUcyrAa5JW1P6AXVH9BkkriyYbKTxFcPpqoFXSYklLCftbNzDf9oSStGrUHL/rhE/lRNJW4EHgpmj115hKgfO77RHA/Ojj1iI25Unu2qOyJ1HfkVFfGNtTgHuBTZIelfTPrJZ0DHgh+jilLM2IDuAQA5DYRdvfYcJlDbZHAr0FF8pqwgLYUvRuP09y1x6VnyXqOwjh5ssiBmRwP9ACHLa9IqW9LSoLZbRp2B4FjAe6S4xaSV4HbiFsi9OBHXkHsL2EED32AncXNSSv4w8R9tuaEacBFwC7JR0pakQKs6Lyzv94rswMfBIhApYa5hNsIuRKywjv6Dydbd9H2AL3ADMl/VrUkHqz+rOAcYTVEP/lxmTCquspakCK1qnAWOA9SdeWNW4dDFRiF2cHMNZ2KzBK0qF6O9peCjxBiKwzJR1oxJB69/j2qEwL81Ci4/k3fJ9d4pj1MCCJXZwoV9kCLCfcvtWF7YcJTu8BZjTqdMjv+J5EfW2v7fcStjfY7rO9MI9Bkv4gHAkn2J6T9oztadFxrxTNiA7gT0IYLXPcJJsIW1jWbV1SezkhmdtJWOk/l2BD3Xt8e1QmV/zoqLzE9h5JP8TaapOqyDlzGbAZ6LS9jTARhhHuqi8FRkoal9KvkKbtU4AJQE/8BNHouBl0AR8l/ldZdi0gXPz0Au8DS+x+acG3kjbkNaLeFT8JOE7/lb2RcPO0inDmjjMROEhwYC4kvU049nRG4ywhZLCtwDbgnoyuRTXbgJFkh/nC75JE0kHCly71cH5UDgeWAkr5W1jEjpaUX9m+TEjauoD9kp7OO6jtMwkTYl2ZV5+DoTkY79IotucBVwBXE+4Krkw+kxbqFxBmP4QQU4RrCFeKjxfsP5Q0B+NdGqWTcGcAGT7st+IrTg6q7+NPUv4GaFuIPPW3F0sAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\pi, \\  e, \\  i, \\  \\sqrt{2}\\right]$"
      ],
      "text/plain": [
       "[π, ℯ, ⅈ, √2]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "L = [sb.pi,sb.E,sb.I,sb.sqrt(2)] ; L"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\frac{\\sqrt{2}}{2}, \\  -1, \\  \\left(- \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right)^{3}\\right]$"
      ],
      "text/plain": [
       "⎡                    3⎤\n",
       "⎢√2      ⎛  1   √3⋅ⅈ⎞ ⎥\n",
       "⎢──, -1, ⎜- ─ + ────⎟ ⎥\n",
       "⎣2       ⎝  2    2  ⎠ ⎦"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = (-sb.S(1)/2+sb.I*sb.sqrt(3)/2)**3\n",
    "[sb.cos(sb.pi/4),sb.E**(sb.I*sb.pi),a]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Égalités :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[False, True]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[ a == 1 , a.equals(1) ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.simplify() == 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">$\\hspace{30mm}$<u>Moralité</u> : toujours utiliser <b><tt>equals</tt></b>.</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 1.3 Travail à faire </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$a)$ Définir le nombre $\\displaystyle g=\\frac{1}{2} + \\frac{\\sqrt{5}}{2}$. Vérifier ensuite que $\\displaystyle g=\\frac{1}{g-1}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$b)$ Définir le nombre complexe $\\displaystyle z=\\exp\\!\\left(\\frac{2\\,\\mathbb{i}\\,\\pi}{7}\\right)$. Vérifier ensuite que $z^7=1$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$c)$ À l'aide de la méthode <tt><b>expand</b></tt>, développer $\\displaystyle(1-z)\\left(\\sum_{k=0}^{6}z^k\\right)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color: #0000BB\"> *Exercice 2* </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 2.1 Objectifs </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <i><span style=\"color:#005500\"> Savoir définir et manipuler des expressions littérales simples (développer, factoriser,<br /> simplifier, extraire des coefficients, etc).</span></i>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 2.2 Exemples </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Définition de symboles :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c,X,Y = sb.symbols(\"a,b,c,X,Y\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Définition d'expressions littérales :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAASCAYAAACOwipdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEbUlEQVR4nO3Ze8ieYxwH8M82bDmsoSayHKaUNWf5g+QQ0URDzodXCCM2pymHX7+RIrGNUasN04Q/HLIYOayknMYwiTm8SpucY0YOvf647ofHved9977b87yvtO8/19N1ur/373v/Dtf1DOvp6bER/z8MH2oCG9EZbDLUBDZiYMjMKZiD8yJifm/z2ipsZo5BN/7EzhHxU218OB7FiZgXEee38/ntQmbegBn64JiZ+2EJfsFBEbFikOjtW7VL+5rU1lAcET9gNrbBpS2mzFZEXYQL2/nsNmMWvsdZmbljfTAzd8PTGIZJgygq7Idf8X5fkzqRY+/Ej7gyM7dsdGbmdbgEr+KUiPizA8/+G5nZlZk9mXnoQNdGxI/Ke2yGq2r7bodnlY/3pIh4Y8PZ9g+ZORIT8G5E/NHX3Lbn2Ij4PjPvQkPIWzPzXNyMD3FsRKxpQfp0TMIB2B5/4GPcExH3tZtnPzAL03BBZt4cEd9k5lZ4BrvinIhYPMicJmJTLM3MvXEDDsUovIIrImI5nauK78BqXJWZJ2MuVuHoiPi2Prky2AOKwV7G3XgMu2B+Zk7vEM9eUXntTGyOyzNzMzyOfTA9IhYMNiclDMNOipA9mIe3cCRerOqczlTFEfFdZt6Na/GIEpqPiYjuXpb0YFxEfNncmZnX4yOci1s7wXUdmImpSr2wB47ArIi4bQi48I+wB+LgiHi7MZCZC3AWpuCWTp5jFzX9PiMi3ultYkSsrota9a/CSiWfDTqavHYMTlA+0mlDwaVCoyK+plnUCnOqdiI1j83MbsXN+4uFEXFmvTMzd8DCpq49/Fvo+vytFa+YhN0x2r/TRP0l6uu79c77pcys9z0QEV197dmEh5H4AmdHRL+u6tply6b9NlVE+xyt0kDDMUaxdij+RCml+4uVLQiMwWLlpW7EdCXXzomIn1vM3xPPYTu8rhjyO/yu5Niz0au3V5ipeFUz9sbxSu7uro0tW8d+zZhQta9FxG8DWLfBtqxholKlP9VLRdz4iD6nJmxEHDEAImshM0fhyYrEjIi4KTNHK0eGi3F7i2UPKqIcFhFLavvNqH6+2ddzI2JmCy5dirD31/cdIBp5rU8OLThtkC1boBGGu3sZn1y1z9HGqjgzR+AhHIK5ERHV0G1Yg6szc/PamnHYE0taiDpGKZpYxy1Lh7F/1Q5I2A6g8YGtVW9k5vbKhc8K7RZWSd6T8YRSmYGI+Br3YCwuqq1phKpdqxzSILqtUqjsqJxnl7WR50DRMOhQflz8w+O0zNyi0VldAi3ASFzWCNPD2vG3XZbq5EblDHpURPxaGx+Lz/ATdomIX5rGXsDhSoH0vHI5cQxeUirR5RGx13pw6sJ9WoT4AeyxkxL6Po2I8euzRzuQmZsotvtAOVePUBxopGKjHTA1ImY31mywx2bmRYqoy3FcXVSIiK9wr1Ig1e+IT1Xy7DglD4/HFbil4jeUIXC98msHMEGpdt9UztLvKXbsUu6MD28WlTZ57Eb89/AXb02CuYiOa0wAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle - X a + Y - b$"
      ],
      "text/plain": [
       "-X⋅a + Y - b"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ecart = Y - (a*X+b) ; ecart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left(X a - Y + b\\right)^{2}$"
      ],
      "text/plain": [
       "             2\n",
       "(X⋅a - Y + b) "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q = (ecart**2).simplify() ; q"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Développer et regrouper des termes :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle X^{2} a^{2} - 2 X Y a + 2 X a b + Y^{2} - 2 Y b + b^{2}$"
      ],
      "text/plain": [
       " 2  2                        2            2\n",
       "X ⋅a  - 2⋅X⋅Y⋅a + 2⋅X⋅a⋅b + Y  - 2⋅Y⋅b + b "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d = q.expand() ; d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAAVCAYAAABMgPWWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAJOklEQVR4nO2df9AVVRnHP/xQkNRInPyFKU6TjYRDYmNTDYOhpUNjalqZoGg2iBaRksSUfXuIzB+ZLyjQWAjS2AgzlI6MqWNIMU5hUG9F9EOr12zEwDCJtEykP569cN/77t67e3b3vhfczwyzcHf3Oc9zvuec3fNrGbB7924qKioqKvY/BhdhxMzmAOcDJwL/BX4GzJG0qZNtV1RUOFU92zdppdvAgtKZACwC3gO8H3gVeNTMDutw2xUVFc4Eqnq2LzKBJroNKGOIxswOBl4EzpX0wL5iu2zMbDlwFjBK0r/725+KdJjZVcBC4JOS7mpx7ThgA3CFpCXt8K8M9uV6lpYsuraLvD416ja44eRwoAfYBRwv6V8N5wcCK4GPAEskXZGQziF472B7VgdTUKbtpuTJHzM7FZgMzCqycTezEcB5wCRgDHAM8ArwG2ApsFTSaw33XA/MbfSx4ZpxwFrgZeC9kp4syuciCIk7B6dEx42tLpS00czuA+aZ2QpJOwvyIRUFatsv9SyrrjnjTa1rG8nrUy/deg3RSPonsAA4DPh0zM0L8MZrNTCtSSJdQDc+HlQ0ZdpuSs78uQHYASwu2K0LgW8DpwHr8fxZBbwD+A6w0swGNNwzH3gBmGJmIxsNmtlbgQeBAcCkTmvcI0LiDmUc8B/gtymv/zpwJDCjoPSzUJS2XfRPPcuqa554s+raDvL61EWdbnFj8LfhDdG10es+AGb2ReDq6MaPSdoVZ93MbgHGAxcmXRNKXttmNtXMdpvZhBxuZM4fM3sbcAawUtLLOdKO44/AOcBISRdLmiPpcuDtwDP4A+f8+hsk7YjiOBCYVX/OzI4AHsYfYhdI+nnB/tanlUePzHEH+jgEGA38WtKrae6R9ATwe2CamQ0KSDM4X4rQtsw6nIJMuobGG6JrK/K2L3l9itOtzyoaSS+Y2e1ArcG6ycwuA+YBfwA+JOmlhARuxYchTpf0VBNHPoF3wd4FHIVPDDwFLJK0NI/tsgnMn8vxN4gVJfizJuH358zsW8DX8ImYVQ2XzAc+B3zKzOZJet7MDgF+CJwAXCrpofobQnQrixxxZ41jDHAAsNHMxgLXR3aHAo8D1ySsNLkX+Ar+YH84U3D5yaxtjf6uZ4G6hsQbqmuZBPuUpFvSKppvAjuBWWb2UeBOYAtwlqR/JCSwoC6BzUkRRBl/N57x64A7gO8Do4C7zGx2qO02kjV/zsDH7dvd3f1fdOzzNhC9+XQBw4DPmtmBwA+AdwKzJS2vvz5Et34kMe6AOMZFx+PwSrYbWAL8AjgTWBPNzTTyeHQ8MziKQLJqW6MD61kjsboGxhuqa5kE+dRMt9h18JK2m9kdwBfwt84dwNmSeuKuN7NFUQLnAtvN7Mjo1M6YSabdwLGSnmuw8SW8e3YZcFOg7baQJX/M7A3AWOB37Vw5Y2aDgUuif8a+reGVYiY+n3ASMBGYL+nmmGsz6dZfpIg7axy1Snca8D5Jv6y7ZzkwBbgKn2OppzYcMD4gjCLoIr22HVnP6kmhaxcZ4iVc1zLJ7FMr3Zqtg19d9/eLJf2qybXT8dnbH+FvsrU/sxovlLSzsXJFv28BnsXHy4Jst5m0+XMMMAj3uZ3ciE9MPSgpdoig7s1nOD6uuQLv6sZdm1W3/qJp3AFx1FY1XFdf4SIWRscxMfZexCfL3pLN/WLIom1Ep9azGq10zRpvkK4lE+JTU91i3+DN7GjgnrqfTqJ3g9YLSalXK5jZm/Cn7CR899Wh9B4q6hVYFtsN6fTgXZ04HjOzxt/uljQ1pe0s+TMiOr7QxF4Pyb7GcY+kyU3szQCuxSf6prSwdS9gwN+ASyTFbozIqlvM/T2UpEddGi3jzhKHmR2AV6ingbhufu1BMTTBpe3AES187qG8fEmlLZRWz+JoWnYT0khbntOW5by6Fq5bqE+tdOvTwEdjPA/hzn8ZmI2PNS/MO8RgZicDj+CF/glckO342NoovAvWrKeQhS78aV7PWODD+BhsT8O57jRGA/KntmomsbAAf8Lf9tLybBP/rsYnnTYDEyW1Wsc8Ojqul/RKgs0idOuiBD3qfGwZd0AcY/DVGQ8krGqoVfCnE9w6iL36J9FFefnSUtsCKKzsxpGxPKeNN6+uULxuRfjUh8aNTkOB+6PE5kr6qpkdir/uTwe+kcV4DN/FM+V0SWsb0p4b/XVDzjQAkNTV+JuZTcUFWNaYfhoC82drdBwRc67m68SsviT4NxNfMrYJrwxbm98B7B33a5bvuXUrQ486OzNJF3fWOGpd5p4Ee+dFx0difBoYpfWXZr6XmS+k0zYXRZXdOALKc9p4g3WtUYJuuX2KY0/XNFqv+z18UuhOSYpO3Qy8BHzezIZlMV6PmR0LnAysjalcw/HJLeisXWV7yJE/W4Bt+HBAmf7NxitDN96ApWncAU6NjrGVotN1Sxt3YBy1BqPP/IKZHYVvZnuS+Ep3Ir40tjtVIOXQVNtOJrA8p403j65lUYpP9WOPC/GnxH34TC0AkrbhH7N5M3BlFuMN1LpxJ0TjTcCerckrgJH48qfuHGmUSVD+ROOAPwEON99VVzjm27VvxBuniZKez3B7rWAlNdAdq1vGuEPiqOXNRdFqqNo9B+PjpEOAGQld6ndHx8dSB1Q8rbTtSHKU57Tx5tG1LErxaXBkxPAnxDrgIvXdvXYL3qhdZ2aLFbAbU9I2M1uDf/FsvZk9im8yORuvBK8BmyVlGc9rCwXkzyp8B94H8Q01Rfp2Kf4tjl2RfzNiJnh6JC2Lufc44HDgz5JiJ4E7VbescWeNI1qWNwafdB0GdJt/Y2YIvkrjaGCmEjYMAR+IfLu/iHizkkbbTiS0PKeNtwBdC6dMnwab2ZX4ZOEm4Jy4iippq5ktxmeyp+ETDCF8HLgVr1TT8Q8IXRMdL6ADu5IF5c8q4O/4JN5CimVUdByErwOO48fAspjf045ZdqJuIXFniWM0PjG+AV+ZcTt7vy/0U2By0jirmb0RX5e8WtIzqSMqltLH30sitDynjTdY1xIpzadSPhdc0RfzD/PfAJwSs8a1Yj/CzD6Df3huvKR1/e1PxeuXov7Dj4rW3Ab8Fe9+VuynmNlBwBxgVdW4V/Q3VQPfJqKhnSnAhvpJlIr9juPxbxN1yg7Qitcx/wfvWh5bVQkDMgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle X^{2} a^{2} + X \\left(- 2 Y a + 2 a b\\right) + Y^{2} - 2 Y b + b^{2}$"
      ],
      "text/plain": [
       " 2  2                         2            2\n",
       "X ⋅a  + X⋅(-2⋅Y⋅a + 2⋅a⋅b) + Y  - 2⋅Y⋅b + b "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d.collect(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle X^{2} a^{2} + 2 X a b + Y^{2} + Y \\left(- 2 X a - 2 b\\right) + b^{2}$"
      ],
      "text/plain": [
       " 2  2              2                       2\n",
       "X ⋅a  + 2⋅X⋅a⋅b + Y  + Y⋅(-2⋅X⋅a - 2⋅b) + b "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d.collect(Y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Extraire des coefficients à partir d'une expression développée :"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\star$ Extraction des coefficients des $X^p$ :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( a^{2}, \\  - 2 Y a + 2 a b\\right)$"
      ],
      "text/plain": [
       "⎛ 2                ⎞\n",
       "⎝a , -2⋅Y⋅a + 2⋅a⋅b⎠"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A,B = d.coeff(X**2),d.coeff(X)\n",
    "A,B"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\star$ Coefficient constant :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIcAAAAUCAYAAACnFS7nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEa0lEQVR4nO2abYgVVRjHf5vrC6Ug9qE3QXqBIluwNhAqYm3pk1Bq+SFademFyMK2kmQ/yJ9/VEgR3VWUoMxVCCqQAsEyyuxDlKS1lFlkxUpREmJUQmXa9uHMtdvcmXvnzr2zitwfLIc7c87z/J95zpy32Y6xsTHatEmis5nGtgeBRcDlwF/AR8CgpH0t0NamILLm7awm/fQAG4DrgJuA48A7tmc0abdNsfSQIW8drZxWbE8FfgUWSNrWMsOnEbaXA+uBuyW9dKr1QPOa0vLWWVFhNfA4sFHSPSlGuoFdwB/A9ZIOxKpMI4xGRxoV2Ay2zwUWAvOBLuAi4BjwObAJ2CTpn1ibvPFeE93e2/pIctOspsS8VU4rQ8AvwBLbM+OtbV8GbAc6gPkJHQOgBIwQ5rDxZDHwAjAX2B3p2ApcBbwIvGa7I9Ymb7zdwJ/AF60PIzfNaiqRkLeTnUPSb8BzwCRgZWUl2+cBO4AZwO2SPo5bt/0McCOwWNKJnCLz8jVwCzBT0p2SBiXdBVwBfA/cRliAnSRPvLYnA7OBzyQdb5V42/22x2z35GjblKZaeYvvVoaAh4F7bT8h6bDtacCbwCXAMklvJTh4FugD5kn6plGBzSJpZ8r1Q7afB54kLMK2xqo0Gm8XMBHYa3sOsDqyOwX4AHjkFOzUcmuql7f/7Vait6kEnA08ZHsS8DpwNbBK0pYEB2srHOzPF1+h/B2VVW9Vjni7o3IW4cGPARuBT4CbgZ22p7dYfz1yacqSt6RzjhIwADwIXAn0AkOSnk5wsCFysAA4Yvv86NZRSUczhVYgtjuBpdHPqhEvokTGePkvEXOBGyR9WuFrC7AEWA481az2BmhYU9a8VZ1zVLxN0wnz9KuEoTeJ+wkr3XeBnyr+VqbUH2/WEBal2yXtSKrQYLzlXcFjlUmIWB+VXU3ozUMeTZnylnZC+gpg4AdgqaTEwxBJ8R1AJmyPEobBrLwsqa9BHyuAR4GvCG9PLerGa3si4SEfBKqmV+BQVE6po2uU9Njfsx2/tllSf4qtXJqy5i2tc8yOyt2SjmUx1CDfErZeWfmxEeO2HyAsNvcDvZLqnbtkibeLsLPZlrIrKCf8YB1fJcIoVckc4FZgMzAauzdSw1arNCWS1jnK89iePEbrIam3CLsAtgcIW9R9hI7xc4ZmWeItD9+jKfcXRuXbtRxJKsWv2e4ndI5hSbtqtS9CUxpp31aujcpCOkdR2F5F6BgjhFV4lo4B2eItd6Cq70a2LwDuAw6QMxE5KVRTWucoOz2djohrEh2HryFo7pV0uIHmWeIt17nD9jkVfqcS5vvJwIpWHo5loFBNVR/ebM8iDFPfSbo0j9HxxvYyYBg4AawjfESKMyppOKFt3XijLfHvwJeEM5EJwBuEh78IuBAYkLQ2p/5+wjegeVmnlaI1QfKao9D1RkFcHJUTCGcWSbxP6EBxssQ7m7Di30PY1awjDNkAHwJ9Da4VWkHhmlr6yb7NmUWz/+zT5gzmX6rkAt4a9Y6EAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle Y^{2} - 2 Y b + b^{2}$"
      ],
      "text/plain": [
       " 2            2\n",
       "Y  - 2⋅Y⋅b + b "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C = (d - A*X**2 - B*X).expand()\n",
    "C"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\\star$ Récapitulatif :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ a^{2}, \\  - 2 Y a + 2 a b, \\  Y^{2} - 2 Y b + b^{2}\\right]$"
      ],
      "text/plain": [
       "⎡ 2                   2            2⎤\n",
       "⎣a , -2⋅Y⋅a + 2⋅a⋅b, Y  - 2⋅Y⋅b + b ⎦"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[A,B,C]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* <span style=\"color:#600000\"> *Si l'expression n'est pas développée, cela ne marche pas :* </span>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( \\left(X a - Y + b\\right)^{2}, \\  0, \\  0\\right)$"
      ],
      "text/plain": [
       "⎛             2      ⎞\n",
       "⎝(X⋅a - Y + b) , 0, 0⎠"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q, q.coeff(X**2), q.coeff(X) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* <i>Variante, qui utilise la définition de polynômes par le type</i> <span style=\"color:#0000A0\"><b><tt>sympy.Poly</tt></b></span> :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ a^{2}, \\  - 2 Y a + 2 a b, \\  Y^{2} - 2 Y b + b^{2}\\right]$"
      ],
      "text/plain": [
       "⎡ 2                   2            2⎤\n",
       "⎣a , -2⋅Y⋅a + 2⋅a⋅b, Y  - 2⋅Y⋅b + b ⎦"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sb.Poly(d, X).all_coeffs()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\operatorname{Poly}{\\left( a^{2} X^{2} + \\left(- 2 Y a + 2 a b\\right) X + Y^{2} - 2 Y b + b^{2}, X, domain=\\mathbb{Z}\\left[a, b, Y\\right] \\right)}$"
      ],
      "text/plain": [
       "Poly(a**2*X**2 + (-2*Y*a + 2*a*b)*X + Y**2 - 2*Y*b + b**2, X, domain='ZZ[a,b,Y\n",
       "]')"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sb.Poly(q, X) # Fait le développement sur la forme factorisée"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAL8AAAAVCAYAAAAXbT+OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAE/klEQVR4nO2aa6hUVRTHf5Z9sXyU0YOU9ErahzQ/FGVheRWsEMLKIMLnl6gMs4zCMv7+haIIH5ldgiJvRVCBEYRR4uNG9DCSjMTSNO6HUsmrIZo9fNw+7DM29zgz3pk558wMzR8O+8x+rbXXXXedtf979+nu7qaJJv6P6FtrBZpoolrYXgjcCYwC/ga+AhZK2lZq3FkZ6NZEE2ljAtAG3ABMBI4D621fUGpQn1zaY3sCsCmvbYekK1NQtIkmUoXt84BDwFRJH+bVXwjsz/0ulPZ8CnQAXbEJpwE3A2OBq4H+wNuSpies+2mwPQRYAtwKDAb2Ah8AlvR72vKThu3BwB3AFGA0cBnwD/A9sBpYLelk7TTsiQa0f39CVnMwVn8UcPQ+u1Da0yFpsaRVsfpFwEME5/81QUVLwvYIYAswB/gaWA78DDwMfBk5UqPhbuBV4DpgM7ACWANcBbwGvGe7T820y0OD2n8FsJWQ+5+CpKORby8GOsvZ8D4C/ALsInwBNpXunhjagIuAeZJeylXaXhbp9Axwf0a6JIWdwO3A2vwIb/tJgoPdRdjAramNej3QUPa3/QJwEzBe0olSfXvt/JJOObvtUl0Tg+0WYDLQCbwcVwm4D5hhe4GkPzJRKgFI2likfp/tVwgONYECzm/7XkK6dC1wKWFztwtok7Q6ST1raf9K1ml7KTAdaJW060wy6p3tmRiV6+I5sKTDwOdAP+D6rBVLEcei8ni8wXZ/4A2gBfgMWAW8DwwHXrf9RMK61MT+lazT9kr+c/ztvZFT7zz/qKjcWaT9J0JkGglsyESjFGG7LzAz+vlxgS7dwFBJ+2LjFhFsNAd4PkGVamX/stZpu43g+FOBg7YviZqOSDpSTEi9R/6BUXmoSHuuflD6qmSC5wib3o8kfRJvlHQk7hBR/V5gD1CS164ANbF/Bet8gMDwbCAwUbnnsVJy6j3ynwk5RiTVOxq2O4HLyxhSNgVsex6wAPgRmFGkz/kExm0KISoPoGcA+7YcmQkgFfuXu05JFTFj9e78ucgysEj7gFi/tLAb+KuM/nvKmdz2XOBFYDswSVKcn8b2GGAdcDGBEXqHwGMfI+TCM4HvypHbC2Ru/yzXWe/OvyMqRxZpvyIqi+WkiUDSpLTmtj2fwJ1vIzj+b0W6vkVIL1oldcTmWBK9fpOwerWwf2brrPecP0evTrbdQ9eIEbgR+JPYYUajIGItlhMOZFqLOb7tocAYwgFkR6xtEGEDCOEwKklkav+s15mq89tut91te3Yl4yXtJnwChwFz49MD5wJv5nPM1crMCrafJmxwtxAifleJ7rmUq8X2OXlzDAbeBYYQqNGtMRmNZv+K1lkpep322J5KoJIAclTSONvt0XuXpPjuOvfPdRpnXQYeBL4AVtqeBPxAuBbQSvjcPpWCzFRhexbhrswJAo89r8DBYaekdgBJ+21vJPDum22vJxz83EaIzieB7ZLi+5KGsn8V66wI5UT+scCs6LklqmvJq5tWYMxo4DCwtlIFo+hzDdBOMPoCYASwEhgn6UDSMjPA8Kg8G5hPOC2NP7NjY+4h5MNDCdTeCOBR4FnC37FQHtyI9q9knRWh0JVmRxd/qkKUox0Alkp6vNr56lVmvaJp/9Kw3VEo7ZFtUf19/vEEempZFXM0gsx6RdP+McTv8+dH/mH0/NR2FbjW3EQTDQvb/YBTX6R/AekfSqnkZQk0AAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left[ 1, \\  0, \\  - 2 a, \\  0, \\  a^{2}\\right]$"
      ],
      "text/plain": [
       "⎡                2⎤\n",
       "⎣1, 0, -2⋅a, 0, a ⎦"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sb.Poly((X**2-a)**2, X).all_coeffs()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Factoriser :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAAAVCAYAAADctttwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAFIklEQVR4nO2bbYgVVRyHn80+aJktKmkFZVEKQbRUHyzCLC0NoqyskKy2ENTeILJiKfrxsyjI0sVSQRA0MEqQkvzQh8JIgjAhA+mFjJYiJS3NMitItg9nrs3OnXvvzL1zd6/rfeAyd8+cc+Y/D3PuOXPO2Y7+/n7atGnTOKcOdQBtTj5s9wC3A1OAf4BPgR5Ju4c0sAY5ZagDaHNSMh1YDVwNXA/8C3xge+xQBtUoHWnDPNtvALOBCyT9OehRNRHbVwA7gQWS1tXIO2w9QOu4sD0aOAzMkfRekXUXTTVnZY3J9pXADmCJpOWx9E6gDzgGTJL0R6LcKcAm4A5gnaQFhd9JBWzPBa4FuoDLgDOAjZLmV8j/DjAVuFjSkQp5Uj1E5zppQRd5PURl6nZRlAfbZwN7gWskfZLlXouiSGdpw7wXgd+BNfFESb8BK4GxwCMp5VYSpG0FFma+m2J4lhBTF/BThvwvAROBx6rkSfUALe0irwdowEWBHnqBXYR3p8GmMGcDGpPtycBMYJOkv1IqWUGQ+kTUNZfKPQM8TJBxt6RjGYMqiseBycAYYHGtzJJ2AF8DC22PSJ7P4AGa4MJ2t+1+29OzlkmQywMU4qIhD7aXAdOAO+t9bhr0VpizZM/0INABvF2hkkPAa8A4gihsPwC8AHwD3CzpaJ47KQJJ2yR9KynPPP9bwHmEByVJVQ/RNVvORZ0eoAEXjXiw/SpwHzBD0p6cMRdCkc6SjWkmYfxbrbtdDhwBlti+C1gL7ANmS/o1Z0BDSWlsfkPKuSweoO2iRG4PtlcC84HrJH1Zb+BDSJmz443J9umEceNX1WZrJB0EXgfGE36tjgI3SeorPt6m8ll0nBZPzOoB2i5K5PVgezXQDcwDDtqeGH1Gp+VvUcqcxXumc4ERhF+UWmyNfb9H0heNxza4SDoM/E3oquPk8QBtFyXyeFhMmDX7MKq79FmSNeahJs1ZfAfEuOh4qFolts8BNsaSLmGgyKrY7gPOz5qfGtOUDXIQmJBIy+QBGnNRw8M228m0DZK6s9RdJ3W7yOtBUkc9AUbX6qN1vA1wFm9MpZmakZVKRusK7xNu5jngacI4eVWOhbzvCC06K3tz5M3LKP6/7xI1PUAhLnqBzkRaF3ArsIGwfhNnV4Y6G6EuFwU9E3nopXW8DXAWb0z7o+M4UrA9EtgCXAoslfS87TGErnkx8EqWq0uaUUfQhRMtKHYC3ydOVfUQlW3YhaTelHq7CQ/Fekkf1aqjKOp1UdQzkYdW8ZbmLP7OtA84QNh8mCw4AniT8LK1VpKiUy8TXjaftH1ac8JuGlMIU767EukVPUDbRYlh6iEPZc6ON6Zonv1jYLztixIFVwG3Ae8CD8XKHCBsWDwLWNSkoJvF1Oi4LZ5YwwO0XZQYjh7yUOYs+S8YmwnbP2YBewAc3ugWAtuBeSmr1MsIMp+yvabKjoGmYXsOMCf6c2J0vMr2+uj7L5KSM0U3EtZPtqRUWeYhuk5Lu6jTA+R00eoe8lCks+Si7WbgZ8KqNLYXEV4qdwO3SCqbOJC0n7BnawKDvyevRBdwf/SZFaVdGEubG89s+0yCwK2Sfkypb4CHqMyJ4KKLHB4gv4sTxEMeuijIWdqu8R7CxsbLJX1efOxDj+1HCZswp0naXiHPsPcAbRf1UMlZ2q7xFcAPwNJBim1QsT0K6AE2V3p4Ioa1B2i7qIdqzsoaU9Rt3wvsjLaTDDcmEfaOVV1tPwk8QNtFPUyigrP/AFVvN7zkpVAYAAAAAElFTkSuQmCC\n",
      "text/latex": [
       "$\\displaystyle \\left(X - 1\\right) \\left(X + 1\\right) \\left(X^{2} + 1\\right)$"
      ],
      "text/plain": [
       "                ⎛ 2    ⎞\n",
       "(X - 1)⋅(X + 1)⋅⎝X  + 1⎠"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "( X**4 - 1 ).factor()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAD8AAAASCAYAAADsbQY3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAClklEQVR4nOWWS0gWURTHf6mL6GESUdGmiCgIom+ZG3NXQZSREGGQUaI9ICJ70MM//17QgxLLBCHShUHRosBFqwzatGhR4SZa5CaCHiqF9gD5WsxMjOPnh9h8FvSDYe6ce+bcc2buuedMy2az/K+UpG3Q9gngPNAq6UDa9tOkKE1jttcAdcCrNO0WitSCtz0H6AJ2AwNp2S0ko7a97TKgDxgBlkj6mpgvAu4BW4FbkvbEptuB+5Ie224qpNP5sF0NrAUywGpgNtAlaUdSd9SflzQItABzgVz52kIQeDdQH1uwDlgGnE4jgD/kFIHvGeBdPsVc2/4a8AU4bHtWJLR9EtgPPAO2SRoJ5SuAC0CNpJ9peG+71nbWduUkXj8ELAdKgb35FMec9pIGbF8HomAv2t4FnANeAxslDcdeKQfmAb22I1kxUGG7AZgp6cckgpgUknqiccyfnIxX6q4CB4FG228J8vk9sF7S54TuA+B5QnYbeEOwI1LZDYUgZ/CS+m3fAI4DdwnSYIOkvhy6g8BgXGZ7COiX1Juyv6mSr9R1x8Y1kl4W2pmpJueft72IoGZHrGT0x8iLpMqJ6truAxaPM92TI287JdVO1H4+xgQf1vpHoUNNwDGC3G+VNJTGogmagbKELANsBjoJ+o44L9JaONnkTAceAquAM5LO2i4FGgnKxpW0Fo6Q1JyU2a4lCL5D0pO014z4nfO2i4E7QAXQLknh1CVgGDhie0ahHPkbxA+8VmALQenaFwklfQRuAvOBhql0rtCUADg4VeqBp8D2qHuLcZnggxy13Sbp29S6OXFsVwFV4ePC8F5uuyMcf5LUCFAUdmFNQC+wSdL3pEFJH4A2YAGxnv4fJQPsDK91oWxpTFYdKf4CmdzRV8PAztEAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle X^{4} + 1$"
      ],
      "text/plain": [
       " 4    \n",
       "X  + 1"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "( X**4 + 1 ).factor()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAI0AAAAVCAYAAAB7a22LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEmUlEQVR4nO2aW4hWVRiGn9EiT9WkklJQFmEURTJ5EUGiaWUQZQWBZTGFpHa6CDsMQS+viYFmiaWBJGVgZSAoedFFYSRFkJaRZGmRFCQpjVmTFWnTxVqje/a/9/5nxn/P/DPNCz9rWIdvffvhW+dpaG9vZ1CD6o5OKbsD2y3AbcDFwN/AJ0CLpF1l913v6q9shvRCH1OB1cDVwLXAUeA926N7oe9611T6IZuGrOXJ9uvATOACSX/UskPbo4DDwCxJ79TSdhf7fxRYDtwp6U3bVwLbgbmS1lZpWxqXaL9u2AB7yOFSsTzZngzMARYmwdhuBPYBx4AJkn5PtRsCvA3cDqyVNDfHt9MJM1xrTz6sBpoc0x0AknbY3gQstr1BUltWo17gAnXERtKePC5Zy9MS4Dfg5WSmpF+BlcBo4KGMdisJYLYA8wocWwHsJKzffaEngUuAvYm8Z4HxwCMF7crmAvXHJpNLp+XJ9kTga+AVSfenLdo+izCq/iGMqraY/xSwmPCx0yUdyfLI9jLCaL1G0rcn8XE1l+3dwAjgQknHUmWlcol1T4qN7WbgVWCapA+6277AbgWX9ExzH9AAbMgyIOkQ8CIwBngwGr2XAOYb4KaCgFkO3EOA1ycBY3ua7XbbSzOK3wLOA2ZklJXGJdatZzYVXNJBM4OwNhdNj88DbcBC23cAa4D9wExJv+Q4tJIwiqZJ+qo7H1NjNcX084yyj2J6XUZZKVygX7Cp4HI8aGyPBCYBu4tOBpJagZeAsYSRdwS4UdK+rPq2VwPNwGyg1fb4+BvV9e+pmTrAfJZR9mlMpyQzy+ISbfcHNhVckjPNucBQwuiopi2Jv++S9EVB3QWEU8H70XbHb2EX+qm1mgizwd50gaTDwF+EqTipsrhAP2CTxSV55B4T00NFlm2fA6xPZF1KZ1idJKmhSy5n97UPOL8bTdZLmpNjayQwEfhY0r857VuBcam8UrhAz9lU4bLVdjpvnaTmAnvV2HTikgyaP2M6rMB4I/BudPhp4AnCGr6qjMsu4DtClHdVPxWUXUGYWbOWpg4N5wSHDtUjlxVAYypvEnALsI5wkktqZxV71dh04pIMmgMxHUOGbA8DNgOXA4skPWP7DMJUugB4ropj3Zak6TU0V7QJ7riEawS+TxXVI5cVGX40E4LmtR4cuXPZZHFJ7mn2AwcJj2fphkOBNwiboTWSFIuWEjZ8j9ke0U1He1tFm2AI391A5agc6FygmE0Fl+NBI6kd+BAYa/uiVMNVwK3AJuCBRJuDhAe3s4H5J+16uWoiLHV5x9qrYro1mfk/4ALFbCq4pO9pNsb0ho4Mh13VPGAbMDt9WwosI4yqx20P77nf5cn2aYSN6ZeSjuZUu55wF7M5o2xAcoEusangkhU0PxNuJ7E9n7Cx2wXcLKliUyrpAOE9ZhzV31b6SpcBp5KzNNk+E5gFbJH0Y0aVgcoFCtjkcan414j4j0FLgCZJmZvGgSbbDxMeFqdI2pZTZ5BLVNYr9wvAD8CiXvKtTxWXjhZgY17ARA1yiaoImjjV3g1sj5c+A10TCO9Ehbewg1xO6D/YFXdnwpEMTwAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\left(X^{2} - i\\right) \\left(X^{2} + i\\right)$"
      ],
      "text/plain": [
       "⎛ 2    ⎞ ⎛ 2    ⎞\n",
       "⎝X  - ⅈ⎠⋅⎝X  + ⅈ⎠"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "( X**4 + 1 ).factor( extension=sb.I )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\operatorname{Poly}{\\left( X^{4} + 1, X, domain=\\mathbb{Z} \\right)}$"
      ],
      "text/plain": [
       "Poly(X**4 + 1, X, domain='ZZ')"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polynome = sb.Poly( X**4 + 1, X) ; polynome"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\frac{\\sqrt{2} \\left(-1 - i\\right)}{2}, \\  \\frac{\\sqrt{2} \\left(-1 + i\\right)}{2}, \\  \\frac{\\sqrt{2} \\cdot \\left(1 - i\\right)}{2}, \\  \\frac{\\sqrt{2} \\cdot \\left(1 + i\\right)}{2}\\right]$"
      ],
      "text/plain": [
       "⎡√2⋅(-1 - ⅈ)  √2⋅(-1 + ⅈ)  √2⋅(1 - ⅈ)  √2⋅(1 + ⅈ)⎤\n",
       "⎢───────────, ───────────, ──────────, ──────────⎥\n",
       "⎣     2            2           2           2     ⎦"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "racines = [ polynome.root(i).factor() for i in range( polynome.degree() ) ] ; racines"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\frac{\\sqrt{2} \\left(-1 - i\\right)}{2}, \\  \\frac{\\sqrt{2} \\left(-1 + i\\right)}{2}, \\  \\frac{\\sqrt{2} \\cdot \\left(1 - i\\right)}{2}, \\  \\frac{\\sqrt{2} \\cdot \\left(1 + i\\right)}{2}\\right]$"
      ],
      "text/plain": [
       "⎡√2⋅(-1 - ⅈ)  √2⋅(-1 + ⅈ)  √2⋅(1 - ⅈ)  √2⋅(1 + ⅈ)⎤\n",
       "⎢───────────, ───────────, ──────────, ──────────⎥\n",
       "⎣     2            2           2           2     ⎦"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[ x_0.simplify() for x_0 in polynome.all_roots() ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left(X - \\frac{\\sqrt{2} \\left(-1 - i\\right)}{2}\\right) \\left(X - \\frac{\\sqrt{2} \\left(-1 + i\\right)}{2}\\right) \\left(X - \\frac{\\sqrt{2} \\cdot \\left(1 - i\\right)}{2}\\right) \\left(X - \\frac{\\sqrt{2} \\cdot \\left(1 + i\\right)}{2}\\right)$"
      ],
      "text/plain": [
       "⎛    √2⋅(-1 - ⅈ)⎞ ⎛    √2⋅(-1 + ⅈ)⎞ ⎛    √2⋅(1 - ⅈ)⎞ ⎛    √2⋅(1 + ⅈ)⎞\n",
       "⎜X - ───────────⎟⋅⎜X - ───────────⎟⋅⎜X - ──────────⎟⋅⎜X - ──────────⎟\n",
       "⎝         2     ⎠ ⎝         2     ⎠ ⎝        2     ⎠ ⎝        2     ⎠"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polynome_factorise = 1\n",
    "for x_0 in racines : \n",
    "    polynome_factorise *= (X-x_0)\n",
    "polynome_factorise    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(X**4+1).equals(polynome_factorise)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Définir des symboles en faisant des hypothèses sur ceux-ci :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJkAAAAUCAYAAACecp+8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAFKUlEQVR4nO2abYhVRRjHf6smikKSUoagG0RWaIX2skGawlaSFEVQEb2sIllB9sUyIfjvE1J+0SiiIDBKa3GFpRbNWijWXqzwhQwsjYLWpHw37cUsV7YPM8dOZ+fee865966n8A+XucxzZuY5P2bmPPPS0NfXxxmdUT016HQ7cEb/fw2J/pjZDKA7ZvtG0sVZKzSzRuB74HVJLdW5F6x/JTALuEDS7wH7cOBx4B6gETgArAIk6YR/ZiqwBZgnaUWtfcyievPybZRkloaXf64sMzMb48uekqQGCM9kHwIGvJj7reokM7sSuBdYWqKDnQ9sBp4CvgSeB34BFhN7H0lbgbeBJWY2sv6enz6VY5aWF6RidgzXbwzYFTeEOtkGSa2S8nayH4FLvKO11jM4CC8nDWY2FFiLG40zJd0laRFwDfADMM/MxsaKPAuMBRbUwc8sqicvKMEsBy8ow0zSMd9vWoGeuK3mMZmkE5J2StpTy3rN7CKgGVgj6Y/AIwuBqcAiSRtj/vwGvIV712mx/E3ATmC+mQ2upa9ZVC9eUJFZJl7elovZkMqPnHL4VuAx4FLgHOAQ8C3QLuml2HONJGKMeB7QCizFvfxIYDvQKmldBRfmAg1Ae8C3KK7YA7wSKHvIp8mRudr70wx0VWg/s9IwKxWT1ZNZFbwgB7NUM5mZPQh04mCtBZYB64HhwJw0dXhNADbhpuhVuJefBHSa2cwKZZuBk8DnAdvtwCigLR6sxjTMp38l8qMRfEMlx7Oq4Mzy8oIczNLOZPN9g5dL2h83+FVFWs3AjUCLlW8D3sONrO5QITMbAVwB7AgF/MBsn44zs9aAvdmnuxP5m306PYXvWVVkZnl5QQ5mWWKyXqBfr5d0MEMdu4AlifJduEDz6jLlxgGDcdN7SNf59G5AgV9U99eJto8Cx4Hxqd8gm4rKLBcv33ZmZmlnsjdx0/1XZtaO2+bYKOlA+WL9tE3SyUD+buDaMuVG+/TnpMGP2PHAdkmTA/aRwGFgn6SeQN2HgfMq+J1HhWRWA16QkVmqmUzScuAB3OhZgFt97DOzbr8Pk1ZHSuT3VvAlWhkNC9jG+fSnEmVvAs4C3ilhHx6rv2YqMLNqeUFGZqk/l5JWSmrCjZDZwArcd7nLzM5NW09ORTHN6IBtqE//LFE2CrJfTRrMbBAuAN6ftNVCBWWWmxfkY5Z6CyOSpCO4VdJ63+Bc3H5KR9a6MmgP7shiYsC216f9lttm1gTcDLzr93iSmohb4m+rjZthFYxZNbwgB7O0WxizzCzUIaPReCxtg3kkqQ/4CBhjZhcmbAeBHcBUM7ssyjezCbg9naPAIyWqbvJpvxWamb1mZn1m1pLH56Iyq5IXlGFWSmlnstXAcTP7BHdk0IAbiVcBW4H30zZYhTqAO3Axw3cJ2xJcoP2Bmb0BjADuBPqA2WUC2Btx+0idAVs0AHtz+ltkZnl5QXlmQaWNyZ4EPgOm4Hr5HFxwuAh37hXa0Ku1OoB9wP1Jg6Q2oAUXJzyMm/LXAJMkfRqqzMzOBm4D1kkK7QdNBn6lfABcToVllocXpGIWVEN0aTF21cf8IWfhZGaLcQe+UyR9UWVdjwIvANMlfZywjcIdrSyT9EQ17ZxuDRSzxHMbgOujqz6hz6XMTOS8T1ZnPQc8BDwN3JK3En92txjoKAFrGm4TdXneNgqkAWEWuk8WKf657OGf+0CFvE8m6ThwH7DFbyrmVSPuYHhhiXbWShomaW/I/l/SQDHj3/fJoh8AfwPnoLm6fXuiwgAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\left[ \\sin{\\left(\\theta \\right)}, \\  \\sin{\\left(\\theta \\right)}\\right]$"
      ],
      "text/plain": [
       "[sin(θ), sin(θ)]"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "theta = sb.symbols(\"theta\", real=True)\n",
    "k = sb.symbols(\"k\", integer=True)\n",
    "[sb.sin(theta+2*sb.pi*k).simplify(),sb.sin(theta+2*sb.pi*k).trigsimp()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAVCAYAAADiv3Z7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAACt0lEQVR4nN3XS6hVVRzH8c+9NsjEDAoUBHuZ1ugerIFObJBlzS7VKHpA9KBBQeDkkvDv36BmGUFkURGSYIJFj4kjoQjKrCSCgoqeJD0wCkMncRqsfWzffbens+89eqsvbNZej/9ev/9a67/WXhP9ft9/mczcjw8jYqZZN7kIesbNFD5qqzirrTAzd+F6XBwRf5xGYUPJzCtxCHdFxPMt9auwEoer/HK8gEtx40RzWWbmVTiIbRHx+JjF3oyr0VNGfDl2R8StQ2xexUZcFhHHGnU3YC9WYD1ewQe4OyKOt83co/gdTy/Ym7lsV5w6hu9x+Qg2j+E9PFBpq9PDx7gJzyIj4olB5ayYy8x12IK9EXF8XvKH8yDW4VzcN4pBRBzEZ7g3M5c0qnu4As9huu4Yc2PuTkzg5a6qRxR6YPCemV1M9+BhZeD318p7ylK8Bec3jZq75Rb8iXe79HwGeKdKrx0UZOY5WItncA92ZeaGutFkrfEyZSQ+Xcwd8hS8X6Wba2VT6OOTiHgJT+KNzFw9aFCfudVYgiOnWWhnIuI3nMCaWvEUPq/tDQ8pK+71alZnxdxgzf7a1kFmfo0LO2gausXPg6PKmQYiYid21vJ9Zdc8Sd25wQicfYqPf6mM3qj80KHtKCz1t8aRqDv3U5XO2XUgIq6Zp6gFk5mTOA9fdbGrx9wR/Kyc9P821itH1OEuRiedq9bsW7ggM9eOVdrC2VilB4a2atA8xPcpQbkVX4xB1CwycxrTVXZVlW7KzBer918iYluL6XXK+ftal/7anPsRt+OpLh8akR7uaJRdUj3wDWY5l5krlAF5MyK+69JZ261gRvlB3RARrfekM0lm3q8c0Jsj4u0utm2X1R34Fo+MQduCyMylmMG+ro7R4lxEnMBtOFT9ki0mFylXmbY4/EfmLMv/E38BFmfF9BNAyo8AAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\left(-1\\right)^{k}$"
      ],
      "text/plain": [
       "    k\n",
       "(-1) "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sb.cos(sb.pi*k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "m = sb.symbols(\"m\", positive=True)\n",
    "sb.sin(theta+sb.pi*m).equals( (-1)**m * sb.sin(theta) ) # Ne renvoie rien : indétermination"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m = sb.symbols(\"m\", integer=True)\n",
    "sb.sin(theta+sb.pi*m).equals( (-1)**m * sb.sin(theta) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 2.3 Travail à faire </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$a)$ Définir $z=x+\\mathbb{i}\\,y$ en spécifiant que $x$ et $y$ sont réels, puis définir la liste $\\mathtt{LP}=\\left[z^2,z^3,z^4\\right]$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$b)$ Développer chaque élément de la liste <tt><b>LP</b></tt> et déterminer le coefficient de $\\mathbb{i}$. <br />En déduire les parties réelle et imaginaire de chacun des éléments de la liste <tt><b>LP</b></tt>."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$c)$ Factoriser chacune des expressions trouvées à la question précédente."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$d)$ Reprendre l'exercice par une méthode différente, en utilisant les fonctions  <span style=\"color:#0000C0\"><b><tt>re</tt></b></span> et <span style=\"color:#0000C0\"><b><tt>im</tt></b></span> de <span style=\"color:#0000C0\"><b><tt>sympy</tt></b></span>."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$e)$ Recommencer en utilisant cette fois la fonction <b><tt><span style=\"color:#0000C0\">conjugate</span></tt></b> de <b><tt><span style=\"color:#0000C0\">sympy</span></tt></b>."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <span style=\"color: #0000BB\"> *Exercice 3* </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 3.1 Objectifs </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### <i><span style=\"color:#005500\"> Savoir créer et manipuler des expressions fractionnaires.</span></i>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 3.2 Exemples </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Numérateur et dénominateur :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAArCAYAAAAEw7SsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAADo0lEQVR4nO2aX4hUVRzHP7MUhloPhUFBGhQ9BKWkRFmW2l8rsKCtHoWQIIJeisLM7/2Si0RPGxE9RGj2ELYYG6UWYVG4L0WuBr5ooIVEJQsRPfSP28M9K7fZO87O3TPeSc4HBuae+Z1zvnN+59/sd1t5njMI2L4AuAn4rGktdTmvaQEl7gR+lNRqWkhdhpoWUOIG4JumRcyFgRhM2y0glzQYe05NBmWZrwC+7qWC7SuAncClwF+AJe3ug7ZZMxAzE1gD7O+xzt/A05KuBe4CRm3Pj66sF/I8b/yVZdmWCG0czrJscZPfo/GZaXsJcHyObawAzgd+iKGpLlH2TNvbgeOSsi5xFwGPSHqzVHwf8N4c+r4EeBt4PPYBZvs24FlgOXAZMCxprFP8UKnisO0/wkyZLhu1fdT2okj6Hga22p5XKlsk6VSdxkI77wPbJE3EENjGAuAQ8NRsgsszcwx4DtgMbLT9DPAYsFLSLzGUSXrL9mrgDmCP7QuBX6tibQ8D7wDXSDoRykYpZvJK4BSwHdgvaWcMfRV69wJ7Q99d40/PzLBENgEbbD8PbAHul/RdZI3jwPrwfh3wcYe4MeBbiuRSSu69Ibm3AI8CD9qeDK/rImvtiVb7b3PbE8CNwAOS9lVVsr2JYuCnmQfkwJ+lsnWSvqyou4BikK4CNkt6qZM423cDHwEvhv7WSurpPhoL2zld9sz/HEC21wJLKWbsz2do+w1gV+n5ZeAk8Gqp7GRVRUm/2z4C3ExxV+yIpE9sfwVspUhurYG0nQHqErZG0ud12p/m9GDaXgrsBp4EHgJGKJbhDCRNAVOlur8BU5KOzbLfcYoEvHCmoB6S243XgHe7xHw/h/aBMJjhBN8DvCJph+2DwKTtVVVLNQIfUCTrQKeAXpLbjXBbqHVj6IUh2xcD+4APJY2Ezg9THADb+tGppJ+AjZL+qfq8PbkUh+E9tlf1Q08nbC+0vcz2slB0ZXheXBU/4wBqmpDcA8AXkp4ole8CLpd061nUsprqP1bvkLShvXDgBvP/TOO/zc8l0mBGZPo0T2s9AmnPjEha5hEZFA8o+eaRSb55RJJvHoPkm8cl+eYRSb558s2Tb943zuqemXzz5Jsn3zyS3uSbN0Vd3zyjpnWafPOZ1LZOk2/eRgTrNPnmETknffNWlmWNWKu210sa7/DZEmACeF3SiO3rgUng9j4lt5PGhcDV4fEgxZ3zU4r/XpkxkwfOtki+eQKAfwFOVgwWaANk/AAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{x + \\sqrt{x^{2} - 1}}{x - \\sqrt{x^{2} - 1}}$"
      ],
      "text/plain": [
       "       ________\n",
       "      ╱  2     \n",
       "x + ╲╱  x  - 1 \n",
       "───────────────\n",
       "       ________\n",
       "      ╱  2     \n",
       "x - ╲╱  x  - 1 "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = sb.symbols(\"x\", real=True)\n",
    "F = (x+sb.sqrt(x**2-1))/(x-sb.sqrt(x**2-1)) ; F"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( x + \\sqrt{x^{2} - 1}, \\  x - \\sqrt{x^{2} - 1}\\right)$"
      ],
      "text/plain": [
       "⎛       ________         ________⎞\n",
       "⎜      ╱  2             ╱  2     ⎟\n",
       "⎝x + ╲╱  x  - 1 , x - ╲╱  x  - 1 ⎠"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "N,D = F.as_numer_denom() ; (N,D)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<i>Une simplification pour laquelle</i> <span style=\"color:#0000A0\"><b><tt>sympy</tt></b></span> <i>n'est pas programmé :</i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAArCAYAAAAEw7SsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAADo0lEQVR4nO2aX4hUVRzHP7MUhloPhUFBGhQ9BKWkRFmW2l8rsKCtHoWQIIJeisLM7/2Si0RPGxE9RGj2ELYYG6UWYVG4L0WuBr5ooIVEJQsRPfSP28M9K7fZO87O3TPeSc4HBuae+Z1zvnN+59/sd1t5njMI2L4AuAn4rGktdTmvaQEl7gR+lNRqWkhdhpoWUOIG4JumRcyFgRhM2y0glzQYe05NBmWZrwC+7qWC7SuAncClwF+AJe3ug7ZZMxAzE1gD7O+xzt/A05KuBe4CRm3Pj66sF/I8b/yVZdmWCG0czrJscZPfo/GZaXsJcHyObawAzgd+iKGpLlH2TNvbgeOSsi5xFwGPSHqzVHwf8N4c+r4EeBt4PPYBZvs24FlgOXAZMCxprFP8UKnisO0/wkyZLhu1fdT2okj6Hga22p5XKlsk6VSdxkI77wPbJE3EENjGAuAQ8NRsgsszcwx4DtgMbLT9DPAYsFLSLzGUSXrL9mrgDmCP7QuBX6tibQ8D7wDXSDoRykYpZvJK4BSwHdgvaWcMfRV69wJ7Q99d40/PzLBENgEbbD8PbAHul/RdZI3jwPrwfh3wcYe4MeBbiuRSSu69Ibm3AI8CD9qeDK/rImvtiVb7b3PbE8CNwAOS9lVVsr2JYuCnmQfkwJ+lsnWSvqyou4BikK4CNkt6qZM423cDHwEvhv7WSurpPhoL2zld9sz/HEC21wJLKWbsz2do+w1gV+n5ZeAk8Gqp7GRVRUm/2z4C3ExxV+yIpE9sfwVspUhurYG0nQHqErZG0ud12p/m9GDaXgrsBp4EHgJGKJbhDCRNAVOlur8BU5KOzbLfcYoEvHCmoB6S243XgHe7xHw/h/aBMJjhBN8DvCJph+2DwKTtVVVLNQIfUCTrQKeAXpLbjXBbqHVj6IUh2xcD+4APJY2Ezg9THADb+tGppJ+AjZL+qfq8PbkUh+E9tlf1Q08nbC+0vcz2slB0ZXheXBU/4wBqmpDcA8AXkp4ole8CLpd061nUsprqP1bvkLShvXDgBvP/TOO/zc8l0mBGZPo0T2s9AmnPjEha5hEZFA8o+eaRSb55RJJvHoPkm8cl+eYRSb558s2Tb943zuqemXzz5Jsn3zyS3uSbN0Vd3zyjpnWafPOZ1LZOk2/eRgTrNPnmETknffNWlmWNWKu210sa7/DZEmACeF3SiO3rgUng9j4lt5PGhcDV4fEgxZ3zU4r/XpkxkwfOtki+eQKAfwFOVgwWaANk/AAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{x + \\sqrt{x^{2} - 1}}{x - \\sqrt{x^{2} - 1}}$"
      ],
      "text/plain": [
       "       ________\n",
       "      ╱  2     \n",
       "x + ╲╱  x  - 1 \n",
       "───────────────\n",
       "       ________\n",
       "      ╱  2     \n",
       "x - ╲╱  x  - 1 "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F.simplify()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 2 x^{2} + 2 x \\sqrt{x^{2} - 1} - 1$"
      ],
      "text/plain": [
       "              ________    \n",
       "   2         ╱  2         \n",
       "2⋅x  + 2⋅x⋅╲╱  x  - 1  - 1"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Simplification « à la main »\n",
    "N2,D2 = [ (X*N).expand() for X in (N,D) ] \n",
    "F2 = N2/D2 ; F2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F.equals(F2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Écriture sous forme d'une unique fraction :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAfCAYAAAD+xQNoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEnElEQVR4nO2aa4iUZRTHf7st2QelKCI/BEJENwK3yChLawU1tdgd7Wa4uGBBIhTFRirWf/+RVFi2Kkrhh1a6fCgxJC1L01JaN7qgkVJhpKBZWYZQUUZuH5539XWa0dnpmZ3Znf3Dy8yc9znnPDPnPbfnTE13dzexYHs/sFjS4hStHvgYuErS7mjKBjBqI8vbDozKoj0PrBw0SOEoqVFsTwNGAoqsZ0CjJnL4Gg18BJwH/A7sBpZJao+mpApQF1neZ8BR4BrgauBvYHlkHQMeUT0FwHYX8AkwE7hH0rqoCsoA27cDNwH1hHA8DHhV0ozT8F0AfA8sl/RAofpiewqEvPIgsHEgGCTBAoIxfgP2A5cVyNdIyNtv9kZZKYyyAzgGPFwC2UXBdgvwEtAg6YMiRDxEMMYegsdsKZAvA/wCbO2NslIYZQbwoqRdJZBdFkg6bgTbBfHYPhsYB7wm6Z8U/T1gPDBN0poUvYbw4MyMYhTbtcD5wCzgSuDOGHL7OaYAZwJrsuiPAJ8DT9pemzLYs4Q8vDJWnzIWOAg0E56AXyPJ7c/IENqCjWmipJ3Ay8DlhN8L2/MJ4f514P4onpLE6diNaL+F7bOAW4B3JP2ZY8kC4C6gzfZQYCHwLtAs6VgpckpZYXsvMCLP7S05csIqSS2RtzEBGEqeqkvSftvtwFxgGdAJTJV0FEqT6MuNduCcLFo9oTxdBezNurejBHvIEJro9adYcyj1fpakP3o+1AHYjttB9gEk1eSht2fTkpK4EegosiQuGLbPAG4DNks6kmfNdEJi/wEYTujrZvfcr4P8X3AQRWEs4ewvZ+iyPZngsbsIJfNW4F7bSyR9BX0cvmzPA6YClwJ/AV3APElf9uU+SoyphOZ5bfYN2zcCqwmN6ARJh2w/BrwBPA00QSSj2O4A9kpqO83Sm4EVhLOxGuAJYJPtKyQdjrGXUsB2E8kPRgg3ANcn3xvgZ0mtyfsmoFPSj1kyRgLrgCPAeEkHASSttv0p0Gh7jKRtdSmmO4BXgEsk7UtoS4DJwGhJ6cRUFCRNzNpoc7LJG4C3ElolTi/rCY1dGhclF8A+oNX2KOBCwmDvOGxfTCh5u4GJkr7NkjWP0M8sAq5Le8pq4FFCDX2f7VbgbiIZJA+GEfqbtJdEn15K6gA6iuFN+NuAtgKWZpLXk/KJpD2c8LBc8jcRIgeQavgkdQPzgRbbc4HHgSk5rBoT7YSStCtF68/TywywU9J3/0fIf+YptjuBa4FbJW3IxZQcC8xPkYYQXPNoijZJ0rZ8im0vIhxejkmepB561U8vT0r0tscRnspa4KdT8L1AOKfpwTPAAWBpinYgH7Pt5wgGaUgbJEHVTy+Pe0pSHXxIaGQywBBJkwoR0ovqC9tLCec+DflyxECcXvYGtQC2RwBvA4skrSLkk4m2x8RUZnsF0AJMBw7bHp5cQ7OWbgfmANurzSAAtbbPBTYA6yQtBJD0BaEaeyqyvtmEiut9wlF/z9WatW4HFTa97EtE/+NEDNjeCHwjaU6591IOVMwp8eD08gQqxiiEg7zNwNdU+fSyIsNXtWNwhFuB+BfFnb5sxtjWZwAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{y}{x + 2 y} + \\frac{1}{x}$"
      ],
      "text/plain": [
       "   y      1\n",
       "─────── + ─\n",
       "x + 2⋅y   x"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x,y = sb.symbols(\"x,y\", real=True)\n",
    "S = 1/x + y/(x+2*y) ; S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAjCAYAAAADp43CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEJUlEQVR4nO2ZW4iVVRiGn9kYVtSFHSAiqKtCKKYiu7AcJi+a7EQllUmRIF2URRBe5BC9vpJEiTZpSWCBQVchXZTE2ImimhlRmSFDKooScqLThISUWu0u/n+2f7/7sNbe/56Zhv3AZpi111rfgTXrm/W9XeVymQ7NM2e6HZgObK8B7gAuAY4CI8AaSZ/H7lUq2Leq2N5ue+0MstMLbAUWAouBv4D3bJ8Va7NyAm3fCbwGXCzpYDr2PHBjamgU2CRpU2bN5cBu4ApJB2KNV6ORH5J+btWGpL6czfuAw8A1wFvp2PcExJs9gTuA/cAT6eTVwDLghtTpYWBBzpfngG1FJS/Qj3ZwJkkuJjJjQfFWEiipDPQDK2w/DjwJ3CTpm2ob2l4KdAMqLo4gP9rBADBGchdOEhRvV74K2x4CrgZuljSYGV8IfAqcDRwBDgBbJA3kvbHdT5KESeYCZeBYZmyJpI9rRVTLjzbY2QDcCyyS9HVmPCje/1Rh24tJslwCfsrZ2pc6dhVwJXAceLGGXy8Br2d+fwY4BGzOjB2qE1Q9P4q0s5Ekeddlk5cSFG/lBNruBj4CHgVuB+ZKWpIzOALsAe4HlkvaWSe47LrtwHeS1gbMbehHQXY2A3eTJK/qHR4SbymdeCHwNrBB0qsk906f7UW5+cPAKmA4NHkxRPjRqp2twArgHmDC9nnp54zc1IbxltL/fQaBnZLWA0j6jKQaPp2bPwb8AzxWUCwVIv1olQdJKu/7wA+Zz+rcvDEaxHtSEamH7XeBryStivP3/0lIvA2fcrZLwLnASuBS4K7CPJyBxMYb8hbuAT4AvgSWSvqtVSdnOFHxRv0JdziZKWkmzGY6CWyRTgJbZA6A7c5F2ASSujpFpEUKa+nbngd8QdL0bGfrqXBs7wCGss3TUIrURPqBwalOXkH6xjrgQ9uvSDocY7+QImL7dOAB4OUi9kv3nDJ9I31zf0vS2ooi6AQG6CW9JI/uT2LWzTB9401gObV7nFUJPYGNdIprgX1pOz5mXTtoVt/YDSywfVqMsaAEBugUFwHjTaxrBwM0p2+MA6cA58cYCy4ikt6xvQd4ikSn2Jv5+lTgzybWVailb6SndpIQfaOHRN/4O/PVCLAxvRePAM8C6yT9mpnzR/oz6gQGJ7CBTvELMK+JdVmmW9+YLDpRV0toEekG3gAeItEp1gNZnWKUpEUeu66CpAky95bt34GJKsmo5l9dfUPSUdujwC2c0DeO56ZdBoxL+rGRvSwN78BAnWIXMN/2OZHrWqZAfaOHRFKIom4CQ3UKSftJqtiymHUF0bK+kVbe24BtscYLewvb7gO2APNzF/iMoJ6+Yfth4FZJ18fuW9hTTtIu2y8AFwAHi9q3FSL0jWPAI83YmNXdGNu9nNA3VkoaKtrGrE7gVPAvTBCCOc2MrdcAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\frac{x y + x + 2 y}{x \\left(x + 2 y\\right)}$"
      ],
      "text/plain": [
       "x⋅y + x + 2⋅y\n",
       "─────────────\n",
       " x⋅(x + 2⋅y) "
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "T = S.together() ; T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAjCAYAAAADp43CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEJUlEQVR4nO2ZW4iVVRiGn9kYVtSFHSAiqKtCKKYiu7AcJi+a7EQllUmRIF2URRBe5BC9vpJEiTZpSWCBQVchXZTE2ImimhlRmSFDKooScqLThISUWu0u/n+2f7/7sNbe/56Zhv3AZpi111rfgTXrm/W9XeVymQ7NM2e6HZgObK8B7gAuAY4CI8AaSZ/H7lUq2Leq2N5ue+0MstMLbAUWAouBv4D3bJ8Va7NyAm3fCbwGXCzpYDr2PHBjamgU2CRpU2bN5cBu4ApJB2KNV6ORH5J+btWGpL6czfuAw8A1wFvp2PcExJs9gTuA/cAT6eTVwDLghtTpYWBBzpfngG1FJS/Qj3ZwJkkuJjJjQfFWEiipDPQDK2w/DjwJ3CTpm2ob2l4KdAMqLo4gP9rBADBGchdOEhRvV74K2x4CrgZuljSYGV8IfAqcDRwBDgBbJA3kvbHdT5KESeYCZeBYZmyJpI9rRVTLjzbY2QDcCyyS9HVmPCje/1Rh24tJslwCfsrZ2pc6dhVwJXAceLGGXy8Br2d+fwY4BGzOjB2qE1Q9P4q0s5Ekeddlk5cSFG/lBNruBj4CHgVuB+ZKWpIzOALsAe4HlkvaWSe47LrtwHeS1gbMbehHQXY2A3eTJK/qHR4SbymdeCHwNrBB0qsk906f7UW5+cPAKmA4NHkxRPjRqp2twArgHmDC9nnp54zc1IbxltL/fQaBnZLWA0j6jKQaPp2bPwb8AzxWUCwVIv1olQdJKu/7wA+Zz+rcvDEaxHtSEamH7XeBryStivP3/0lIvA2fcrZLwLnASuBS4K7CPJyBxMYb8hbuAT4AvgSWSvqtVSdnOFHxRv0JdziZKWkmzGY6CWyRTgJbZA6A7c5F2ASSujpFpEUKa+nbngd8QdL0bGfrqXBs7wCGss3TUIrURPqBwalOXkH6xjrgQ9uvSDocY7+QImL7dOAB4OUi9kv3nDJ9I31zf0vS2ooi6AQG6CW9JI/uT2LWzTB9401gObV7nFUJPYGNdIprgX1pOz5mXTtoVt/YDSywfVqMsaAEBugUFwHjTaxrBwM0p2+MA6cA58cYCy4ikt6xvQd4ikSn2Jv5+lTgzybWVailb6SndpIQfaOHRN/4O/PVCLAxvRePAM8C6yT9mpnzR/oz6gQGJ7CBTvELMK+JdVmmW9+YLDpRV0toEekG3gAeItEp1gNZnWKUpEUeu66CpAky95bt34GJKsmo5l9dfUPSUdujwC2c0DeO56ZdBoxL+rGRvSwN78BAnWIXMN/2OZHrWqZAfaOHRFKIom4CQ3UKSftJqtiymHUF0bK+kVbe24BtscYLewvb7gO2APNzF/iMoJ6+Yfth4FZJ18fuW9hTTtIu2y8AFwAHi9q3FSL0jWPAI83YmNXdGNu9nNA3VkoaKtrGrE7gVPAvTBCCOc2MrdcAAAAASUVORK5CYII=\n",
      "text/latex": [
       "$\\displaystyle \\frac{x y + x + 2 y}{x \\left(x + 2 y\\right)}$"
      ],
      "text/plain": [
       "x⋅y + x + 2⋅y\n",
       "─────────────\n",
       " x⋅(x + 2⋅y) "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S.factor()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Décomposition en éléments simples :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAfCAYAAAD+xQNoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEnElEQVR4nO2aa4iUZRTHf7st2QelKCI/BEJENwK3yChLawU1tdgd7Wa4uGBBIhTFRirWf/+RVFi2Kkrhh1a6fCgxJC1L01JaN7qgkVJhpKBZWYZQUUZuH5539XWa0dnpmZ3Znf3Dy8yc9znnPDPnPbfnTE13dzexYHs/sFjS4hStHvgYuErS7mjKBjBqI8vbDozKoj0PrBw0SOEoqVFsTwNGAoqsZ0CjJnL4Gg18BJwH/A7sBpZJao+mpApQF1neZ8BR4BrgauBvYHlkHQMeUT0FwHYX8AkwE7hH0rqoCsoA27cDNwH1hHA8DHhV0ozT8F0AfA8sl/RAofpiewqEvPIgsHEgGCTBAoIxfgP2A5cVyNdIyNtv9kZZKYyyAzgGPFwC2UXBdgvwEtAg6YMiRDxEMMYegsdsKZAvA/wCbO2NslIYZQbwoqRdJZBdFkg6bgTbBfHYPhsYB7wm6Z8U/T1gPDBN0poUvYbw4MyMYhTbtcD5wCzgSuDOGHL7OaYAZwJrsuiPAJ8DT9pemzLYs4Q8vDJWnzIWOAg0E56AXyPJ7c/IENqCjWmipJ3Ay8DlhN8L2/MJ4f514P4onpLE6diNaL+F7bOAW4B3JP2ZY8kC4C6gzfZQYCHwLtAs6VgpckpZYXsvMCLP7S05csIqSS2RtzEBGEqeqkvSftvtwFxgGdAJTJV0FEqT6MuNduCcLFo9oTxdBezNurejBHvIEJro9adYcyj1fpakP3o+1AHYjttB9gEk1eSht2fTkpK4EegosiQuGLbPAG4DNks6kmfNdEJi/wEYTujrZvfcr4P8X3AQRWEs4ewvZ+iyPZngsbsIJfNW4F7bSyR9BX0cvmzPA6YClwJ/AV3APElf9uU+SoyphOZ5bfYN2zcCqwmN6ARJh2w/BrwBPA00QSSj2O4A9kpqO83Sm4EVhLOxGuAJYJPtKyQdjrGXUsB2E8kPRgg3ANcn3xvgZ0mtyfsmoFPSj1kyRgLrgCPAeEkHASSttv0p0Gh7jKRtdSmmO4BXgEsk7UtoS4DJwGhJ6cRUFCRNzNpoc7LJG4C3ElolTi/rCY1dGhclF8A+oNX2KOBCwmDvOGxfTCh5u4GJkr7NkjWP0M8sAq5Le8pq4FFCDX2f7VbgbiIZJA+GEfqbtJdEn15K6gA6iuFN+NuAtgKWZpLXk/KJpD2c8LBc8jcRIgeQavgkdQPzgRbbc4HHgSk5rBoT7YSStCtF68/TywywU9J3/0fIf+YptjuBa4FbJW3IxZQcC8xPkYYQXPNoijZJ0rZ8im0vIhxejkmepB561U8vT0r0tscRnspa4KdT8L1AOKfpwTPAAWBpinYgH7Pt5wgGaUgbJEHVTy+Pe0pSHXxIaGQywBBJkwoR0ovqC9tLCec+DflyxECcXvYGtQC2RwBvA4skrSLkk4m2x8RUZnsF0AJMBw7bHp5cQ7OWbgfmANurzSAAtbbPBTYA6yQtBJD0BaEaeyqyvtmEiut9wlF/z9WatW4HFTa97EtE/+NEDNjeCHwjaU6591IOVMwp8eD08gQqxiiEg7zNwNdU+fSyIsNXtWNwhFuB+BfFnb5sxtjWZwAAAABJRU5ErkJggg==\n",
      "text/latex": [
       "$\\displaystyle \\frac{y}{x + 2 y} + \\frac{1}{x}$"
      ],
      "text/plain": [
       "   y      1\n",
       "─────── + ─\n",
       "x + 2⋅y   x"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "T.apart(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle - \\frac{x}{2 \\left(x + 2 y\\right)} + \\frac{x + 2}{2 x}$"
      ],
      "text/plain": [
       "       x        x + 2\n",
       "- ─────────── + ─────\n",
       "  2⋅(x + 2⋅y)    2⋅x "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "T.apart(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### <span style=\"color:purple\"> 3.3 Travail à faire </span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$a)$ Définir les expressions symboliques suivantes : $\\displaystyle G=\\frac{5}{2+p}$ et $\\displaystyle R=\\frac{a}{p}$, où $p$ et $a$ sont des symboles."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$b)$ On pose : $\\displaystyle H=\\frac{G}{1+R\\,G}$. Montrer que le dénominateur de H peut s'écrire : $D = (p+1+\\sqrt{1-5\\,a})\\,(p+1-\\sqrt{1-5\\,a})$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\">$\\hspace{30mm}$Penser à simplifier le résultat avant de le nommer <b><tt>H</tt></b>.</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$c)$ On pose : $\\displaystyle H_0=\\frac{G}{1+R_0\\,G}$, où $\\displaystyle R_0=\\frac{3}{20\\,p}$. Calculer $H_0$ sous forme factorisée puis décomposer $H_0$ en éléments simples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$d)$ Essayer de décomposer $H$ en éléments simples, puis écrire <b><tt>H.apart(p, full=True).doit()</tt></b>."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
