Skip to content
Snippets Groups Projects
Commit d6b21693 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

ajout tp

parent c3e9546e
No related branches found
No related tags found
No related merge requests found
Pipeline #7330 passed
STYLES := ../css/tufte-css/tufte.css \
../css/pandoc.css \
../css/pandoc-solarized.css \
../css/tufte-extra.css
OPTIONS = --filter=pandoc-numbering
OPTIONS += --filter=pandoc-crossref
PDFOPTIONS = --pdf-engine pdflatex
PDFOPTIONS += --highlight-style kate
PDFOPTIONS += --number-sections
PDFOPTIONS += --template=./default.latex
HTMLOPTIONS += -t html5
HTMLOPTIONS += -c ../css/styling.css
HTMLOPTIONS += --self-contained
HTMLOPTIONS += --mathjax=../MathJax.js
MD=$(wildcard *.md)
HTML=$(MD:%.md=%.html)
PDF=$(MD:%.md=%.pdf)
all: $(HTML) $(PDF)
%.pdf: %.md Makefile
pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $<
%.html: %.md Makefile
pandoc -s $(OPTIONS) $(HTMLOPTIONS) -o $@ $<
clean:
rm -rf *.html *.pdf
---
# author:
# - Orestis Malaspinas
title: Travail pratique sur les intégrales
autoSectionLabels: true
autoEqnLabels: false
eqnPrefix:
- "éq."
- "éqs."
chapters: false
numberSections: false
chaptersDepth: 1
sectionsDepth: 3
lang: fr
documentclass: article
papersize: A4
cref: false
pandoc-numbering:
- category: exercice
urlcolor: blue
---
\newcommand{\dd}{\mathrm{d}}
\newcommand{\real}{\mathbb{R}}
\newcommand{\vectwo}[2]{\begin{pmatrix}#1 \\ #2 \end{pmatrix}}
\newcommand{\vecthree}[3]{\begin{pmatrix}#1 \\ #2 \\ #3 \end{pmatrix}}
\newcommand{\mat}[1]{\underline{\underline{#1}}}
\newcommand{\mattwo}[4]{\begin{pmatrix}
#1 & #2 \\
#3 & #4
\end{pmatrix}}
# But du travail et rendu
Le but de ce travail pratique est d'implanter les méthodes numériques de calcul d'intégrales que nous avons vues en cours,
afin de les comprendre de façon un peu plus approfondie. Puis, il faudra utiliser ces méthodes pour calculer
des convolutions afin de filtrer un signal.
Aucun langage particulier n'est imposé. Il est recommandé d'utiliser octave ou python (en particulier les librairies numpy/scipy/matplotlib).
Vous devrez rendre un petit rapport (3-4 pages) qui explique ce que vous avez fait et dans quel but. Il devra contenir
une courte introduction théorique (rappelant les formules et le but du travail), une partie expliquant dans les grandes lignes
des algorithmes (pas de copier-coller du code, pas de captures d'écran non plus sous peine de sanctions terribles).
La partie importante est celle contenant les résultats obtenus et leur discussion. Finalement, il faut inclure
une conclusion résumant votre travail.
Le travail doit être effectué par groupes de deux
(n'oubliez pas de mentionner les deux noms sur le rapport et dans le code si le travail est fait à deux).
Je dois pouvoir exécuter le code
afin de pouvoir reproduire les résultats présentés dans le rapport (un petit *readme* pour les instructions est le bienvenu).
Je dois aussi pouvoir définir ma propre fonction à intégrer de façon simple.
Le rapport et le code doivent être déposés sur cyberlearn.
La note sera une combinaison entre le code rendu et le rapport (moitié/moitié).
# Intégration numérique
## Méthodes d'intégration
Dans un premier temps, le but est donc d'écrire un code où l'utilisateur spécifie une fonction $f(x)$
(il écrira lui-même le code de la dite fonction) qu'on
suppose ``gentille'' (pas besoin de vérifier
si elle est bien définie partout par exemple), un intervalle $[a,b]$, et
un nombre de subdivisions $N$. Le code devra rendre la valeur numérique obtenue pour l'intégrale de la fonction
\begin{equation}
I(a,b,N,f(x)) \cong \int_a^bf(x)\dd x
\end{equation}
pour deux méthodes vues en cours (méthode du rectangle à gauche, et méthode du trapèze)[^1].
## Étude de l'erreur
Lorsqu'on calcule numériquement une intégrale, on espère que la valeur de celle-ci *converge*, c'est-à-dire
que plus $N$ est grand, plus la valeur de l'approximation est bonne. Pour vérifier que cela se passe avec nos
méthodes d'intégration, vous devrez effectuer une étude de l'erreur de vos méthodes d'intégration numériques.
Pour ce faire, nous choisissons une fonction $f(x)$
dont la primitive est simple à calculer
\begin{equation}
f(x)=-\frac{2x-1}{\exp(x^2-x+2)},
\end{equation}
et un intervalle sur lequel la fonction est bien définie. Choisissons ici $[a,b]$ avec $a=1$ et $b=5$.
On peut donc calculer l'intégrale exactement (analytiquement) et on notera ce résultat exact $I_{exact}(a,b,f(x))$.
Puis, il faut calculer l'erreur commise par l'évaluation de la fonction $I(a,b,N,f(x))$
pour $N=5, 10, 50, 100, 500, 1000$ pour chacune des méthodes que vous avez implémentées ci-dessus.
L'erreur $E(N)$ se calcule de la façon suivante
\begin{equation}
E(N)=\left|\frac{I_{exact}(a,b,f(x))-I(a,b,N,f(x))}{I_{exact}(a,b,f(x))}\right|
\end{equation}
Ces résultats devront être illustrés sous forme de graphique ($E$ en fonction de $N$ en échelle log-log).
Que constatez-vous? Pouvez-vous mesurer le taux de décroissance de l'erreur?
# Convolutions et filtrage
Nous voulons à présent essayer de voir comment utiliser la convolution pour filtrer un signal simple.
## La convolution continue
Le signal que nous souhaitons filtrer est définit par la fonction $s(x)$
\begin{equation}
s(x)=\sin(2\pi\omega_1 x)+\sin(2\pi\omega_2 x).
\end{equation}
La fonction de filtrage que nous allons utiliser est définie par $f(x)$
\begin{equation}
f(x)=\left\{\begin{array}{ll}
\frac{1}{\psi},&\mbox{ si }x\in[-\psi/2,\psi/2]\\
0,&\mbox{ sinon.}
\end{array}\right.
\end{equation}
Afin de se familiariser un peu avec ces deux fonctions, ne pas hésiter à les dessiner
pour différentes valeur de $\omega_1$, $\omega_2$, et $\psi$.
Puis, calculer analytiquement (à la main avec du papier et un crayon[^2]) la convolution $(f\ast s)(x)$.
A partir du résultat de la convolution, déterminer la relation entre $\psi$ et $\omega_1$ (respectivement $\omega_2$)
pour enlever complètement la composante $\omega_1$ (respectivement $\omega_2$) du signal $s(x)$.
Utiliser ces relations pour illustrer le filtrage de $s(x)$ pour différentes valeurs de $\omega_1$ et $\omega_2$.
## La convolution discrète
Utiliser une des méthodes implémentées dans le chapitre précédent pour calculer numériquement
le filtrage de $s(x)$ par la fonction $f(x)$ pour différentes valeurs de $\omega_1$, $\omega_2$ et $\psi$ (essayer par exemple de reproduire
les résultats de la section précédente). Puis, répétez l'opération avec une autre fonction de filtrage
$h(x)$ définie par
\begin{equation}
h(x)=\frac{1}{2\pi\psi}\exp(-x^2/(2\psi)).
\end{equation}
Voyez-vous des différences?
[^1]: Vous retrouverez les formules dans le polycopié.
[^2]: Exceptionnellement un stylo est également toléré.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment