diff --git "a/Chapitre 9 - Produits scalaires et espaces euclidens/9.3-9.4 Norme, in\303\251galit\303\251 de Cauchy-Schwarz, orthogonalit\303\251, inegalit\303\251 du triangle, Pythagore.ipynb" "b/Chapitre 9 - Produits scalaires et espaces euclidens/9.3-9.4 Norme, in\303\251galit\303\251 de Cauchy-Schwarz, orthogonalit\303\251, inegalit\303\251 du triangle, Pythagore.ipynb" index f4a0d2b..89f35f9 100644 --- "a/Chapitre 9 - Produits scalaires et espaces euclidens/9.3-9.4 Norme, in\303\251galit\303\251 de Cauchy-Schwarz, orthogonalit\303\251, inegalit\303\251 du triangle, Pythagore.ipynb" +++ "b/Chapitre 9 - Produits scalaires et espaces euclidens/9.3-9.4 Norme, in\303\251galit\303\251 de Cauchy-Schwarz, orthogonalit\303\251, inegalit\303\251 du triangle, Pythagore.ipynb" @@ -1,494 +1,326 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Concept(s)-clé(s) et théorie**\n", "\n", "## Définition 1 - Norme et Distance\n", "Soit $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot, \\cdot \\rangle$. On définit la **norme** de $v \\in V$, notée par $||v||$, par \n", "\n", "\\begin{equation}\n", "||v|| = \\sqrt{\\langle v, v\\rangle}\n", "\\end{equation}\n", "\n", "Aussi, on définit la **distance** enre deux vecteurs $u,v \\in V$ comme étant $||u-v||$.\n", "\n", "## Propriétés 1 - Propriétés de la norme\n", "Soient $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle\\cdot,\\cdot\\rangle$ et $v \\in V$. Alors les affimations suivantes sont vérifiées.\n", "1. $||v|| \\geq 0$\n", "2. Si $||v|| = 0$, alors $v=0$\n", "3. $||\\alpha v|| = |\\alpha|||v|| \\ \\forall \\alpha \\in \\mathbb{R}$\n", "\n", "## Théorème 1 - Inégalitè de Cauchy-Schwarz\n", "Soit $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot, \\cdot \\rangle$. Alors\n", "\n", "\\begin{equation}\n", "|\\langle u,v \\rangle| \\leq ||u|| \\ ||v||\n", "\\end{equation}\n", "\n", "ceci pour tout $u,v \\in V$.\n", "\n", "## Dèfiniton 2 - Angle entre deux vecteurs\n", "Soient $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle\\cdot,\\cdot\\rangle$ et $u,v \\in V$ deux vecteurs non-nuls. Alors l'**angle** entre $u$ et $v$ est défini comme étant l'angle $0\\leq\\theta\\leq\\pi$ tel que\n", "\n", "\\begin{equation}\n", "\\cos\\theta = \\dfrac{\\langle u,v \\rangle}{||u|| \\ ||v||}\n", "\\end{equation}\n", "\n", "## Théorème 2 - Inègalitè du Triangle\n", "Soit $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot,\\cdot \\rangle$. Alors, pour tous $u,v \\in V$, on a\n", "\n", "\\begin{equation}\n", "||u+v|| \\leq ||u|| + ||v||\n", "\\end{equation}\n", "\n", "## Théorème 3 - Pythagore Géneralisé\n", "Soit $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot,\\cdot \\rangle$ et supposons que $u_1, \\dots, u_t \\in V$ soient des vecteurs deux-à-deux orthogonaux (i.e. $\\langle u_i,u_j \\rangle = 0 \\quad \\forall i,j \\in \\{1,\\dots,t\\}$ telles que $i \\neq j$). Alors\n", "\n", "\\begin{equation}\n", "||u_1 + \\dots + u_t||^2 = ||u_1||^2 + \\dots + ||u_t||^2\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercises et Exemples" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import Librairie.AL_Fct as al\n", "import Corrections.corrections as corrections\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1 - Visualisation de l'inégalité Cauchy-Schwarz\n", "\n", "La preuve de l'inégalité Cauchy-Schwarz repose sur l'hypothèse que $$||u - \\lambda v||^2 \\geq 0 \\quad \\forall \\ \\lambda \\in \\mathbb{R}$$ En effet, en écrivant cette norme dans sa forme étendue, nous obtenons qu'elle équivaut à $$||u - \\lambda v||^2 = \\langle u - \\lambda v, u - \\lambda v \\rangle = ||u||^2 - 2\\lambda\\langle u,v \\rangle + \\lambda^2||v||^2$$ Il s'agit alors d'un polynôme de second ordre dans la variable réelle $\\lambda$ Ainsi, imposer la contrainte de non-négativité équivaut à dire que le discriminant $\\Delta = b^2 - 4ac$ est non positif. Cela implique que $$4\\big(\\langle u,v \\rangle\\big)^2 - 4||u|||^2||v||^2 \\leq 0$$ de sorte que, en divisant par $4$ et en prenant la racine carrée, on obtient l'inégalité Cauchy-Schwarz, i.e. $$|\\langle u,v \\rangle| \\leq ||u|| \\ ||v||$$\n", "\n", "Dans cet exemple, nous vous laissons choisir deux vecteurs $u$ et $v$ de n'importe quelle dimension ; il peut également s'agir de matrices (auquel cas le produit scalaire induit par la trace est adopté) ou de fonctions continues sur un intervalle d'intégration donné (auquel cas le produit scalaire intégral est utilisé). La parabole codant l'inégalité de Cauchy-Schwarz est alors tracée et vous pourrez observer que l'inégalité susmentionnée est respectée.\n", "\n", "**Question 1** : Quelle hypothèse faut-il assouplir pour obtenir une parabole présentant deux intersections distinctes avec l'axe des $x$ ?\n", "\n", "**Question 2** : Dans quels cas le sommet de la parabole est-il tangent à l'axe des $x$ ? Dans quels cas ne l'est-il pas ?" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 5.0000 \\leq ||u|| \\ ||v|| = 5.0000$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 1: vecteurs 2D\n", "u = [1,2]\n", "v = [-1,-2]\n", "out = al.visualize_Cauchy_Schwarz(u,v)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 2.0000 \\leq ||u|| \\ ||v|| = 3.7417$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 2: vecteurs 3D\n", "u = [1,2,3]\n", "v=[0,1,0]\n", "out = al.visualize_Cauchy_Schwarz(u,v)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 0.0000 \\leq ||u|| \\ ||v|| = 2.8284$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 3: matrices 2x2\n", "u = [[1,1], [-1,-1]]\n", "v = [[0,1], [1,0]]\n", "out = al.visualize_Cauchy_Schwarz(u,v)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 11.0000 \\leq ||u|| \\ ||v|| = 14.6969$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAEICAYAAAD8yyfzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2deXhU1fnHPyeEEEIIIcQkJCGgIKDEEFBcasUWinWpuNSflVZlcStKte4WN1QqqLRqXYpWtJQKVkW0UqW2rnVFhagsQQSSkIQkDCGEGEJIcn5/nGFOgCyTZGbuuTPn8zzzJJl777nv/c6bd8499z3vEVJKLBaLxRIaopw2wGKxWCIJG3QtFoslhNiga7FYLCHEBl2LxWIJITboWiwWSwixQddisVhCiA26YYQQ4j0hxOWdPLZACPGTANkhhRBDAtFWKBBCTBFCfOiwDT8SQhQ7aYMlNNigG2S8wWyPEKJGCFEuhHhOCBHvtF2mIoToL4RYIITYJoTYLYTIF0LcI4To5bRt/iKEmCmE2OL9zIuFEP9w2iaLOdigGxrOllLGA6OBMcAdHW1ACBEdcKsMQwiRBHwC9AROklL2BiYAicBgJ23zFyHEZOAS4Cfez/w44G1nrWqZSPApE7FBN4RIKUuAN4FsACHEVCHEem+PbrMQ4qr9++6/3RRC3CqEKAOeE0L0FUIsF0JsF0Ls9P6eedBpBgshVgohdgkhXvMGsv1tThRCrBVCVHmHIo5qyU4hRJQQ4jYhxCYhxA4hxIvN22lh/5u9PdNSIcS0g7b1EELME0IUeXv684UQPVtp6gZgN3CxlLLAq9lWKeV1Usqvve09KoTYKoSoFkJ8KYQ4pdm5/iqEmH2whs3+HiCEeMWr3w4hxOMH2TrPq+sWIcQZ3vf+Twjx5UH73SiEeLWVaxgD/FtKuclrf5mU8ulmxyZ573ZKvec6oB1v2xVePad63zvc+5lFef9+RghR0eyYvwshfuv9vaM+9bq3R77/1SSEmNLKtVkCgA26IUQIMQA4E1jtfasC+BmQAEwFHhZCjG52SBqQBAwErkR9Xs95/84C9gAHBA7gUmAakA40AH/ynnsosAT4LXAY8AbwuhAipgVTrwXOBU71trMTeKKVazoduAnVIz0SOHhc+AFgKJALDAEygLtaast77CtSyqZWtgN87m0rCVgMvCSEiG1j//12dgOWA4XAIK8dLzTb5QRgA5AMPAgsEEII4J/A4Qd9QV0MLGrlVJ8Cl3q/iI7znrc5i4A4YASQAjzcbFsa0Mdr22XAE0KIvlLKLUA1MMq73ylATTObxgLve3/vkE9JKc+WUsZ7e+UXAGUY2jMPG6SU9hXEF1AA1ABVqH/4J4Gerez7KnCd9/cfAfVAbBtt5wI7m/39HjC32d9He9voBtwJvNhsWxRQAvyomZ0/8f6+HhjfbN/+wD4gugUbnj3onEMBiQqwAvgeGNxs+0nAllauZyPw6w7quxMY6f39r8DsZtt+BBQ3O+/2Vq5hCvBds7/jvNeQ5v37z8Dvvb+P8J6zRxs2/Qr4r/fadwC3NdOxCejbwjE/Qn2JRjd7rwI40fv7ItSdQBrqy+FB4NfA4V7fiuqKT3k/twrgFKf/Z8L9Zcd0QsO5Usr/Hvym9xb2bpTDR6H+2b9ptst2KWVds/3jUD2j04G+3rd7CyG6SSkbvX9vbXZ8IdAd1XtL9/4NgJSySQixFdWrOpiBwDIhRPMeZyOQigrUzUkHmt9+Fzb7/TDvNX2pOo3qMlBfAi2xAxWYWkUIcSNwufe8EtWjS27rGC8DgEIpZUMr28v2/yKlrPXau/+B50JgiRDiDtR47YtSyr1CiCxgXbPj4r0/nweeF0J0R90xPC+EWI0K1pVSyp2t2LDjIPtqm9nwPjARKAY+QH3BXgLUAf+T3ruDjvqU95g+wGvAnVLK/7VimyVA2OEFhxBC9ACWAvOAVCllIuqWXzTb7eAScDcCw4ATpJQJqNtKDjpmQLPfs1A9VA9Qigqm+88vvPseHERBBe4zpJSJzV6xUo1JH8y2Fs65Hw+q9zaiWTt99genFvgvcN7+scuD8Y7f3gpciOotJgK70Nf/PSrI7CftoGvKEp14eCSl/BTVQzwF+CXeoQUpZZH03pq3dE1Syn1SypeAr1Hj+FuBJCFEYkdtQAXdU1C91feBD4GTUUNA70PnfMqr9WLgXSnlU52wy9JBbNB1jhigB+qWt8HbQzmtnWN6o4JYlffB1t0t7HOxEOJob6/4XuBlby/4ReAsIcR4bw/sRmAv8HELbcwHfi+EGAgghDhMCHFOKza9CExpdk6fTd7e119Q44op3rYyhBA/baWtP6J6rgubnTtDCPFHIUSO9/ob8A4TCCHu8u6/nzzgTO/DqjTU+PV+VqK+IOYKIXoJIWKFECe3YkdL/A01ft4gpWw1p1eonN+zhBC9hXogeQZqSOIzKeU21IPUJ4V6KNpdCDG2tbaaI6XciPrsLwY+kFJWA+XAz9HjuZ3xqd8DvYDr/LHD0nVs0HUIKeVu1AOrF1G3nb9EPbRpi0dQ6VQe1AObFS3sswg1tlkGxHrPgZRyA+of9jHv8WejUtnqW2jjUa8tbwkhdnvPdUIr1/Gm1653gO+8P5tzq/f9T4UQ1aje7LBW2qoEfoDqnX/mPffbqN7sd8C/UUHrW9QwRh0HDqcsAr5CjU+/BfyjWduN3mseAhShbtN/0ZIdrbAI1Vtt7QHafqqBmd5zVKHGXqc3C9SXeK8vHzWG+tuWGmmF91FDEEXN/hZ4H8x20qcmAScCO5tlMPyqAzZZOoiQ0hYxt1jaQ6g0twpgtLfXabF0CtvTtVj8YzrwuQ24lq5isxcslnYQQhSgbuPPddgUSxhghxcsFoslhNjhBYvFYgkh7QVdGcqXx+MJ6flMflktrBYtvcaNG+e4Daa8DPeLVjGqp9url2uq9wUdq4XGaqGpqqpy2gRjcKtfGBV0CwsL298pQrBaaKwWmvr6ltKqIxO3+oVRQTcmpqWCV5GJ1UJjtdA0q2ER8bjVL4wKusnJ/tQtiQysFhqrhSY62mZ57setfmFU0C0tLXXaBGOwWmisFpp9+/Y5bYIxuNUvjAq6bv3mCgZWC41btJg2bRopKSlkZ2f73vvFL35Bbm4uubm5DBo0iNzcXAAKCgro2bOnb9uvf/1rv85he7oat/jFwRj1CdbV1bW/U4RgtdC4RYspU6YwY8YMLr30Ut97//iHXpPyxhtvpE+fPr6/Bw8eTF5eXofO0dTU1qIakYVb/OJgjAq6NTU1TptgDFYLjVu0GDt2LAUFBS1uk1Ly4osv8s47Bxdh6xg26Grc4hcH02bQ9Xg8eDwe0tPT8Xg81NfXM3DgQAoLC0lISCA6OprKykoyMjIoLy+nqamJzMxMioqKSExUdZqrqqrIysqiuLiYqKgoUlNTKSkpISkpiYaGBqqrq31tCiGorq6mtLSU5ORk6urqqKmp8W2PjY0lMTGRsrIyUlJSqKmpoba21rc9Li6O+Ph4KioqSEtLo6qqirq6Ot/2+Ph4YmNjQ3pNMTExJCcnd/iaUlNTyc/PD6tr6uznJIQgPz/fFde0adMmGhsbKSgoOOCa1qxZQ79+/WhsbKS6upqioiI2b97MyJEjiYmJYebMmZx88sktXtO8efNYunQpAJWVldTW1hr5OYXa93r37k1xcbGR15SWlkZrtFd7oc2NgSY/P5/hw4eH8pTGYrXQuEmLgoICfvazn7FmzZoD3p8+fTpDhgzhxhtvBGDv3r3U1NTQr18/vvzyS84991zWrl1LQkJCS836yM7OPqTtSMVwv2g1t8+oB2mxse0u6hoxWC00bteioaGBV155hV/8QtdM79GjB/369QPg2GOPZfDgwXz77bftthUVZdS/rKO41S+M+gT3d80tVovmuF2L//73vwwfPpzMzEzfe9u3b6exUa0lunnzZjZu3MgRRxzRblvdurW2pmfk4Va/MCrolpWVtb9ThGC10LhFi0mTJnHSSSexYcMGMjMzWbBgAQAvvPACkyZNOmDfDz74gJycHEaOHMkFF1zA/PnzSUpKavccNk9X4xa/OBijxnQrKyv9crxIwGqhsVpocnNzO5xmFq4Y7hfuGNN1awpIMLBaaKwWGpsypnGrXxgVdGtra502wRisFhqrhcYGXY1b/cKooDtw4ECnTTAGq4XGaqFxa2WtYOBWvzAq6Lq1PmYwsFporBYaW09X41a/aDvo+lmEI1DExcWF9HwmY7XQWC00Nk9XY6xfPPhgm5vb/gSfego+/zyQ5rRJfHx8yM5lOlYLjdVCY4Ouxki/qKqC2bPb3KXtTzAxEebMCaRJbVJRURGyc5mO1UJjtdA0NDQ4bYIxGOkXTzwBu3e3uUvbQXfGDFi2DNavD6RZrdJWkYhIw2qhsVpounfv7rQJxmCcX9TWwiOPwJlntrlb20H32muhZ0944IFAmtYqdqVTjdVCY7XQ7J86bDHQLxYsAI8Hfve7NndrO+gedhhccQU8/zwUFQXSvBZxa1HiYGC10FgtNDZPV2OUX+zbB/PmwQ9/qF5t0P6o/E03qZ/z5gXCtDZxa95dMLBaaKwWGpunqzHKLxYvVh3Tdnq54E/QHTAALrkEnnkGtm8PhHmt4ta8u2BgtdBYLTQ2T1djjF80NcHcuTByJJxxRru7+5d/cuutUFenBomDiJEpIA5htdBYLTQ2ZUxjjF8sWwb5+aqXK1qtc+PDv09w2DC44AJ4/HGVhxYk3FqUOBhYLTRWC40Nuhoj/EJK+P3vYehQFSP9wP9P8PbbobpaBd4g4fF4gta227BaaKwWGpunqzHCL958E1avVr1cPwvMd6ye7tlnw8cfQ2EhBKFrX11d3e4aUZGC1UJjtdCMGjWK1atXO22GETjuF1LCySdDaSls3AgH5lAHqJ7u7bdDZaWaHhwEjPjmMgSrhcZqobE9XY3jfvHee/DJJ+qZVwcmrXQs6J54Iowfr9LH9uzpoIXtY5/MaqwWGquFpp0704jCcb+YPRv694epUzt0WMdH5e+4A8rK4NlnO3xoexiVd+cwVguN1UJj83Q1jvrFJ5/AO++oeQwdfKDX8aB76qlqHOOBB2Dv3g4f3hbG5N0ZgNVCY7XQON67MwhH/eK++6BfP7jqqg4f2vGgKwTceSds3QoLF3b48LawD0s0VguN1UJjl2DXOOYXn3+ushZuvBF69erw4Z1L+jvtNDjhBLj/fjXnOEBER0cHrC23Y7XQuEWLadOmkZKSQnZ2tu+9WbNmkZGRQW5uLrm5ubzxxhu+bXPmzGHIkCEMGzaMf//7336dQ/iRfB8pOOYX990HffvCNdd06vDOBV0h4K67VOrYokWdaqIlKisrA9aW27FaaNyixZQpU1ixYsUh719//fXk5eWRl5fHmd6yf+vWreOFF15g7dq1rFixgquvvtqvCmI2e0HjiF+sXg2vvw433ACd7Gl3fnrLGWfAccep2RgBcoSMjIyAtBMOWC00btFi7NixJCUl+bXva6+9xkUXXUSPHj04/PDDGTJkCCtXrmz3OPsgTeOIX9x3H/TpA7/5TaebaLN/7vF48Hg8pKen4/F4qK+vZ+DAgRQWFpKQkEDctdeSeOml7FmwgJLx42lqaiIzM5OioiISExMBVfMyKyuL4uJioqKiSE1NpaSkhKSkJBoaGqiurva1uWvXLo466ihKS0tJTk6mrq6Ompoa3/bY2FgSExMpKysjJSWFmpoaamtrfdvj4uKIj4+noqKCtLQ0qqqqqKur822Pj48nNja2zWuKjo6msrKSjIwMysvLu3xNMTExJCcnd/iapJQIIcLqmjr7Oa1fv54+ffq44po2bdpEY2MjBQUF1NXVsW/fPh5++GEWLFjAqFGjuO666zjqqKNYv3492dnZ7Nmzh8LCQpKSkli3bh19+/Y95JrmzZvH0qVLASgvL6e2ttbIzynUvrd371769esXsmsqe+stDl+2jO9vuomt27aRERXV6jW1WWBdStnWq22amqTMzZXyyCOl3Lev3d3bY8OGDV1uI1ywWmjcpMWWLVvkiBEjfH+XlZXJhoYG2djYKGfOnCmnTp0qpZTy6quvlosWLfLtN23aNPnyyy+3237ztiOdkPvFBRdI2bu3lJWV/uzdalztWvUMIeDuu9UUuCVLutQUQGZmZpfbCBesFho3a5Gamkq3bt2Iioriiiuu8A0hZGZmsnXrVt9+xcXFpKent9ueHV7QhNQvvvkGXn5ZrabTt2+Xmup6yaJzzoHcXLj33i6P7RaFYHUKt2C10LhZi23btvl+X7ZsmS+zYeLEibzwwgvs3buXLVu2sHHjRo4//vh227N5upqQ+sU996gHZzfc0OWmup5zIQTMmgXnnquW9Zk8udNN7R8PsVgtmuMWLSZNmsR7772Hx+MhMzOTe+65h/fee4+8vDyEEAwaNIinvHVLRowYwYUXXsjRRx9NdHQ0TzzxhF85uDZPVxMyv/jqK1i6VM1P8PNBaVt0rMpYq3tJlcmwa5cq5tvJ/LmysjLzVvh0CKuFxmqhGTlyJF999ZXTZhhByPzi/PPVlN8tWzoytBCgKmOtNu/t7W7a1KW8XeNW93QQq4XGaqGxqwFrQuIXeXlqZYjf/rbLY7n7CUxPF1Rvd8wYVfpxw4YOlTrbT21tLXFxcR0+LhyxWmisFprRo0ezatUqp80wgpD4xbnnqhKOBQXQseGMIPd0Qfd2t2yBv/2tU00UFxcHzBy3Y7XQWC009kGaJuh+sWoVvPaaengWwPHjwC64dNZZcPzxKpOhExXI7PpPGquFxmqhsbUXNEH3i7vuUkMK110X0GYDa7UQqrBvUREsWNDhw1NTUwNqjpuxWmisFprunRi2C1eC6heffAL/+hfccoua9htAAv9V8ZOfwCmnqODbwdUlSkpKAm6OW7FaaKwWGju8oAmqX9x5J6SkdKnGQmsEPuju7+1u2wZ//nOHDvW3WEgkYLXQWC00bilzGQqC5hfvvgtvv61W+O1Evdz2CM6gyNixMGECzJkDNTV+H2bL1mmsFhqrhaadbKOIIih+IaXq5aanw69/Hfj2CVbQBVUCzeOBxx7z+5Dq6uqgmeM2rBYaq4XG5ulqguIXb70FH32k1oLs4Npn/hK4PN2WmDgR/vc/2LzZr8TiPXv20LNnzy6dMlywWmisFhqbp6sJuF/sn2vg8cC330LXiguFIE+3JWbPhqoqeOghv3a3CxBqrBYaq4XGPkjTBNwvli6FL79UxW2CWM0tuEE3JwcmTYJHH1XLtreDLVunsVporBYam6erCahfNDSoIYWjjoKLLw5cuy0Q/Kzze++F+nq1rE87JCcnB90ct2C10FgtNDZ7QRNQv1i0SJUvmD0bglzJLfhBd8gQuOwyeOopNUW4DUpLS4NujluwWmisFpp9AVx92+0EzC/27lUlDMaMgfPOC0ybbRCa+ZV33qm+PWbNanM326PRWC00VguN7elqAuYX8+erWbT336/mGQSZ0ATdjAyYMUN14desaXW3urq6kJjjBqwWGquFpqmpyWkTjCEgfrF7txr6HDdOzaYNAaGrJHLbbdC7N8yc2eouNR2YSBHuWC00VguNDbqagPjFH/4A27eriVwhInRBt18/FXhff13l7rbAwIEDQ2aO6VgtNFYLjc3k0HTZL8rLYd48uOACVR0xRIS2Zt5110H//nDrrSoR+SBsPqbGaqGxWmhsnq6my34xezbU1fmVWRVIQht04+JU4vEnn8A//3nI5tggTbtzI1YLjdVCY2sLa7rkF5s2qQdoV1wBQ4cGzig/CP0nOHUqDBumKvgcVLDCLau+hgKrhcZqobGrAWu65Bd33KFmnd11V+AM8pPQB93oaDVovX49/PWvB2wq82PWWqRgtdC4RYtp06aRkpJCdna2772bb76Z4cOHk5OTw3nnnedbTLGgoICePXuSm5tLbm4uv/azopXN09V02i++/BJeeEEtw9O/f2CN8gNn7lXOPRdOOkl9y3z/ve/tlJQUR8wxEauFxi1aTJkyhRUrVhzw3oQJE1izZg1ff/01Q4cOZU6zp+SDBw8mLy+PvLw85s+f79c5bJ6uplN+ISXcfDMkJ6ufDuBM0BVCPTXctg3++Eff2zY1SGO10LhFi7Fjxx5SWPu0007zBcoTTzyxy4sp2pQxTaf84o03VJHyu++GhITAG+UHbX5tejwePB4P6enpeDwe6uvrGThwIIWFhSQkJBAdHU1lZSUZGRmUl5fT1NREZmYmRUVFvvGWqqoqsrKyKC4uJioqitTUVEpKSkgaMoTeZ55Jj7lz2XvxxRTu3cvOnTtJTEyktLSU5ORk6urqqKmp8Z0zNjaWxMREysrKSElJoaamhtraWt/2uLg44uPjqaioIC0tjaqqKurq6nzb4+PjiY2NDd41JSXR0NBAdXW1r82YmBiSk5M7fE0NDQ3k5+eH1TV19nMqKSk54HiTr2nTpk00NjZSUFBwyDXNnz+f8ePHU11dTVFREZs3b2bkyJHExMQwc+ZMTj755Bavad68eSxduhSAiooKamtrjfycQu17tbW1REVF+X9NmzYx+Le/JWrwYDaeeippVVVBu6a0tLTWA6uUsq1XcPn2Wymjo6W86ioppZS1tbVBP6VbsFpo3KTFli1b5IgRIw55f/bs2fLcc8+VTU1NUkop6+rqpMfjkVJK+cUXX8jMzEy5a9eudtsfNWpUYA12MR32i6eekhKkXLo0OAYdSKtx1dn8kyOPhOnT4ZlnYP16m4/ZDKuFxu1aLFy4kOXLl/P888/7SjP26NGDfv36AXDssccyePBgvv3223bbsnm6mg75RU2NeoZ08skhKWrTFs4n/d11l1r87ZZbiIuLc9oaY7BaaNysxYoVK3jggQf45z//ecB1bN++3bf0zubNm9m4cSNHHHFEu+3ZPF1Nh/xi3jw1A+2hh0JS1KYtnP8Ek5NVPYbly0m0y5D4iI+Pd9oEY3CLFpMmTeKkk05iw4YNZGZmsmDBAmbMmMHu3buZMGHCAalhH3zwATk5OYwcOZILLriA+fPn+7W6rQ26Gr/9oqREBdsLLlBZUw4T3DXS/KWuDoYPp65nT2LXrAl6EWE3kJ+fz/Dhw502wwisFprs7GzWtFGpL5Lw2y+mTIElS9TcAD/uJgKEQ2uk+UtsLDzwALH5+YdMmIhU2nz6GWFYLTTdu3d32gRj8MsvvvwSFi6E3/42lAG3TcwIugAXXkjdscfC7berGpcRzv6ZSxarRXPsEuyadv1CSjXr7LDD2iwpG2rMCbpCUHbzzWqwe+5cp61xHFu4W2O10NjJEZp2/WLZMvjgA7VOY58+oTHKD8wY0/WyZ88eel5+uVoKecMGiOA6qnv27KFnz55Om2EEVgvN6NGjWWUfOAPt+MXevTBihBq6zMtTNV9Ci+Fjul4KCwtVMZyoKFVzN4Jxe25qILFaaGyerqZNv/jTn1T5xj/+0YmA2yZGBd34+HjIyoJbboF//KPVFSYiAbekSYUCq4XGpoxpWvWLsjK47z44+2w47bTQGuUHRn2CvqLEt9wCAwbAtddChD44sIW7NVYLjQ26mlb9YuZMlYb6hz+E1iA/MeoT9Hg86pe4OJXMnJcHzz7rrFEO4dPCYrVoRsNBhf8jmRb94vPP4bnn4PrrVZkBAzHqQVp1dTUJ+8utSQljx6oHat9+CxG2esABWkQ4VgvNqFGjWL16tdNmGMEhfiGlqq2webOKGc76jDsepB3wzSUEPPooeDwq5SPCsL07jdVCY3u6mkP8YvFitf7inDlOB9w2MSroHvJkdvRouPxyeOwxWLfOGaMcwj6l1lgtNO3cmUYUB/hFdbVaCeK442DyZOeM8gOjgm6L69jffz/07g2/+U2Ly7aHKy1qEaFYLTQxMTFOm2AMB/jFffeplWieeEKlnBqMUda1mHeXnKzWp3/nHXj55dAb5RA2N1VjtdDYXr/G5xfr18Mjj8Bll8HxxztrlB8YFXRbfVhy1VWQm6vmUTdbyDKcsQ+ONFYLjV2CXZOQkKDufq+9FuLj1ViuCzAq6La60mm3bvD441BcrIYbIgC76qvGaqERDhfgNono6Gh45RX473/V8MJhhzltkl8YFXQrKytb33jyyXDJJaoCvB/LmridNrWIMKwWGpu9oNlZXKzufnNywFsc3g0YFXQzMjLa3uHBB1UBixkzwv6hWrtaRBBWC419kKYZ9Pe/Q1GRenjmorsho4JueXl52zukpcHvfw//+Q+89FJojHKIdrWIIKwWmn379jltghmsW0fMY4/B1Knwwx86bU2HMCro+lUrdPp0GDVKVYKvrg6+UQ5h66ZqrBYam6eLusu9+mqaevWCBx5w2poOY1TQzczMbH+nbt3gz39WlYRmzQq6TU7hlxYRgtVCY4cXgOefh/ffp2H2bNc8PGuOUUG3qKjIvx1POAGuvFLVzPzqq+Aa5RB+axEBuEWLadOmkZKSQnZ2tu+9yspKJkyYwJFHHsmECRPYuXMnoHqs1157LUOGDCEnJ8fvwuQRn6dbVQU33ggnnMCWceOctqZTGBV0EztS1GbOHEhKUk8tw/D2s0NahDlu0WLKlCmsWLHigPfmzp3L+PHj2bhxI+PHj2eudymqN998k40bN7Jx40aefvpppk+f7tc5Ij5P93e/U/VY/vxnEv1Yst5EjAq6HaJvX1UV/tNP4amnnLbGYmHs2LEkHRQIXnvtNSZ7awFMnjyZV1991ff+pZdeihCCE088kaqqKrZt2xZym13FJ5/A/Plw3XXquY5LMSrodnjV11/9CsaPh9tuU/Ouwwi7Aq7GzVqUl5fTv39/APr3709FRQUAJSUlDBgwwLdfZmYmJSUl7bYXsasB79unhhQHDPBVHXSrX7SZ3ObxePB4PKSnp+PxeKivr2fgwIEUFhaSkJBAdHQ0lZWVZGRkUF5eTlNTE5mZmRQVFfluCauqqsjKyqK4uJioqChSU1MpKSkhKSmJhoYGqqurfW2CqpFZWlpKcnIydXV11NTU+LbHxsaSmJhIWVkZKSkp1NTUsO/mmzninHPYPW0aVU89RXx8PBUVFaSlpVFVVUVdXZ3v+Pj4eMilnmEAACAASURBVGJjY0N6TTExMSQnJ3fommpra0lJSSE/P5+4uLiwuab92zt6TQD5+fmuuKZNmzbR2NhIQUGBb7Xa/Px83zU1NTVRXV3N999/T2FhIcceeyyFhYXs3buXnTt3kp+ff8g1zZs3j6VLlwJqjLi2ttbIzymYvjf4pZfovmYNZU8/TVxTE6VeTYuLi428prS0tNYDq5SyrVdI2bBhQ+cOnD1bSpBy+fLAGuQgndYiDHGTFlu2bJEjRozw/T106FBZWloqpZSytLRUDh06VEop5ZVXXikXL17c4n5t0bztiGHTJiljY6U8//wD3jbcL1qNq0YNL3R6/aebb4ajjoKrr4aamsAa5RB2LSyNm7WYOHEiCxcuBGDhwoWcc845vvf/9re/IaXk008/pU+fPr5hiLaIuNoLUqrc/O7dVbZSM1zrF21F5FB/NVRXV3f+4A8/lFIIKa+7LnAGOUiXtAgz3KLFRRddJNPS0mR0dLTMyMiQzzzzjPR4PHLcuHFyyJAhcty4cXLHjh1SSimbmprk1VdfLY844giZnZ0tP//8c7/OMWrUqGBegnksXKjuYh9//JBNhvtFq3HVqDXS8vPzGT58eOcbmDEDnnwSPv4YTjwxcIY5QJe1CCOsFprs7GzWrFnjtBmhoaJC3cEOHw7/+98hxckN9wt3rJF2cLpNh7n/fsjIUEv8uDyJvMtahBFWC01Elbm87jo1XPjMMy2uBuFWvzAq6Ha5bF1CgsrjW7sWvEnobsWW8NNYLTTt3JmGD8uXwwsvwB13qN5uC7jVL4wKutWBKGBz1lkwaZJa4mft2q635xAB0SJMsFpoIiJPd9cu9fAsOxtuvbXV3dzqF0YF3YAtQPjoo9CnD0ybBi79NrSLMWqsFpqIKHhz881QWgoLFkAb1+tWvzAq6AZsAcLDDlPL+6xcqaYKuxC7GKPGaqEJ+4I3//kP/OUvcNNN7S4y6Va/MCroBvRb/MIL4fzz4a67ID8/cO2GiIjo0fiJ1UIT1nm6u3erh+DDh8M997S7u1v9wqigm5ycHLjGhFDpY716qeryLhsLC6gWLsdqoQnr7IVbboGtW+HZZ9WyXO3gVr8wKuiWlpYGtsHUVHjsMVWJ7OGHA9t2kAm4Fi7GaqEJ2+V63nlHZR7dcAOcdJJfh7jVL4wKukH55po0Cc45R6WerFsX+PaDhFu/xYOB1UITlj3dXbvU3ejQoWopdT9xq18YFXT3V2UKKEKoervx8TB5sioR5wKCooVLsVpownK9uBtugOJiWLgQevb0+zC3+oVRQbcmWMVqUlPVrcsXX7hm0kTQtHAhVgtN2AXd5cvVGO6tt3Z46r5b/cKo2gt79uyhZwe+6TrML3+plm7/7DMYPTp45wkAQdfCRVgtNKNHj/Z7PTXj2bFDTYBISVHpnT16dOhww/3CHbUXgp539/jjKof30kvB8FsTt+YgBgOrhSZs8nS9y6izYwf87W8dDrjgXr8wKujG+pEm0iWSktQsl7Vr4fbbg3uuLhJ0LVyE1ULj2hqyB7N4Mbz4Itx9N4wc2akm3OoXRn2CIVn19Ywz1DfsH/8Ib78d/PN1EresgBsKrBaasFgNuLBQ/Q+efLJa37CTuNUvjAq6ZWVloTnRQw/BsGEqm6GyMjTn7CAh08IFWC00rs/TbWxUw3tSwqJF0IUvEbf6hVFBNyUlJTQniouD55+H8nJVzcjAcnkh08IFWC00rs/T/cMf4IMP1KSlww/vUlNu9Qujgm5IU0COPVYt5fzii+ob1zDcmg4TDKwWGlenjK1apSYp/fznqrfbRdzqF0YF3dra2tCe8JZbYOxYuOYa+O670J67HUKuhcFYLTSuDbo1NWp2aEqKmqwUgMI9bvULo4JuyOtjdusGf/+7Wml00iSjlvhxa63QYGC10Li1shbXXgsbN6r/t379AtKkW/3CqKDrSN7dgAFqDaYvvoA77wz9+VvBrTmIwcBqoXFlnu4//gHPPQczZ8KPfhSwZt3qF0YF3bi4OGdOfP75cNVV8OCDqoiyATimhYG4XYsNGzaQm5vreyUkJPDII48wa9YsMjIyfO+/8cYb7bblujzdLVvgyitV5bC77w5o0271C6OmAVdWVjq3wmdtLYwZo2bI5OVBWpozdnhxVAvDCCctGhsbycjI4LPPPuO5554jPj6em266ye/jc3NzycvLC6KFAaS+Hk49VVX3y8vrcrbCwRjuF+6YBlxRUeHcyePi1Oqju3bBxRc7XvTcUS0MI5y0ePvttxk8eHCnxyNdtQLuzJmqlvUzzwQ84IJ7/aLbrFmzWt3o8XhmFRUVERMTQ0lJCeXl5fTq1YtNmzZRX1/Pnj172Lp1Kz169GDr1q14PB569uzJpk2baGhooKamhuLiYuLi4tiyZQs7d+6ke/fubNmyhaamJnbt2kVJSYmvzcbGRmJjY9myZQugvslKS0t92/eniBQUFBAVFcX27dvZtm2bb3ttbS2NjY0UFhYSHR1NWVkZZWVlvu11dXXU19fT6jX17YtMS6PH/PnsbWykICury9dUXV1Nt27dOnxNffv2pbi4uOvXFITPqbPX1NnPqaqqisrKyrC4plmzZjFhwgTS0tJ4++23WbRoEfPnz+ejjz4iJyeH7du3H3JNc+bM4dprr2X+/Pns2LGD6dOnG3VNLfle2TPP0OeOO6idOpVN558flM8pNjaWmpqa0MYIP30vPj6+1fWGjBpeKCgoYNCgQaE85aFICZdcAkuWqGnCARz47whGaGEI4aJFfX096enprF27ltTUVMrLy0lOTkYIwZ133sm2bdt49tln22wjJyeHr7/+OkQWd5KiIhg1CrKy4JNP/Fp6pzMY7hfuGF4woiixEPDnP8OQISqNrLzcETOM0MIQwkWLN998k9GjR5OamgpAamoq3bp1IyoqiiuuuIKVK1e224bxebr79un0yxdfDFrABff6hVFB15i8u969Vd3dqirlQA6MoxmjhQGEixZLlixh0qRJvr+3bdvm+33ZsmVkZ2e324bxebq33AIff6yWUT/yyKCeyq1+YVTQNSrvLidH9XjffVct4x5ijNLCYcJBi9raWv7zn/9w/vnn+9675ZZbOOaYY8jJyeHdd9/lYT8WTzU6T/ell+CRR+A3v4GLLgr66dzqF0ZVz4iPj3fahAOZMkV9a8+Zo5YSmTgxZKc2TgsHCQct4uLi2LFjxwHvLepEzQ9j83Tz82HaNPV/Mm9eSE7pVr8w6hM0sijxn/6klva59FLYtClkpzVSC4ewWmiMDLo1NaqITWys6u2GaAjErX5h1Cfo8XicNuFQYmPh5ZchKkrNXPv++5Cc1kgtHMJqoTEuT1dKuOwy1dNdsgQyM0N2arf6hVFBNz093WkTWubww5VDffONcrAQ1N81VgsHsFpounfv7rQJB/LQQypLYc4c+MlPQnpqt/qFUUHX6G+un/4U7r9fFe/4wx+CfjqjtQgxVguNUT3dt96C3/0OLrwQbr455Kd3q18YFXSNfjILcOut8H//p34GuTCO8VqEEKuFpp3JTKFj82aVoTBiBDz7bEDq43YUt/qFUTPSDF/HXlFToyomlZTA55/D4MFBOY0rtAgRVgvN6NGjWbVqlbNG1NTAD34AxcVB/R9oD8P9wh0z0lyRdxcfD6++qr7Zzz4bqquDchpXaBEirBYax3t3TU2qINS6dWqozaGAC+71C6OCbkJCgtMm+MfgwSqjYeNGNWMtCBXJXKNFCLBaaBxfgv3OO+G11+Dhh2HCBEdNcatfGBV0XbXS6Y9/DI8/Dm+8AbfdFvDmXaVFkLFaaIQDY6c+Fi9WD5OvvBJmzHDODi9u9Qujgm5lZaXTJnSMq65SzjdvnnqYEEBcp0UQsVpoHMte+PRTNePs1FPV8ulOBn8vbvULo4JuRkaG0yZ0nP23WVddpUpBBghXahEkrBYaRwrebN6spsBnZqphNUOK7rjVL4wKuuUOlVHsEtHRaurjsGFqKuS6dQFp1pVaBAmrhWbfvn2hPeHOnXDWWarS3r/+BcnJoT1/G7jVL4wKusbXCm2NPn2UQ8bGKgcNgDO4VosgYLXQhDRPt74eLrhA1RxZtkx1LAzCrX5hVNDNDOG87YAzcCC8/roKuBMndrlGg6u1CDBWC03IhhekhCuugHfegQUL1FiuYbjVL4wKukVFRU6b0DXGjFE1Gr74An7xiy4VP3e9FgHEaqEJWZ7uHXfA3/4G99yjlq8yELf6hVFBNzEx0WkTus4558CTT6rhhunTO10cJyy0CBBWC01I8nSffFKnht15Z/DP10nc6hfuTHQznauuUlMkZ8+GjAxoY8Vli8UoXn1VpUGefTY88YQRqWHhhlE93aqqKqdNCBz33qtWnrjnHrXsTwcJKy26iNVC0xiE2Y8+3n9fFbE5/nh44QWVmWMwbvULo1TNyspy2oTAIQQ8/TTs2AHXXAN9+3Zo3aiw0qKLWC00QXuQtmqV6t0ecYQaGouLC855Aohb/cKonm5xcbHTJgSW7t1VUZBTTlEPI9580+9Dw06LLmC10ATlQdqGDapedN++qkZuv36BP0cQcKtfGBV0jVz/qav07An//Cccc4yaPPHhh34dFpZadBKrhSbgtReKitSMyqgoVSPaRWlYbvULo6xOTU112oTg0KcPrFgBAwbAmWeqGqTtELZadIJw0GLQoEEcc8wx5ObmctxxxwGqdsCECRM48sgjmTBhAjt37my3nYAu11NaCuPHw65dyj+HDg1c2yHArX5hVNAtKSlx2oTgkZKiajMkJ6tbua++anP3sNaig4SLFu+++y55eXl88cUXAMydO5fx48ezceNGxo8fz9y5c9ttI2DDCxUVak2zsjIVcEeNCky7IcStfmFU0E1KSnLahOCSmalm+MTHK4dvo05D2GvRAcJVi9dee43JkycDMHnyZF599dV2jwlIOcPKSjWkUFCgHpqddFLX23QAt/pFm5+gx+PB4/GQnp6Ox+Ohvr6egQMHUlhYSEJCAtHR0VRWVpKRkUF5eTlNTU1kZmZSVFTkS1yuqqoiKyuL4uJioqKiSE1NpaSkhKSkJBoaGqiurva1uWfPHmJjYyktLSU5OZm6ujpqamp822NjY0lMTKSsrIyUlBRqamqora31bY+LiyM+Pp6KigrS0tKoqqqirq7Otz0+Pp7Y2NiQXlNMTAzJycn6mqKj2fv00xwxdSqNp55K+ZIl9DruuEOuKTY2lvz8fHdcU5A/p5KSEiorK119TU1NTYwbN47GxkauvPJKzj77bLZt20ZiYiL5+fkkJCRQXl5Ofn7+Idc0b948li5dCkBFRQW1tbWdvqba4mKGTJ8O+flUPPMMsTk5lOXnu/L/CVTP38QYkZaW1npglVK29Qop69evD/UpnWPdOilTU9Vr7dpDNkeUFu0QDlqUlJRIKaUsLy+XOTk58v3335d9+vQ5YJ/ExMR22xkxYkTnjdixQ8pRo6SMiZHyX//qfDuGYLhftBpXjRpeGDhwoNMmhI6jjoL33lP5vD/+MaxZc8DmiNKiHcJBi/T0dABSUlI477zzWLlyJampqWzbtg2Abdu2kZKS0m47nc7T3bFDPTRbt04tt3PmmZ1rxyDc6hdGBV23LjTXaYYPV4G3WzcYNw6+/tq3KeK0aAO3a/H999+ze/du3+9vvfUW2dnZTJw4kYULFwKwcOFCzjnnnHbb6tSDtIoK5V/r16uAe/rpHW/DQNzqF0bNSHOkKr7TDBumAu/48ap83ooVcMIJkalFK7hdi/Lycs477zxALbfzy1/+ktNPP50xY8Zw4YUXsmDBArKysnjppZfabavDebolJeqhbWGhyhc/7bTOXIKRuNUvhGy7ClYIKyZDdXW1a1f47DIFBSrwVlTA669TPXp05GpxEBHtFwcxatQoVq9e7d/OmzergOvxwPLlMHZscI0LMYb7RavfjkYNL+x/IhmRDBoE//sfZGXBGWewa/Fipy0yhoj2i4Pwe7me9evV9PNdu1R+eJgFXHCvXxgVdJMNWn/JEdLTVaWno48mc8YMVUTaYv2iGX7l6X7yCfzwh9DYqIauxowJul1O4Fa/MCro1tXVOW2C8yQnw7vvsvfEE2HyZLW8e4Rj/ULT7rpg//qXGqZKSoKPP1Y1P8IUt/qFUUG3pqbGaRPMICGBwiefhAsvhJtvhptuApcuwhcIrF9o2gy6f/2rWrnk6KPho49UmcYwxq1+YVT2glvz7oJB1pFHqvXWUlPhD39Q1aAWLlRVyyIM6xeaFp/YS6lWJ7n3XvXg7JVXoHfvkNsWatzqF0b1dN2adxcMCgsLVbm9Rx9VQffll9Vt4/btTpsWcqxfaA7J0927Fy69VAXcqVPV8EIEBFxwr18YFXRjY2OdNsEYfFoIATfcoILu6tVw4onqyXQEYf1Cc0AN2R07VMW6v/9drce3YAG4NHe1M7jVL4wKum5d3TMYHKLF+eerJ9E1NSrwvvGGI3Y5gfULjW814DVrVFbCJ5/A88/D7bdH3CKSbvULo4JuWVmZ0yYYQ4tanHCCKoA+eDD87Gfw0EOdXuLdTVi/0Ozbt0/NLDvpJNizR6UY/vKXTpvlCG71C6OCrj8FPyKFVrXIylJL/vzf/8Ett6i1177/PrTGhRjrF16amojZsQPOPVfV7fjiC3XXE6G41S+MCrpuTQEJBm1qERenlsiePRsWL1a9no0bQ2dciLF+AezcCRMnElVWpnq2H3wAGRlOW+UobvULo4JubW2t0yYYQ7taCKHG8VasUGtdHXcc+LHygBuJeL9YvRqOPRbeeot9/fvDokURmTp4MG71C6OCrlvz7oKB31qcdhp8+aWqVnbeeXD99SqNKIyIWL+QEp58Ut3J7NsHH3xAt7S0iHtg1hpu9Qujgq5b8+6CQYe0GDhQFcu59lp45BH4wQ/CarghIv2ishJ+/nO45hpVC3fVKjjxxMAtTBkGuNUvjAq6cXFxTptgDB3WokcPNZHi1VdhyxYYPVrNYAuD7IaI84sPPlCr8y5fribGLF8Ohx0GHJSnG+G41S+M+gTj4+OdNsEYOq3FOeeo5d1HjYIpU1RvyeWz2CLGL+rqVK2NH/0IundX9RNuuEHNTPRig67GrX5h1CdYUVHhtAnG0CUtBgyAd9+FBx9U00KPOQZefz1wxoWYiPCLvDw12WHePLjySv33QTQ0NDhgnJm41S+MCrptLlscYXRZi27dVK/p889V0ZyJE+FXv3Jlrzes/aKuTmWhjBmjVnh44w2YPx9a6cV17949xAaai1v9wqigW1VV5bQJxhAwLXJyVOC95x546SVV9m/xYleN9YatX3z0EeTmwv33w8UXw9q1cMYZbR7S2NgYIuPMx61+YVTQdWtR4mAQUC1iYuCuu1S+5+DBqsf705/Chg2BO0cQCTu/8Hjg8svV6g5798K//w3PPacKj7dDu0XMIwi3+oVRQdeteXfBIChajBihelePPQYrV6qx3ttvB8OTzMPGL5qa4OmnVU71woWqOP0333RohV63roAbDNzqF0YFXbfm3QWDoGnRrRvMmKF6uRddpG5thw1Ts5wM7UW53S+2bt3K9bm5rIuLg6uuorhvX8jLY1avXmQMG0Zubi65ubm84UflOJunq3GrXxgVdN2aAhIMgq5Faqpa+PKDD9Tvl14Kxx+vqlYZhqv9YsMGDrv8ch7+6iuOTk1lz4IFjBOCdd5ZZddffz15eXnk5eVx5plnttucTRnTuNUvjPoE3VqUOBiETItTTlFDDYsWQXm5yhE94wxVwcoQXOkXhYVw2WUwYgSxn3wCc+ZAfj49p03jqKOPpqSkpFPN2qCrcaVf0M4aaR6PB4/HQ3p6Oh6Ph/r6egYOHEhhYSEJCQlER0dTWVlJRkYG5eXlNDU1kZmZSVFRka/AcFVVFVlZWRQXFxMVFUVqaiolJSUkJSXR0NBAdXW1r82dO3cSExNDaWkpycnJ1NXVUVNT49seGxtLYmIiZWVlpKSkUFNTQ21trW97XFwc8fHxVFRUkJaWRlVVFXV1db7t8fHxxMbGhvSaYmJiSE5O7vA1NTQ04PF4QndNxx1H1urVfP/ggyT95S90GzOG3T/5CftmzqRu2LCAXFNnP6eNGzfi8XiM/JwOvqbKr75iwOLFxCxciBSCpunT2XLRRfQcOJDY77/nq48/ZtWqVaSkpODxeHjuuef4y1/+wqhRo7j33ntpamo65JrmzZvH0qVLASgvL6e2tjak12Tq/1Ntba2x19RmOpuUsq1XSNm1a1eoT2ksjmqxa5eUs2ZJ2bu3lCDlWWdJ+eGHDprjAr/YsEHKyy6Tsnt3KaOjpbzySimLig7YZffu3XL06NFy6dKlUkopy8rKZENDg2xsbJQzZ86UU6dObfc0ubm5QTHfjRjuF63GVaPuVTwej9MmGIOjWiQkwN13q1vk++6Dzz5T6U0//KFaqy3Es6KM9Qsp1Zj4z3+uioo//zxcdRV89x089ZSaGehl3759/PznP+dXv/oV559/PgCpqal069aNqKgorrjiClauXNnuKe2MNI2xftEORgVd+2RWY4QWffvCHXdAQYGqXlZaqlasOOIIeOABCNE0TCO0aE5NDTz7rKpvceqpau26225TOj32mKr61gwpJZdddhlHHXUUN9xwg+/9bdu2+X5ftmwZ2dnZ7Z5aumhSS7Axzi/8RLTzIYb0E96zZw89bXFmwFAtGhtVxas//QneeQeio+Hss9UDo5/+VP0dBIzQQkr1wHHBAliyRAXe7Gy47jq1kkMbFa8+/PBDTjnlFI455hjfg7D777+fJUuWkJeXhxCCQYMG8dRTT9G/f/82zRg9ejSrVq0K6KW5FSP8onVaLXpsVNDNz89n+PDhoTylsRivxfr1qre3cKGq55CaqnrBkyapdbsC+JTdUS3Wr1dLIy1ZomoUx8XBhReqL5qTTw55QfHs7GzWrFkT0nOaiuH/I+4IuqWlpaSnp4fylMbiGi3q61Xvd8kS9bOuTo1lnn22ev34x6rWbxcIqRaNjapH+/rr6rVmjQqsP/6xmkzyi1+oMW+HGDlyJF999ZVj5zcJw/9HWg26wbkf7CTRQbo9dSOu0SImBs4/X72qq9Xy4C+/DH/9q1pqplcvNe45frxaASEnp8O94KBqISVs3qyGS955B95+W/Xcu3VTOcyPPqp68O3c9ocKYZfq8eGa/5GDMMrqyspK1y6rHGhcqUVCgqqWdfHFsGePqum7fLkKZPunuPbpo2a+nXCC+pmTo5aVbyOYBFSL8nJV7+CLL+DTT1VmRlmZ2ta/v6qDcNZZcPrp6kGiYdjsBY0r/0cwbHhh9+7d9O7dO5SnNJaw06K4WAXhjz5Sge6bb9StPEDv3uqh1JFHwuGHq1dWlhonTklhd/fu9O7Tp/1zSAm7dqmsiooKdc7Nm9XyRZs2qaGC5vWEjzxSBf+TTlK98GHDjF/00T5I0xj+P+KOMd3vvvuOIUOGhPKUxhL2Wnz/vVpWaM0aFYDXrFGBsbj4kFq/UghEr15qqKJXLzWksZ+GBtXW/ldL9WZTUlSaW3a2eo0YodaQ86OUomkcc8wxfPPNN06bYQSG/4+4Y0zX1grVhL0WvXqpVYt/8IMD36+vh6Ii2LrV12OtzM+nX48eKqjW1Bw4OSMqSgfj+HhITlZBNiUF0tNh0CC1LUyweboat/6PGBV0MzMznTbBGCJWi5gYGDJEvbz0rK1tMw82krD1dDVu/R8xakZaUVGR0yYYg9VCY7XQuHUWVjBwq18YFXT3V+ixWC2aY7XQdOvWzWkTjMGtfmFU0LVYLJZwx6ig69bVPYOB1UJjtdDY1YA1bvULo4JuVlaW0yYYg9VCY7XQ2AdpGrf6hVFBt7i42GkTjMFqobFaaOyDNI1b/cKooGvXf9JYLTRWC42tvaBxq18YZXVqaqrTJhiD1UJjtdB0797daROMwa1+YVTQ7ewKqeGI1UJjtdDY4QWNW/3CqKCb5MK58MHCaqGxWmjcWs4wGLjVL4wKurZsncZqobFaaGztBY1b/cKooFtdXe20CcZgtdBYLTQ2T1fjVr8wKugOPGgV1UjGaqGxWmhsnq7GrX5hVNAtLCx02gRjsFporBYa+yBN41a/MCro2m9xjdVCE85arFixgmHDhjFkyBDmzp3b7v42T1fjVr8wKugmJyc7bYIxWC004apFY2Mj11xzDW+++Sbr1q1jyZIlrFu3rs1jbPaCxq1+YVTQLS0tddoEY7BaaMJVi5UrVzJkyBCOOOIIYmJiuOiii3jttdfaPGbfvn0hss583OoXba6RJoRYAYTy6yQZ8ITwfCZjtdCEqxZ9gQRg/+BkEhAPHFydOxk4zPt7d+DrkFhnPib7hUdKeXpLG9pbmDKkCCG+kFIe57QdJmC10ISrFkKI/wN+KqW83Pv3JcDxUsrftHFMWGrRGdyqhVHDCxZLhFEMDGj2dybgzntmi9/YoGuxOMfnwJFCiMOFEDHARcA/HbbJEmRMexT6tNMGGITVQhOWWkgpG4QQM4B/A92AZ6WUa9s5LCy16CSu1MKoMV2LxWIJd+zwgsVisYQQG3QtFoslhBgZdIUQvxFCbBBCrBVCPOi0PU4jhLhJCCGFEO6cghMAhBAPCSHyhRBfCyGWCSESnbYplAghTvf+T3wnhLjNaXucRAgxQAjxrhBivTdGXOe0TR3BuKArhPgxcA6QI6UcAcxz2CRHEUIMACZwaMJ8pPEfIFtKmQN8C/zOYXtChhCiG/AEcAZwNDBJCHG0s1Y5SgNwo5TyKOBE4Bo36WFc0AWmA3OllHsBpJQVDtvjNA8DtwAR/cRTSvmWlHJ/1epPUTmtkcLxwHdSys1SynrgBVTHJCKRUm6TUq7y/r4bWA9kOGuV/5gYdIcCpwghPhNCvC+EGOO0QU4hhJgIlEgpv3LaFsOYBrzptBEhJAPY2uzvYlwUAM5KmAAAAXpJREFUZIKJEGIQMAr4zFlL/MeRPF0hxH+BtBY23Y6yqS/qtmEM8KIQ4ggZprlt7WgxEzgttBY5R1taSClf8+5zO+r28vlQ2uYwLdVzDMv/h44ghIgHlgK/lVK6ZhkJR4KulPInrW0TQkwHXvEG2ZVCiCZUYYvtobIvlLSmhRDiGOBw4CtvDdVMYJUQ4ngpZVkITQwZbfkFgBBiMvAzYHy4fgm3gp0ufBBCiO6ogPu8lPIVp+3pCCYOL7wKjAMQQgwFYjC3klDQkFJ+I6VMkVIOklIOQv3jjQ7XgNseQojTgVuBiVLKWqftCTF2unAzhOqFLADWSyn/6LQ9HcXEoPsscIQQYg3qgcHkCOvVWFrmcaA38B8hRJ4QYr7TBoUK7wPE/dOF1wMv+jFdOJw5GbgEGOf1hTwhxJlOG+UvdhqwxWKxhBATe7oWi8USttiga7FYLCHEBl2LxWIJITboWiwWSwixQddisVhCiA26FovFEkJs0LVYLJYQ8v+htycbRqAwdgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 4: matrices 3x3\n", "u = [[1,2,3], [0,2,3], [0,0,3]]\n", "v = [[1,1,1], [1,1,0], [0,0,1]]\n", "out = al.visualize_Cauchy_Schwarz(u,v)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 0.0000 \\leq ||u|| \\ ||v|| = 0.8930$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 5: fonctions avec 1 argument\n", "u = lambda x: x\n", "v = lambda x: np.exp(-x**2)\n", "limits = [-1,1]\n", "out = al.visualize_Cauchy_Schwarz(u,v, limits=limits)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "Cauchy-Schwarz Inequality: $|\\langle u,v \\rangle| = 0.4597 \\leq ||u|| \\ ||v|| = 0.8527$" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Cas 6: fonctions avec 2 argument\n", "u = lambda x,y: x + y\n", "v = lambda x,y: np.sin(x) * np.sign(y)\n", "limits = [[0,1], [-1,1]]\n", "out = al.visualize_Cauchy_Schwarz(u,v, limits=limits)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 1\n", "\n", "Considérez les déclarations suivantes et marquez celles qui sont vraies.\n", "\n", "1. Soit $V=\\mathbb{R}^n$, muni du produit scalaire standard. Alors $$\\dfrac{\\left(\\sum_{i=1}^n u_i\\right)^2}{\\sum_{i=1}^n v_i} \\leq \\sum_{i=1}^n \\dfrac{u_i^2}{v_i} \\qquad \\forall \\ u,v \\in V$$\n", "2. L'inégalité triangulaire et l'inégalité Cauchy-Schwarz portent toutes deux un signe d'égalité soit si au moins un des deux vecteurs est nul, soit si les deux vecteurs sont orthogonaux.\n", "3. Soit $V$ un $\\mathbb{R}$-espace vectoriel, equipped with the inner product $\\langle \\cdot,\\cdot \\rangle$. The angle between the vectors $u$ and $\\tilde{v} =: v - \\dfrac{\\langle u,v \\rangle}{\\langle u,u \\rangle} u$, whichever $u,v \\in V$ non-null, is equal to $0$.\n", "4. Let $V=\\mathcal{C}([-\\pi;\\pi]; \\mathbb{R})$, muni du produit scalaire standard $\\langle f,g \\rangle = \\int_{-\\pi}^{\\pi} f(t) \\ g(t) \\ dt$. Alors le théorème de Pythagore généralisé s'applique à la famille des vecteurs $\\mathcal{F}_1 = \\big\\{\\cos(kx)\\big\\}_{k=0}^{N_c} \\cup \\big\\{\\sin(kx)\\big\\}_{k=1}^{N_s}$, quelles que soient les valeurs de $N_c$ et $N_s$.\n", "5. Soit $V = \\mathcal{C}([-1;1]; \\mathbb{R})$ muni du produit scalaire standard $\\langle f,g \\rangle = \\int_{-1}^{1} f(t) \\ g(t) \\ dt$. Alors le théorème de Pythagore généralisé s'applique à la famille des vecteurs $\\mathcal{F}_2 = \\big\\{x^{2n}\\big\\}_{n=0}^{N_e} \\cup \\big\\{x^{2m+1}\\big\\}_{m=0}^{N_o}$, quelles que soient les valeurs de $N_e$ et $N_o$.\n", "6. Soit $V = \\mathcal{M}_{4\\times4}(\\mathbb{R})$ muni du produit scalaire standard $\\langle A,B \\rangle = Tr(A^TB)$. Alors le théorème de Pythagore généralisé s'applique à la famille des vecteurs $\\mathcal{F}_3 = \\Bigg\\{\\begin{pmatrix} 1/2 & -1/2 \\\\ 0 & 0 \\end{pmatrix}, \\begin{pmatrix} 1 & 1 \\\\ 0 & 0 \\end{pmatrix}, \\begin{pmatrix} 0 & 0 \\\\ -2 & -2 \\end{pmatrix}, \\begin{pmatrix} 0 & 0 \\\\ 1/4 & -1/4 \\end{pmatrix}\\Bigg\\}$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "corrections.Ex1Chapitre9_3_4()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 2\n", "Étant donné les couples de matrices suivants, déterminez l'angle entre les deux et les termes de gauche et de droite de l'égalité dans le thoerem de Pythagore, par rapport au produit scalaire défini via l'opérateur de trace\n", "\n", "1. $ \\qquad A = \\begin{pmatrix} -1 & 2 & 1 \\\\ 0 & 1 & -1 \\\\ -2 & 3 & 0 \\end{pmatrix} \\qquad \\quad \\ \\ \n", " B = \\begin{pmatrix} 0 & -1 & 2 \\\\ 1 & 3 & -2 \\\\ 1 & 1 & 1 \\end{pmatrix}$ \n", "2. $ \\qquad A = \\begin{pmatrix} 1 & -1 \\\\ 0 & 3 \\end{pmatrix} \\qquad \\qquad \\quad\n", " B = \\begin{pmatrix} 0 & 2 \\\\ 1 & -1\\end{pmatrix}$\n", "3. $ \\qquad A = \\begin{pmatrix} 0 & 1 & 3 & 0 \\\\ 1 & 0 & 1 & 0 \\\\ -1 & -2 & 2 & 1 \\\\ 3 & 4 & 1 & 2 \\end{pmatrix} \\qquad\n", " B = \\begin{pmatrix} 3 & 1 & -1 & 2 \\\\ 2 & 2 & 0 & 1 \\\\ -1 & 1 & -1 & 3 \\\\ -1 & 1 & 1 & -1 \\end{pmatrix}$\n", "4. $ \\qquad A = \\begin{pmatrix} 1 & 0 \\\\ -1 & 3 \\end{pmatrix} \\qquad \\qquad \\quad\n", " B = \\begin{pmatrix} -1 & -5 \\\\ 2 & -3 \\end{pmatrix}$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 1\n", "corrections.Ex2Chapitre9_3_4(case_nb=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 2\n", "corrections.Ex2Chapitre9_3_4(case_nb=2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 3\n", "corrections.Ex2Chapitre9_3_4(case_nb=3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 4\n", "corrections.Ex2Chapitre9_3_4(case_nb=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 3\n", "Étant donné les couples de fonctions suivants, déterminez l'angle entre les deux et les termes de gauche et de droite de l'égalité dans le thoerem de Pythagore, par rapport au produit scalaire donné\n", "\n", "1. $\\qquad f(x) = x; \\quad g(x) = e^{-|x|} \\qquad \\qquad \\qquad \\qquad \\qquad \\ \\ with: \\quad \\langle f, g \\rangle = \\int_{-1}^{1} f(x)g(x) \\ dx$\n", "2. $\\qquad f(x) = x^3 + \\dfrac{1}{2}; \\quad g(x) = x^2 - x \\qquad \\qquad \\qquad \\quad \\ \\ with: \\quad \\langle f, g \\rangle = \\int_0^1 f(x)g(x) \\ dx$\n", "3. $\\qquad f(x) = \\sin(|2x|); \\quad \\ g(x) = \\cos\\big(\\big|x + \\frac{\\pi}{2}\\big|\\big) \\qquad \\qquad \\ \\ with: \\quad \\langle f,g \\rangle = \\int_{-\\pi/2}^{\\pi/2} f(x)g(x) \\ dx$\n", "4. $\\qquad f(x) = \\sin(|2x|); \\quad \\ g(x) = \\cos\\big(\\big|x + \\frac{\\pi}{2}\\big|\\big) \\qquad \\qquad \\ \\ with: \\quad \\langle f,g \\rangle = \\int_{0}^{\\pi/2} f(x)g(x) \\ dx$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 1\n", "corrections.Ex3Chapitre9_3_4(case_nb=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 2\n", "corrections.Ex3Chapitre9_3_4(case_nb=2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 3\n", "corrections.Ex3Chapitre9_3_4(case_nb=3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Cas Nombre 4\n", "corrections.Ex3Chapitre9_3_4(case_nb=4)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[Passez au notebook du chapitre 9.5: bases](./9.3-9.4%20Norme%2C%20inégalité%20de%20Cauchy-Schwarz%2C%20orthogonalité%2C%20inegalité%20du%20triangle%2C%20Pythagore.ipynb)" + ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 } diff --git "a/Chapitre 9 - Produits scalaires et espaces euclidens/9.5 Bases othogonales, orthonormales-orthonorm\303\251e.ipynb" "b/Chapitre 9 - Produits scalaires et espaces euclidens/9.5 Bases othogonales, orthonormales-orthonorm\303\251e.ipynb" new file mode 100644 index 0000000..41208dc --- /dev/null +++ "b/Chapitre 9 - Produits scalaires et espaces euclidens/9.5 Bases othogonales, orthonormales-orthonorm\303\251e.ipynb" @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Concept(s)-clé(s) et théorie**\n", + "\n", + "## Définition 1 - Famille/Base Orthogonale/Orthonormal\n", + "Soient $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot,\\cdot \\rangle$ et $S \\subset V$ un sous-ensemble de $V$. On dit que $S$ est une **famille orthogonale** si $\\langle u,v \\rangle = 0 \\quad \\forall \\ u,v \\in S$ et que $S$ est une **famille orthonormale** (ou **orthonormée**) si de plus $\\langle u,u, \\rangle = 1$ pour tout $u \\in S$. Enfin, si $S$ est une base de $V$, alors on parle de **base orthogonale** our de **base othonormale** (ou **orthonormèe**).\n", + "\n", + "## Proposition 1 - Représentation d'un vecteur par rapport à une base orthogonale\n", + "Soient $V$ un $\\mathbb{R}$-espace vectoriel muni d'un produit scalaire $\\langle \\cdot,\\cdot \\rangle$ et $\\mathcal{B} = (v_1, \\dots, v_n)$ une base orthogonale de $V$. Alors pour tout $v \\in V$ on a\n", + "\n", + "$$\n", + "([v]_{\\mathcal{B}})_i = \\dfrac{\\langle v,v_i \\rangle}{||v_i||^2}\n", + "$$\n", + "\n", + "ceci pour tout $1 \\leq i \\leq n$. En particulier, si $\\mathcal{B}$ est orthonormale, alors on a\n", + "\n", + "$$\n", + "([v]_{\\mathcal{B}})_i = \\langle v,v_i \\rangle\n", + "$$\n", + "\n", + "ceci pour tout $1 \\leq i \\leq n$.\n", + "\n", + "## Proposition 2 - Produit scalaire et bases orthonormales\n", + "Soient $V$ un $\\mathbb{R}$-espace euclidien de dimension $n$ muni d'un produit scalaire $\\langle \\cdot,\\cdot \\rangle_V$ et $\\mathcal{B}$ une base ordonée de $V$. Aussi, designons par $\\cdot : \\mathbb{R}^n \\times \\mathbb{R}^n \\to \\mathbb{R}$ le produit scalaire usuel sur $\\mathbb{R}^n$. Alors\n", + "\n", + "$$\n", + "\\langle x,y \\rangle_V = [x]_{\\mathcal{B}} \\cdot [y]_{\\mathcal{B}} \\quad \\forall \\ x,y \\in V \\qquad \\Longleftrightarrow \\qquad\\mathcal{B} \\ \\ est \\ une \\ base \\ orthonormale\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercises et Exemples" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import Librairie.AL_Fct as al\n", + "import Corrections.corrections as corrections\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercice 1\n", + "\n", + "Consider the following families of vectors in $\\mathbb{R}^n$ ($n \\in \\{2,\\dots,5\\}$) and determine if they are ortogonal/orthonormal families/bases, with respect to the given inner product.\n", + "\n", + "1. $\\quad$ $V = \\mathbb{R}^2$; $\\qquad$ $\\langle u,v \\rangle_V = u^Tv$; $\\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\quad \\ $ $\\mathcal{F} = \\left\\{\\begin{pmatrix} 0\\\\1 \\end{pmatrix}, \\begin{pmatrix} \\frac{\\sqrt{2}}{2} \\\\ \\frac{\\sqrt{2}}{2} \\end{pmatrix}, \\begin{pmatrix} -\\frac{\\sqrt{2}}{2} \\\\ \\frac{\\sqrt{2}}{2} \\end{pmatrix}\\right\\}$\n", + "\n", + "2. $\\quad$ $V = \\mathbb{R}^3$; $\\qquad$ $\\langle u,v \\rangle_V = u^TAv \\quad with \\ A=\\begin{bmatrix} 2 & 0 & -1\\\\ 0 & 1 & 0\\\\ -1 & 0 & 1 \\end{bmatrix}$; $\\qquad$ $\\mathcal{F} = \\left\\{\\begin{pmatrix} 0\\\\1\\\\0 \\end{pmatrix}, \\begin{pmatrix} \\frac{\\sqrt{5}}{5} \\\\ 0 \\\\ -\\frac{\\sqrt{5}}{5} \\end{pmatrix}, \\begin{pmatrix} -\\frac{6}{5} \\\\ 0 \\\\ \\frac{9}{5} \\end{pmatrix}\\right\\}$\n", + "\n", + "3. $\\quad$ $V = \\mathbb{R}^4$; $\\qquad$ $\\langle u,v \\rangle_V = u^Tv$; $\\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\quad \\ $ $\\mathcal{F} = \\left\\{\\begin{pmatrix} 2\\\\0\\\\1\\\\1 \\end{pmatrix}, \\begin{pmatrix} 0\\\\1\\\\-1\\\\1 \\end{pmatrix}, \\begin{pmatrix} 1\\\\0\\\\-1\\\\-1 \\end{pmatrix} \\begin{pmatrix} 0\\\\2\\\\1\\\\-1 \\end{pmatrix}\\right\\}$\n", + "\n", + "4. $\\quad$ $V = \\mathbb{R}^5$; $\\qquad$ $\\langle u,v \\rangle_V = u^Tv$; $\\qquad \\qquad \\qquad \\qquad \\qquad \\qquad \\quad \\ $ $\\mathcal{F} = \\left\\{\\begin{pmatrix} \\frac{\\sqrt{7}}{7}\\\\0\\\\\\frac{2\\sqrt{7}}{7}\\\\\\frac{\\sqrt{7}}{7}\\\\-\\frac{\\sqrt{7}}{7} \\end{pmatrix}, \\begin{pmatrix} \\frac{\\sqrt{3}}{3} \\\\ -\\frac{\\sqrt{3}}{3} \\\\ 0 \\\\ -\\frac{\\sqrt{3}}{3} \\\\ 0 \\end{pmatrix}, \\begin{pmatrix} 0 \\\\ \\frac{\\sqrt{3}}{3} \\\\ 0 \\\\ -\\frac{\\sqrt{3}}{3} \\\\ -\\frac{\\sqrt{3}}{3} \\end{pmatrix} \\right\\}$" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-1.60350584+1.22746946j, -1.60350584-1.22746946j,\n", + " 2.20701168+0.j , 2. +0.j ])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A = np.array([[2,0,1,1], [0,1,-1,1], [1,0,-1,-1], [0,2,1,-1]])\n", + "lam, _ = np.linalg.eig(A)\n", + "lam" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercice 2\n", + "\n", + "Give some sets of functions and ask if they are families/bases orthogonal/orthonormal. Here we use integral inner product over different intervals and we may plot the functions in the solution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercice 3\n", + "\n", + "Give some basis and an element and ask to compute the coordinates with respect to such basis. We can stay both in $\\mathbb{R}^n$ and in polynomial spaces; we have to use standard basis, orthonormal basis and orthogonal basis." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 4\n", + "\n", + "With the same data of Ex 3, add an extra element and ask to compute $||u||$, $||v||$ et $\\langle u,v \\rangle$ both in $V$ and in $\\mathbb{R}^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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}