{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div style=\"width:100%\"><a href=\"https://www.dunod.com/sciences-techniques/programmation-python-par-pratique-problemes-et-exercices-corriges\"><img src=\"https://python.guillod.org/livre/banner.png\"/></a></div>\n",
    "\n",
    "Ce fichier reflète les énoncés des exercices d'un chapitre du livre *[Programmation Python par la pratique](https://www.dunod.com/sciences-techniques/programmation-python-par-pratique-problemes-et-exercices-corriges)*. Tous les énoncés peuvent être téléchargés au format [Jupyter Notebook](https://python.guillod.org/livre/) ou exécutés directement en ligne sur [GESIS](https://notebooks.gesis.org/binder/v2/gh/guillod/livre-python/v1errata). Les corrigés sont disponibles dans le livre en version papier (ISBN [9782100815142](https://www.dunod.com/sciences-techniques/programmation-python-par-pratique-problemes-et-exercices-corriges)) ou numérique (ISBN [9782100819089](https://www.dunod.com/sciences-techniques/programmation-python-par-pratique-problemes-et-exercices-corriges)) publiés chez Dunod. Ce fichier reflète les exercices tels que publiés dans cet ouvrage et diffère quelque peu des exercices présentés à la page [python.guillod.org](https://python.guillod.org/)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 8 Calcul symbolique"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div id=\"ch:sympy\"></div>\n",
    "\n",
    "En tant que langage généraliste, Python n'inclut pas par défaut certains concepts mathématiques. Un exemple déjà vu concerne les vecteurs et les matrices numériques qui sont implémentés dans le module Numpy. Le but ici est d'introduire le module Sympy qui permet de faire du calcul symbolique.\n",
    "\n",
    "Par exemple, le nombre $\\sqrt{8}$ est représenté par défaut en Python comme un flottant.\n",
    "L'avantage de Sympy est que $\\sqrt{8}$ est gardé en tant racine et même automatiquement simplifié:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import sympy as sp\n",
    "sp.init_printing()\n",
    "sp.sqrt(8)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "À noter que la deuxième instruction n'est pas nécessaire, mais permet de présenter les résultats de manière plus élégante dans Jupyter Lab.\n",
    "La documentation de Sympy est disponible [ici](https://docs.sympy.org/).\n",
    "\n",
    "**Concepts abordés:**\n",
    "\n",
    "* symboles et expressions symboliques\n",
    "\n",
    "* simplification\n",
    "\n",
    "* analyse infinitésimale (limite, dérivation, intégration, développement limité)\n",
    "\n",
    "* preuve assistée par ordinateur\n",
    "\n",
    "* fonction pathologique\n",
    "\n",
    "* fonction de Green\n",
    "\n",
    "* coordonnées sphériques\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 8.1: Introduction à Sympy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Avant de pouvoir utiliser des variables symboliques, il faut les déclarer comme symboles:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "x = sp.Symbol(\"x\") # définit le symbole x\n",
    "y = sp.Symbol(\"y\", real=True) # définit la variable réelle y\n",
    "e = sp.Symbol(r\"\\varepsilon\", real=True, positive=True) # définit epsilon positif"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ensuite il est possible de faire des opérations entre symboles:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "x + 2*y + e/4 + x**2 + 3*x + 2*y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "La plupart des fonctions mathématiques sont implémentées symboliquement dans Sympy et il est également possible de les simplifier:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "expr = sp.cos(x)**2 + sp.sin(x)**2 + (y**3 + y**2 - y - 1)/(y**2 + 2*y + 1) + sp.exp(-e)\n",
    "sp.simplify(expr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finalement il est possible de faire des substitutions:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "expr.subs(x,y) # remplace x par y\n",
    "expr.subs({y:x, e:y}) # remplace y par x et e par y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "puis par exemple de simplifier l'expression et de tracer son graphe en fonction de `x`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "f = sp.simplify(expr.subs({y:x, e:y}))\n",
    "sp.plot(f,(x,-2,6), title=f\"Graphique de ${sp.latex(f)}$\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "<center><img src=\"data:image/png;base64,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/e9/35TYxW6SyaSU0rbt/VpoBwAAILgD231tQ9Afeughczn10ksvNSf/2UsjfcHMx2D44/+S3dvGxgd/smV83h8IAABAcAeklOFw2BTalVKO49i2HYyaCYVCYt8I9je1/WftEQAAAII7CO5mqsy6det+/etfm1kxQc27oaFh0aJFbT+w+6/EYrFhw4aZrnet9Zcqkwc/7ziOaaw3w+DNsBrzsaCg4KCDDjJ/DdNJLwAAAAjuwGfG6KlTp5533nm33nqr2ankOI45Wbly5amnnvp5wd0U482AyFmzZpkpNEHtXOyZoMHGTKox/1mmpb6srEzsYmbG33nnnd/73vc+vYEVAACA4A5IKbXW3/nOd5RSprXd5PXm5mbbtl3XNVNlxOcIWmtM0V34vlRqN830F1988bx584qKim677TazwklKuXbtWrO9taKiQnwmAAAAgjsQjIg5//zzzz33XK2167qRSOTggw/+4IMP2m6Ois8SdKjvebndsiyllGnIMan9pJNOmj59epcuXcQu1113XSKRCH5MdAQAAAC64wGUUnoX025+4YUX7os/f+nSpVLKHj16mAVPnufF43HXdc1rMpn8Cn+g+V1zYGZZBlPng0O9lwAAAAjdsQEbNmwwXSv7IgffcsstQogrrrjC87zPSPZfRP0Hz/NM3O8gwR0AACiCe8oAPM875JBDhBDmCqzppL/mmmuOOeaYI4880nTYm7aZ3eL7nvrWt761L4I7AACAIzo2QCm1L3rNXdddtmxZKBQygyCPPfZY00Mvdnn++efNkJknn3wyKyvrv/x6ZWVl298qiOmRSCQWiwUfxX4HAAC0FlIKY11l45DuWVoIyeXU/QPYd9dD6+vrE4mE1voPf/hDXl7ejBkzzjzzTM/zZs6caVpo5syZY6ZSTps2bfdxkMFJSUnJ8OHDxWdxHMfzPLF/AQAApbUU0rw++u6G+99e95vTR505vncQ5VOE7pTAzdctW7aYcruUMhqNzp079z8fPfzww+aRKbebYnzQVLP7r5eWln7zm9803TVH72I+msp9Xl6ebdvmD9+frTIAAMBTho4nvdtfWVl03ctF17485KZXX1qyNXhEj/sBDDB7lyKRiBDC9LXX1tYGF0yD4TBmnVOfPn3Mo/vuu09r7Rfm95SJ8u3S4w4AAFdRW+LJq59d0v3qOf1vmNfvp690mfrS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\" style=\"width:90%;max-width:700px;\"></center>\n",
    "\n",
    "**a)**\n",
    "Lire la documentation de la fonction `solve` et l'utiliser pour calculer les racines d'un polynôme général de degré deux, puis de degré trois.\n",
    "\n",
    "**Indication.**\n",
    "La documentation sur la résolution d'équations algébriques est disponible [ici](https://docs.sympy.org/latest/modules/solvers/solvers.html#algebraic-equations).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**b)**\n",
    "Lire la documentation des fonctions `evalf` et `N` pour évaluer l'expression $\\frac{\\pi^2}{4}$.\n",
    "\n",
    "**Indication.**\n",
    "La documentation sur l'évaluation numérique est disponible [ici](https://docs.sympy.org/latest/modules/evalf.html).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**c)**\n",
    "Déterminer la partie réelle et imaginaire de l'expression:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\bigg(\\frac{1+i\\sqrt{3}}{1+i}\\bigg)^{20} \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "**Indication.**\n",
    "Voir la documentation [ici](https://docs.sympy.org/latest/modules/functions/elementary.html).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**d)**\n",
    "Lire la documentation de la fonction `diff` et calculer la dérivée de $x e^{x^{x^x}}$ par rapport à $x$.\n",
    "\n",
    "**Indication.**\n",
    "La documentation sur les dérivées est disponible [ici](https://docs.sympy.org/latest/tutorial/calculus.html#derivatives).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**e)**\n",
    "Lire la documentation de la fonction `integrate` et calculer les intégrales suivantes:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{align*}\n",
    "I_{1} & =\\int x^{5}\\sin(x)\\,\\mathrm{d} x \\,, &  I_{2} & =\\int_{0}^{\\infty}\\sin(x^{2})\\,\\mathrm{d} x \\,.\n",
    "\\end{align*}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**f)**\n",
    "Calculer avec Sympy les limites suivantes:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{align*}\n",
    "L_{1} & =\\lim_{x\\to0}\\frac{\\sin(x)}{x}\\,, & L_{2} & =\\lim_{x\\to0}\\sin\\bigg(\\frac{1}{x}\\bigg)\\,, & L_{3} & =\\lim_{x\\to\\infty}\\frac{5x^{2}+3x+2y}{y(x-4)(x-y)}\\,.\n",
    "\\end{align*}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**g)**\n",
    "Calculer le développement limité de $\\tan(x)$ en $x=0$ à l'ordre 10 et le développement asymptotique de $\\left(1 + \\frac{1}{n}\\right)^n$ pour $n\\to\\infty$ à l'ordre 5.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**h)**\n",
    "Déterminer les valeurs propres de la matrice:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{pmatrix}1 & a & 0\\\\ \n",
    "a & 2 & a\\\\ \n",
    "0 & a & 3\n",
    "\\end{pmatrix} .\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "**Indication.**\n",
    "La documentation sur les matrices symboliques est disponible [ici](https://docs.sympy.org/latest/tutorial/matrices.html).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 8.2: Applications"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le but est d'utiliser Sympy pour résoudre symboliquement différents problèmes mathématiques en calculant le moins de choses possibles à la main.\n",
    "\n",
    "**a)**\n",
    "Déterminer le nombre de zéros que contient l'entier $123!$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**b)**\n",
    "Déterminer le rapport entre la hauteur et le rayon d'un cylindre de manière à minimiser son aire à volume fixé.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**c)**\n",
    "Pour $x,y\\in\\mathbb{R}$ tels que $xy < 1$, démontrer que:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\arctan(x) + \\arctan(y) = \\arctan\\left(\\frac{x+y}{1-xy}\\right) \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "**Indication.**\n",
    "Dériver l'équation par rapport à $x$ et justifier.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**d)**\n",
    "Démontrer la formule suivante due à Gauss:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\frac{\\pi}{4} = 12\\arctan\\left(\\frac{1}{38}\\right)+20\\arctan\\left(\\frac{1}{57}\\right)+7\\arctan\\left(\\frac{1}{239}\\right)+24\\arctan\\left(\\frac{1}{268}\\right) \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Il est impératif d'utiliser Sympy, la démonstration originale de Gauss faisant 25 pages, voir les pages 477 à 502 du deuxième volume de ses œuvres complètes disponible [ici](https://gallica.bnf.fr/ark:/12148/bpt6k99402s).\n",
    "\n",
    "**Indication.**\n",
    "Appliquer la fonction tangente de chaque côté de l'équation puis simplifier. La documentation sur les différentes fonctions de simplifications est disponible [ici](https://docs.sympy.org/latest/tutorial/simplification.html).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**e)**\n",
    "Déterminer le volume de la région:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\big\\{(x,y,z)\\in\\mathbb{R}^3: x^2+y^2 < z < 2x^2+4xy+6y^2, |y| < 5, |x| < 4\\big\\} \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**f)**\n",
    "Déterminer l'expression des coefficients de Fourier réels de la fonction $2\\pi$-périodique $f$ définie par $f(x)=|\\sin(x)|$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 8.3: Conjecture due à Euler"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Euler a conjecturé en 1769 qu'au moins $k$ puissances $k$-ième d'entiers strictement positifs sont nécessaires pour que la somme soit elle-même une puissance $k$-ième. En d'autres termes si $n \\geq 2$, $k \\geq 1$, $a_1,a_2,\\dots,a_n \\geq 1$ et $b \\geq 1$ sont des entiers tels que:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\sum_{i=1}^{n}(a_i)^k = b^k\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "alors nécessairement $n \\geq k$.\n",
    "Cette conjecture a été réfutée en 1966 par Lander & Parkin ([doi:10.1090/S0002-9904-1966-11654-3](https://doi.org/10.1090/S0002-9904-1966-11654-3)) dans ce qui semble être le plus court article mathématique jamais écrit avec un contre-exemple pour $k=5$:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "27^5 + 84^5 + 110^5 + 133^5 = 144^5 \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le but est de montrer que ce contre-exemple est le plus simple possible, dans le sens où il est l'unique contre-exemple avec $k \\leq 5$ et $b \\leq 144$.\n",
    "\n",
    "**a)**\n",
    "Démontrer que la conjecture d'Euler est vraie pour $k=1$ et $k=2$.\n",
    "\n",
    "**b)**\n",
    "Vérifier avec Python le contre-exemple ci-dessus.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**c)**\n",
    "Écrire une fonction `powers(bmax,k)` qui retourne l'ensemble (type `set`) de tous les entiers de 1 à `bmax` élevés à la puissance `k`.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**d)**\n",
    "Vérifier qu'il n'existe pas de contre-exemple avec $k=3$ et $b \\leq 144$.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**e)**\n",
    "Écrire une fonction `combinaisons(liste,n)` qui pour une liste d'entiers `liste` et un entier `n` retourne la liste de toutes les combinaisons de `n` entiers de `liste`\n",
    "classés par ordre croissant. Par exemple `combinaisons([1,2,3,4],2)` doit retourner\n",
    "`[(1,1), (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4), (4,4)]`.\n",
    "\n",
    "**Indication.**\n",
    "Utiliser une fonction récursive sur `n`.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**f)**\n",
    "Écrire une fonction `test(bmax,n,k)` qui pour trois entiers `bmax`, `n` et `k` donnés, itère sur toutes les combinaisons de `n` entiers retournés par `combinaisons` et vérifie si la somme de ces `n` entiers élevés à la puissance `k` est un entier présent dans la liste `powers(bmax,k)`. Utiliser cette fonction pour vérifier qu'il n'existe pas de contre-exemple à la conjecture d'Euler pour $k=4$ et $b \\leq 144$. Suivant la puissance de votre ordinateur, il est possible de choisir également $k=5$ et donc de vérifier que le contre-exemple de l'introduction est bien le plus simple.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "Pour $k=5$, la méthode précédente consistant à itérer sur toutes les combinaisons est plutôt lente. Une méthode plus rapide consiste à observer que l'ensemble des sommes du type:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "(a_1)^5 + (a_2)^5 + (a_3)^5 + (a_4)^5 \\,,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "peut s'écrire comme $S_1 + S_2$ où $S_1$ et $S_2$ sont des sommes de deux entiers à la puissance cinq.\n",
    "\n",
    "**g)**\n",
    "Écrire une fonction `sum2(bmax,k)` qui retourne un dictionnaire ayant pour clefs les sommes $(a_1)^k+(a_2)^k$ avec la valeur associée $(a_1,a_2)$ pour $0 \\leq a_1 \\leq a_2 \\leq$ `bmax`. On prendra soin d'enlever l'élément trivial zéro du dictionnaire. Dans la construction du dictionnaire, s'assurer qu'il est défini de manière unique dans le sens où il n'existe pas une autre valeur possible pour une clef existante. Tester `sum2(300,5)` et `sum2(300,3)`.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**h)**\n",
    "Utiliser le dictionnaire construit précédemment pour déterminer l'ensemble des contre-exemples pour $k=5$ et $b \\leq 300$ en itérant sur tous les éléments de `powers(bmax,5)` et de `sum2(bmax,5)`.\n",
    "\n",
    "**Indication.**\n",
    "Une implémentation optimale prend au plus quelques secondes à s'exécuter.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 8.4: Fonction pathologique"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le but est de construire une fonction qui visuellement semble régulière, mais qui en fait ne l'est pas.\n",
    "Soit la fonction $f:\\mathbb{R}\\to\\mathbb{R}$ définie par:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "f(x) = \\sum_{k=1}^{\\infty} \\frac{\\sin(k^2 x)}{k^5} \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Vu que la série converge absolument, la fonction $f$ est bien définie.\n",
    "\n",
    "**a)**\n",
    "À l'aide de Sympy calculer la fonction $g:\\mathbb{R}\\to\\mathbb{R}$ définie en gardant les cent premiers termes de la série:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "g(x) = \\sum_{k=1}^{100} \\frac{\\sin(k^2 x)}{k^5} \\,,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "et représenter la fonction $g$ graphiquement.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**b)**\n",
    "Estimer à la main l'erreur entre les fonctions $f$ et $g$ en valeur absolue.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**c)**\n",
    "Calculer la dérivée première et la dérivée seconde de $g$ et représenter graphiquement ces deux dérivées. Que pouvez-vous conclure ?\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**d)**\n",
    "Expliquer mathématiquement ce qui se passe.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exercice 8.5: <font color=\"red\">!</font> Fonction de Green du laplacien"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le but de cet exercice est de calculer entièrement automatiquement la fonction de Green du laplacien dans $\\mathbb{R}^3$, *i.e.* la solution satisfaisant:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\Delta G(\\boldsymbol{x}) = \\delta(\\boldsymbol{x}) \\,,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "dans $\\mathbb{R}^3$ où $\\delta(\\boldsymbol{x})$ est la distribution de Dirac.\n",
    "\n",
    "Pour cela, nous introduisons les coordonnées sphériques $\\boldsymbol{x}^\\prime = (r,\\theta,\\varphi)$ avec $r>0$, $0 \\leq \\theta \\leq \\pi$ et $0 \\leq \\varphi < 2\\pi$ caractérisées par:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{align*}\n",
    "x_1 & =r\\cos\\varphi\\sin\\theta\\\\ \n",
    "x_2 & =r\\sin\\varphi\\sin\\theta\\\\ \n",
    "x_3 & =r\\cos\\theta \\,.\n",
    "\\end{align*}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**a)**\n",
    "Définir une fonction `to_spherical(expr)` permettant de convertir en coordonnées sphériques une expression donnée en coordonnées cartésiennes.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**b)**\n",
    "Définir une fonction `to_cartesian(expr)` permettant de convertir en coordonnées cartésiennes une expression donnée en coordonnées sphériques.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**c)**\n",
    "Calculer les facteurs d'échelle des coordonnées sphériques:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "h_i = \\left\\Vert \\frac{\\partial\\boldsymbol{x}}{\\partial x^\\prime_i} \\right\\Vert.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**d)**\n",
    "Définir une fonction `gradient(f)` permettant de calculer le gradient d'une fonction $f:\\mathbb{R}^3\\to\\mathbb{R}$ en coordonnées sphériques:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\boldsymbol{\\nabla}f = \\left( \\frac{1}{h_i}\\frac{\\partial f}{\\partial x^\\prime_i} \\right)_{i=1}^3\\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**e)**\n",
    "Faire de même pour définir le laplacien en coordonnées sphériques:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\Delta f = \\sum_{i=1}^3 \\frac{1}{J} \\frac{\\partial}{\\partial x^\\prime_i} \\left( \\frac{J}{h_i^2} \\frac{\\partial f}{\\partial x^\\prime_i} \\right) \\quad \\text{où} \\quad J = \\prod_{i=1}^3 h_i \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**f)**\n",
    "Trouver les solutions radiales (*i.e.* ne dépendant que de la variable $r$) de l'équation $\\Delta G = 0$ dans $\\mathbb{R}^3\\setminus\\{\\boldsymbol{0}\\}$.\n",
    "\n",
    "**Indication.**\n",
    "Regarder la documentation de la fonction `dsolve` pour résoudre une équation différentielle.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**g)**\n",
    "Déterminer les équations que doivent satisfaire les constantes d'intégration pour que la solution précédente satisfasse en coordonnées cartésiennes:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\lim_{|\\boldsymbol{x}|\\to\\infty} G(\\boldsymbol{x}) = 0 \\quad \\text{et} \\quad \\Delta G(\\boldsymbol{x}) = \\delta(\\boldsymbol{x}) \\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "**Indication.**\n",
    "Il faut transformer les deux conditions en coordonnées sphériques.\n",
    "La première condition s'exprime en coordonnées sphériques par:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\lim_{r\\to\\infty} G(r) = 0 \\,,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "et la seconde est équivalente à:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\lim_{r \\to 0} \\int_{0}^{\\pi} \\int_{0}^{2\\pi} \\big( \\boldsymbol{\\nabla} G(r) \\boldsymbol{\\cdot} \\boldsymbol{e}_r \\big) \\, J(r,\\theta,\\varphi) \\, \\mathrm{d}\\varphi \\mathrm{d}\\theta = 1\\,.\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**h)**\n",
    "Résoudre les équations sur les constantes d'intégrations et substituer dans la solution radiale de $\\Delta G = 0$ pour obtenir l'expression de la fonction de Green du laplacien en coordonnées sphériques. Finalement déterminer la fonction de Green $G$ du laplacien dans $\\mathbb{R}^3$ en coordonnées cartésiennes.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "**i)**\n",
    "<font color=\"red\">!!</font>\n",
    "Soit $g:\\mathbb{R}^3 \\to \\mathbb{R}$ une fonction lisse à support compact invariante par rotations selon l'axe vertical. Déterminer le comportement asymptotique à grandes distances de la solution de l'équation:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "\\Delta f(\\boldsymbol{x}) = g(\\boldsymbol{x}) \\,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "jusqu'à l'ordre deux, *i.e.* les termes décroissant comme $|\\boldsymbol{x}|^{-1}$ et comme $|\\boldsymbol{x}|^{-2}$.\n",
    "\n",
    "**Indication.**\n",
    "La solution est donnée par la formule de Green:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$$\n",
    "f(\\boldsymbol{x}) = \\int_{\\mathbb{R}^3} G(\\boldsymbol{x}-\\boldsymbol{x}_0) g(\\boldsymbol{x}_0) \\, \\mathrm{d}^3\\boldsymbol{x}_0 = \\int_{B_R} G(\\boldsymbol{x}-\\boldsymbol{x}_0) g(\\boldsymbol{x}_0) \\, \\mathrm{d}^3\\boldsymbol{x}_0 \\,,\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "où $R$ est choisi de sorte que le support de $g$ soit contenu dans $B_R$.\n",
    "Pour calculer le développement asymptotique de cette intégrale, la première étape est de convertir $G(\\boldsymbol{x}-\\boldsymbol{x}_0)$ en coordonnées sphériques pour $\\boldsymbol{x}$ et $\\boldsymbol{x}_0$. Vu que $g$ est invariante par rotations selon l'axe vertical, alors en coordonnées sphériques $g$ est indépendante de $\\varphi$ et est donnée par $g(r,\\theta)$.\n",
    "La deuxième étape est de transformer l'intégrale en coordonnées sphériques avec une intégrale triple sur $r_0$, $\\theta_0$ et $\\varphi_0$.\n",
    "La troisième étape est de calculer le développement asymptotique de l'intégrant lorsque $r\\to\\infty$, jusqu'à l'ordre deux. Finalement, vu que $r_0$, $\\theta_0$ et $\\varphi_0$ sont bornés, alors l'intégration commute avec le développement asymptotique et le résultat final est donné par l'intégration individuelle des deux termes du développement asymptotique.\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}