Source Latex: TP de mathématiques en Algorithmique: Terminale, BTS, Post-Bac


Fichier
Type: TP
File type: Latex, tex (source)
Télécharger le document pdf compilé pdficon
Description
TP Matlab - Méthode de Monté Carlo - Exemple de méthode stochastique pour le calcul d'aires et d'intégrales
Niveau
Algorithmique: Terminale, BTS, Post-Bac
Table des matières
  • Approximation de π
    • Principe de la méthode Monté Carlo et aire d'un disque
  • Calcul d'intégral
  • Evaluation de la fonction d'erreur
Mots clé
Matlab, programmation, calcul d'aire, Monté Carlo, méthode stochastique, cacul numérique d'intégrale
Voir aussi:

Documentation sur LaTeX
lien vers la documentation Latex
Source LaTex icone

Source Latex

\documentclass[12pt]{article}
%\usepackage{french}
\usepackage[french]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
\usepackage{graphicx}
\usepackage{epsf}
\usepackage{pst-all}
\usepackage{ifthen}
\usepackage{calc}
\usepackage{pst-all}

\usepackage{hyperref}
\hypersetup{
    pdfauthor={Yoann Morel},
    pdfsubject={Matlab},
    pdftitle={Initiation et travaux pratiques en Matlab},
    pdfkeywords={Monté Carlo, intégrale, aire, aléatoire,
      stochastique, Matlab, simulation, programmation, 
      modélisation, mathématiques}
}
\hypersetup{
    colorlinks = true,
    linkcolor = red,
    anchorcolor = red,
    citecolor = blue,
    filecolor = red,
    urlcolor = red
}
\voffset=-1cm
% Raccourcis diverses:
\newcommand{\nwc}{\newcommand}
\nwc{\dsp}{\displaystyle}
\nwc{\bge}{\begin{equation}}\nwc{\ene}{\end{equation}}
\nwc{\bgar}{\begin{array}}\nwc{\enar}{\end{array}}
\nwc{\bgit}{\begin{itemize}}\nwc{\enit}{\end{itemize}}
\nwc{\bgmp}{\begin{minipage}}\nwc{\enmp}{\end{minipage}}

\nwc{\ct}{\centerline}
\nwc{\V}[1]{\overrightarrow{#1}}


\nwc{\la}{\left\{}\nwc{\ra}{\right\}}
\nwc{\lp}{\left(}\nwc{\rp}{\right)}
\nwc{\lb}{\left[}\nwc{\rb}{\right]}

\nwc{\bgsk}{\bigskip}
\nwc{\vsp}{\vspace{0.1cm}}
\nwc{\vspd}{\vspace{0.2cm}}
\nwc{\vspt}{\vspace{0.3cm}}
\nwc{\vspq}{\vspace{0.4cm}}


\newcounter{ntp}%[section]
\setcounter{ntp}{1}
\newenvironment{TP}[1]{%
\setcounter{equation}{0}\setcounter{subsection}{0}
\section*{ \underline{TP \arabic{ntp} :} #1}
\addcontentsline{toc}{section}{\underline{TP \arabic{ntp} :}\ #1}
\stepcounter{ntp}}{}

\nwc{\bgTP}{\begin{TP}}\nwc{\enTP}{\end{TP}}


\def\N{{\rm I\kern-.1567em N}}                              % Doppel-N
\def\No{\N_0}                                               % Doppel-N unten 0
\def\R{{\rm I\kern-.1567em R}}                              % Doppel R
\def\C{{\rm C\kern-4.7pt                                    % Doppel C
\vrule height 7.7pt width 0.4pt depth -0.5pt \phantom {.}}}
\def\Z{{\sf Z\kern-4.5pt Z}}                                % Doppel Z

% grec et autres
\nwc{\lbd}{\lambda}
\nwc{\vphi}{\varphi}
\nwc{\ga}{\gamma}
\def\epsi{\varepsilon}
\def\tht{\theta}

\nwc{\tm}{\times}

\nwc{\ul}{\underline}
\nwc{\scp}[1]{\scriptsize{#1}}

\author{Y. Morel}
\date{}

\headheight=0cm
\textheight=26cm
\topmargin=-1.8cm
\footskip=.8cm
\textwidth=17.6cm
\oddsidemargin=-1.cm
%\parindent=0.2cm

\usepackage{fancyhdr}

\newenvironment{centerpage}{\vspace*{\fill}}{
	\protect\vspace*{\fill}}

\begin{document}


\pagestyle{fancyplain}
\setlength{\headheight}{0cm}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.1pt}
\lhead{}\chead{}\rhead{}

\lfoot{Y. Morel - \url{https://xymaths.fr/Matlab/}}
\rfoot{Méthode de Monté Carlo - \thepage/\pageref{LastPage}}
\cfoot{}

\vspace*{1cm}

\nwc{\TPtop}{}
\newlength{\lgr}
\newlength{\TPtopLarge}
\newlength{\EXX}
\newlength{\Tlgr}
\newlength{\TopHeight}
\newlength{\TopTitleHeight}

\newcommand{\ChapTitle}[3]{
  \renewcommand{\TPtop}{{\LARGE\bf #1} {\Huge\bf#2}}
  \settowidth{\lgr}{\LARGE\bf #1}
  \settowidth{\TPtopLarge}{\TPtop}
  \settoheight{\EXX}{\LARGE X}
  \settowidth{\Tlgr}{\LARGE T}
  \setlength{\Tlgr}{0.5\Tlgr}
  \settototalheight{\TopHeight}{\fbox{\bgmp{\linewidth}\begin{center}{\LARGE\bf#3}\end{center}\enmp}}
  %%
  \noindent
  \bgmp{\linewidth}
  \psline(\lgr,\EXX)(1.1\lgr,\EXX)
  \psline(\TPtopLarge,\EXX)(\linewidth,\EXX)%
  (\linewidth,-1.\TopHeight)(\Tlgr,-1.\TopHeight)%
  (\Tlgr,-0.05)
  \TPtop
  \vspace{-0.5\EXX}
  \begin{center}
    {\LARGE\bf#3}
  \end{center}
  \enmp%
  \vspace{0.5cm}
}

\setcounter{ntp}{4}
%\input{TP_Monte_Carlo} 
%\bgTP{Méthode de Monté Carlo}
\section*{}
\ChapTitle{TP}{\thentp}{Méthode de Monté Carlo}
\addcontentsline{toc}{section}{TP \arabic{ntp} : Méthode de Monté Carlo}

\section*{Approximation de $\pi$}
\addcontentsline{toc}{section}{Approximation de $\pi$}

La méthode de Monté Carlo est une méthode probabiliste de calcul 
d'intégrale. 
Nous allons nous en servir dans ce TP pour approximer le nombre
$\pi$ (aire d'un cercle de rayon~1).

\vsp
On considère un disque de rayon 1 centré à l'origine, inscrit dans un
carré de côté 2.  

La méthode de Monté Carlo consiste à tirer $N$ points du plan, 
aléatoirement (fonction Matlab \verb+rand+), situés dans le carré. 

En probabilité, le ratio du nombre de points situés dans le disque 
sur le nombre total de points tend, lorsque $N$ devient grand vers le 
ratio aire du disque sur aire du carré, soit $\pi/4$. 


\bgsk
\bgit
\item[1-] A quelle condition un point de coordonnées $(x;y)$ est-il situé
  dans le carré ? dans le disque ?

  \vspd
\item[2-] Ecrire une fonction Matlab {\it MonteCarlo} qui prend un
  seul paramètre $N$ en argument, et qui, après avoir générer $N$
  points aléatoirement dans le carré, retourne le ratio souhaité
  (i.e. nombre de points dans le disque divisé par le nombre de points
  total dans la carré).  
  
  \vspd
  Vérifier que l'on obtient bien une approximation de $\pi$.

  \vspd
\item[3-] Ecrire un script Matlab qui trace en fonction du nombre 
  total de points $N$, la valeur approchée de $\pi$ trouvée. 
  
  Tracer l'erreur, en fonction de $N$, entre l'approximation calculée 
  par la méthode de Monté Carlo et la valeur exacte de $\pi$ (donnée 
  par Matlab). 

  Commenter. 

\enit


\section*{Calcul de l'intégrale d'une fonction quelconque}
\addcontentsline{toc}{section}{Calcul de l'intégrale d'une fonction}

Plus généralement, la méthode de Monté Carlo est une méthode
stochastique de calcul d'intégrale. 

\vspd
On cherche à déterminer la valeur de l'intégrale 
$\dsp I=\int_0^1 f(x)\,dx$, où $f$ est une fonction connue mais dont
l'intégrale peut-être très difficilement calculable. 

On pourra prendre pour commencer la fonction simple $f(x)=x^2$, pour
laquelle on calcule facilement $\dsp I=\frac{1}{3}$. 

\vspd
Dans la suite, on note $\dsp M=\sup_{x\in[0,1]} f(x)$ 
\ ($M=1$ pour la fonction carré).


\vspt
Ecrire une fonction Matlab {\it Montecarlo\_Int} qui fournit, en
fonction du nombre de points $N$ souhaités, le ration $\dsp N/n$ où
$n$ est le nombre de points, parmi les $N$, qui sont sous la courbe
représentative de $f$. 

\vspt
Que vaut la limite de ce ratio lorsque $N$ devient grand ? 

\[ \lim_{N\to\infty} \frac{N}{n} = \ \dots \ 
\]

Calculer alors une valeur approchée de $I$. 

\bigskip

\section*{Evaluation de la fonction d'erreur}
\addcontentsline{toc}{section}{Fonction d'erreur}

Utiliser cette méthode pour déterminer numériquement, puis représenter
graphiquement, la fonction d'erreur: 
\[ \mbox{erf}(x)=\int_0^x e^{-t^2}\,dt
\]

\label{LastPage}
\end{document}

Télécharger le fichier source Latex