Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
math_tech_info
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Michaël El Kharroubi
math_tech_info
Commits
d6b21693
Commit
d6b21693
authored
5 years ago
by
orestis.malaspin
Browse files
Options
Downloads
Patches
Plain Diff
ajout tp
parent
c3e9546e
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
tpIntegrales/Makefile
+34
-0
34 additions, 0 deletions
tpIntegrales/Makefile
tpIntegrales/tp_integrales_conv.md
+130
-0
130 additions, 0 deletions
tpIntegrales/tp_integrales_conv.md
with
164 additions
and
0 deletions
tpIntegrales/Makefile
0 → 100644
+
34
−
0
View file @
d6b21693
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
This diff is collapsed.
Click to expand it.
tpIntegrales/tp_integrales_conv.md
0 → 100644
+
130
−
0
View file @
d6b21693
---
# 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
---
\n
ewcommand{
\d
d}{
\m
athrm{d}}
\n
ewcommand{
\r
eal}{
\m
athbb{R}}
\n
ewcommand{
\v
ectwo}[2]{
\b
egin{pmatrix}#1
\\
#2
\e
nd{pmatrix}}
\n
ewcommand{
\v
ecthree}[3]{
\b
egin{pmatrix}#1
\\
#2
\\
#3
\e
nd{pmatrix}}
\n
ewcommand{
\m
at}[1]{
\u
nderline{
\u
nderline{#1}}}
\n
ewcommand{
\m
attwo}[4]{
\b
egin{pmatrix}
#1 & #2
\\
#3 & #4
\e
nd{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
\b
egin{equation}
I(a,b,N,f(x))
\c
ong
\i
nt_a^bf(x)
\d
d x
\e
nd{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
\b
egin{equation}
f(x)=-
\f
rac{2x-1}{
\e
xp(x^2-x+2)},
\e
nd{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
\b
egin{equation}
E(N)=
\l
eft|
\f
rac{I_{exact}(a,b,f(x))-I(a,b,N,f(x))}{I_{exact}(a,b,f(x))}
\r
ight|
\e
nd{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)$
\b
egin{equation}
s(x)=
\s
in(2
\p
i
\o
mega_1 x)+
\s
in(2
\p
i
\o
mega_2 x).
\e
nd{equation}
La fonction de filtrage que nous allons utiliser est définie par $f(x)$
\b
egin{equation}
f(x)=
\l
eft
\{\b
egin{array}{ll}
\f
rac{1}{
\p
si},&
\m
box{ si }x
\i
n[-
\p
si/2,
\p
si/2]
\\
0,&
\m
box{ sinon.}
\e
nd{array}
\r
ight.
\e
nd{equation}
Afin de se familiariser un peu avec ces deux fonctions, ne pas hésiter à les dessiner
pour différentes valeur de $
\o
mega_1$, $
\o
mega_2$, et $
\p
si$.
Puis, calculer analytiquement (à la main avec du papier et un crayon[^2]) la convolution $(f
\a
st s)(x)$.
A partir du résultat de la convolution, déterminer la relation entre $
\p
si$ et $
\o
mega_1$ (respectivement $
\o
mega_2$)
pour enlever complètement la composante $
\o
mega_1$ (respectivement $
\o
mega_2$) du signal $s(x)$.
Utiliser ces relations pour illustrer le filtrage de $s(x)$ pour différentes valeurs de $
\o
mega_1$ et $
\o
mega_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 $
\o
mega_1$, $
\o
mega_2$ et $
\p
si$ (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
\b
egin{equation}
h(x)=
\f
rac{1}{2
\p
i
\p
si}
\e
xp(-x^2/(2
\p
si)).
\e
nd{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
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment