{"cells": [{"cell_type": "markdown", "id": "059e1855", "metadata": {}, "source": ["# Formule de Simpson\n", "\n", "On rappelle la formule de Simpson pour le calcul approch\u00e9 d\u2019une int\u00e9grale :\n", "\\begin{equation*}\n", "\\begin{split}\n", "\\int_a^bf(x)\\mathrm dx \\approx \\Delta_x\\sum_{i=0}^{N-1}\\frac{f(x_i) + 4f(x_i+\\frac{\\Delta_x}2) + f(x_i + \\Delta_x)}6 \\equiv I(f;a,b,N) \\end{split}\n", "\\end{equation*}\n", "o\u00f9 $\\Delta_x =\\frac{b-a}N$ et $x_i = a + i\\Delta_x$.\n", " \n", "1. Ecrivez une fonction `simpson_slow` qui calcule l\u2019int\u00e9grale d'une function $f$ entre $a$ et $b$ avec $N$ pas avec la m\u00e9thode de Simpson en utilisant une boucle (for loop).\n", "\n", "2. Ecrivez une autre fonction `simpson_fast` qui fait la m\u00eame chose sans utiliser de boucle (on suposera que la fonction $f$ est vectoris\u00e9e).\n", "\n", "3. Calculez l\u2019int\u00e9grale de $f(x) = \\frac{1}{1+x^2}$ entre 0 et 1 pour $N=1000$ et comparez le temps entre les deux fonctions en ecrirant `%timeit` avant la commande.\n", "\n", "4. Calculez la valeur th\u00e9orique $I^\\star$ de l'int\u00e9grale et tracez en \u00e9chelle logarithmique le residu $|I^\\star - I(f,0,1,N)|$ par rapport \u00e0 $N$. Qu'elle est la vitesse de convergence de cette int\u00e9grale ?"]}, {"cell_type": "markdown", "id": "1d874f58", "metadata": {}, "source": ["La solution analytique de l'int\u00e9grale est : $\\int_0^1 \\frac{dx}{1+x^2} = \\arctan(x)|_0^1 = \\pi/4$"]}], "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.8"}, "varInspector": {"cols": {"lenName": 16, "lenType": 16, "lenVar": 40}, "kernels_config": {"python": {"delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())"}, "r": {"delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) "}}, "types_to_exclude": ["module", "function", "builtin_function_or_method", "instance", "_Feature"], "window_display": false}}, "nbformat": 4, "nbformat_minor": 5}