% Pour des DS
% format de la page
% numerotation
% bas de page:
\documentclass[12pt,a4paper]{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amssymb}
\usepackage{amsmath,amsfonts,amssymb}
\setcounter{MaxMatrixCols}{10}
%TCIDATA{OutputFilter=Latex.dll}
%TCIDATA{Version=5.50.0.2890}
%TCIDATA{}
%TCIDATA{BibliographyScheme=Manual}
%TCIDATA{Created=Mon Nov 11 22:48:08 2002}
%TCIDATA{LastRevised=Sunday, January 28, 2007 21:11:03}
%TCIDATA{}
%TCIDATA{Language=French}
%TCIDATA{CSTFile=Pierre.cst}
\RequirePackage{fancyhdr}
\setlength\parindent{0pt}
\setlength\voffset{-2cm}
\setlength\headheight{0cm}
\setlength\headsep{0.1cm}
\setlength\textheight{25cm}
\setlength\hoffset{-2cm}
\setlength\textwidth{18cm}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
\renewcommand{\labelenumii}{\textbf{\theenumii)}}
\lfoot{Corrig\'e TD Pascal ECE2 06-07 }
\cfoot{Pierre Veuillez }
\rfoot{ Page \thepage }
\lhead{ }
\chead{ }
\rhead{ }
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.4pt}
\pagestyle{fancy}
\input{tcilatex}
\begin{document}
\begin{center}
{\Huge Corrig\'{e} PASCAL}
\end{center}
\section{Suites r\'{e}currentes}
\subsection{ESC 2006 (IAF)}
On veut $0\leqslant u_{k}-\alpha _{2}\leqslant \varepsilon $.
On peut l'obtenir par $0\leqslant u_{k}-\alpha _{2}\leqslant \left( \frac{1}{%
e}\right) ^{k}\leqslant \varepsilon $
On r\'{e}sout cette derni\`{e}re condition :.
$\left( \frac{1}{e}\right) ^{k}\leqslant \varepsilon \Longleftrightarrow
k\ge -\ln \left( \varepsilon \right) $ ce qui est v\'{e}rifi\'{e} pour le
premier entier plus grna d que $-\ln \left( \varepsilon \right) $ \`{a}
savoir sa partie enti\`{e}re $+1,$ le $N$ du programme.
Il y a donc simplement \`{a} calculer de $u_{1}$ \`{a} $u_{N}$
\texttt{\hspace{1cm}for k := 1 to N do u:=exp(u)-2 ;}
\subsection{ECRICOME 2006 (IAF)}
On consid\`{e}re la fonction $f$ d\'{e}finie pour tout r\'{e}el $x$ par : $%
.f\left( x\right) =x+1+2e^{x}$
Donc $f^{\prime }\left( x\right) =1+2e^{x}.$
On peut, soit r\'{e}soudre $\dfrac{1}{e^{2^{n}-1}}\leqslant
10^{-p}\Longleftrightarrow n\geqslant N$ et calculer les termes de $1$ \`{a}
$N$
soit calculer $10^{-p}$ puis $u_{n}$ et $\dfrac{1}{e^{2^{n}-1}}$ jusqu'\`{a}
ce que ce dernier soit $\leqslant 10^{-p}$ :
\texttt{writelen('p?');readln(p);}
\texttt{dix:=1;for i:=1 to p do dix:=dix*10; eps:=1/dix; \{ calcul 10
\symbol{94}p \}}
\texttt{pn:=1;u:=-1; \{pn contient 2\symbol{94}n \}}
\texttt{repeat }
\hspace{1cm}\texttt{u:=u+(u+1+2*exp(u))/(1+2*exp(u));}
\hspace{1cm}\texttt{pn:=pn*2;}
\texttt{until exp(1-pn)\TEXTsymbol{<}=eps; \{\'{e}vite de calculer un
inverse \}}
\texttt{writeln(u);}
\subsection{ECRICOME 2003 (\'{e}l\'{e}mentaire)}
Pour calculer $u_{10}$ on affecte \`{a} une m\^{e}me variable \texttt{u }les
valeurs successives de $u_{0}$ \`{a} $u_{10}.$
Il faut donc calculer les valeurs suivantes de $u_{1}$ \`{a} $u_{10}:$
on a $f\left( u_{n}\right) =\displaystyle
\frac{u_{n}}{sh\left( u_{n}\right) }=\frac{2u_{n}}{e^{u_{n}}-e^{-u_{n}}}$
\texttt{program suite;}
\texttt{var u:real;n:integer;}
\texttt{begin}
\hspace{1cm}\texttt{u:=1;}
\hspace{1cm}\texttt{for n:=1 to 10 do u:=2*u/(exp(u)-exp(-u));}
\hspace{1cm}\texttt{writeln(u)}
\texttt{end.}
\subsection{EML 2002 (Dichotomie)}
$x_{2}$ est solution de $P_{2}\left( x\right) =0.$
Pour raccourcir les calculs que $P_{2}\left( x\right)
=-x+x^{2}/2-x^{3}/3+x^{4}/4=x\left[ -1+x\left( 1/2+x\left[ -1/3+x/4\right]
\right) \right] $
On programme la m\'{e}thode de dichotomie pour programmer le calcul de $%
x_{2} $ \`{a} $10^{-3}$ pr\`{e}s.
$x_{2}$ est dans l'intervalle $\left[ 0,1\right] .$
Pour tout entier $n,$
Si $x_{2}$ est dans l'intervalle $\left[ a_{n},b_{n}\right] ,$ soit $c_{n}$
le millieu : $c_{n}=\frac{a_{n}+b_{n}}{2n}.$
Si $P_{2}\left( c_{n}\right) $ est du m\^{e}me signe que $P_{n}\left(
a_{n}\right) >0$ alors ils sont tout deux du m\^{e}me c\^{o}t\'{e} de $x_{2}$
et celui ci se trouve donc dans $\left[ c_{n},b_{n}\right] $ d'o\`{u} le
nouvel encadrement avec $a_{n+1}=c_{n}$ et $b_{n+1}=b_{n}$ et sinon, oil est
dans l'ntervalle $\left[ a_{,},c_{n}\right] $
\texttt{program approche;n}
\texttt{var a,b,c:real;}
\texttt{function p(x:real):real;}
\texttt{begin}
\texttt{\hspace{1cm}p:=x*(-1+x(1/2+x(-1/3+x/4)));}
\texttt{end;}
\texttt{begin}
\texttt{\hspace{1cm}a:=0;b:=1;}
\texttt{\hspace{1cm}repeat}
\texttt{\hspace{1cm}\hspace{1cm}c:=(a+b)/2}
\texttt{\hspace{1cm}\hspace{1cm}if p(c)\TEXTsymbol{>}0 then b:=c else a:=c;}
\texttt{\hspace{1cm}until b-a\TEXTsymbol{<}=1E-3;}
\texttt{\hspace{1cm}writeln(b);}
\texttt{end.}
\subsection{ESCP 2000 (r\'{e}currence \`{a} 2 termes)}
On a besoin des deux termes pr\'{e}c\'{e}dents pour calculer le suivant.
\texttt{vs} pour le suivant \texttt{vp} le pr\'{e}c\'{e}dent et \texttt{vpp}
le pr\'{e}c\'{e}dent du pr\'{e}c\'{e}dent.
\textbf{Attention \`{a} l'ordre des affectation !} \texttt{%
vs:=sqrt(vp)+sqrt(vpp);vpp:=vp;vp:=vs;}
l'ancien suivant est le nouveau pr\'{e}c\'{e}dent. l'ancien pr\'{e}c\'{e}%
dent est le nouveau pr\'{e}c\'{e}dent du pr\'{e}c\'{e}dent.
Si on fait \texttt{vs:=sqrt(vp)+sqrt(vpp);vp:=vs;vpp:=vp; }lors de cette
affectation, \texttt{vp} ne contient plus le pr\'{e}c\'{e}dent !
\begin{tabular}{|l|l|l|l|}
\hline
$k$ & $v_{k+2}$ & $v_{k+1}$ & $v_{k}$ \\ \hline
$n$ & $v_{n+2}$ & $v_{n+1}$ & $v_{n}$ \\ \hline
$n+1$ & & $v_{n+2}$ & $v_{n+1}$ \\ \hline
\end{tabular}
On a \`{a} calculer les termes de $v_{2}$ \`{a} $v_{N}$
\texttt{Program Suite;}
\texttt{var vp,vpp,vs:real;i,N:integer;}
\texttt{begin}
\texttt{writeln('v0 et v1 ?');readln(vpp,vp);}
\texttt{writeln('N?');readln(N);}
\texttt{for i:=2 to N do }
\texttt{begin}
\texttt{\hspace{1cm}vs:=sqrt(vp)+sqrt(vpp);}
\texttt{\hspace{1cm}vpp:=vp;vp:=vs;}
\texttt{\hspace{1cm}writeln(vs);}
\texttt{end;}
\texttt{end.}
\subsection{EDHEC 1999 (r\'{e}currence \`{a} 2 termes)}
$a_{1}=1$ et $b_{1}=1$
(...) On montrera que : $\forall n\in \mathbb{N}^{*},a_{n+1}=\dfrac{a_{n}}{%
n+1}-\dfrac{b_{n}}{\left( n+1\right) ^{2}}$ et $b_{n+1}=\dfrac{b_{n}}{n+1}%
\smallskip $
On a besoin des valeurs pr\'{e}c\'{e}dentes de $a_{n}$ et de $b_{n}$ pour
calculer les suivantes.
\texttt{ap} et \texttt{bp} pour $a_{n}$ et $b_{n};$ \texttt{as} et \texttt{bs%
} pour $a_{n+1}$ et $b_{n+1}.$
On a aussi besoin de l'indice pr\'{e}c\'{e}dent ('$n$').
Donc on calcul pour les indices pr\'{e}c\'{e}dents de $1$\`{a} $N-1$
\texttt{Program Suite;}
\texttt{var ap,bp,as,bs:real;i,N:integer;}
\texttt{begin}
\texttt{writeln('N?');readln(N);}
\texttt{ap:=1;bp:=1;}
$\mathtt{writeln(ap,bp);}$
\texttt{for i:=1 to N-1 do }
\texttt{begin}
\texttt{\hspace{1cm}as:=ap/(i+1)-bp/sqrt(i+1);}
\hspace{1cm}\texttt{bs:=bp/(i+1);}
\texttt{\hspace{1cm}ap:=as;bp:=bs;}
\texttt{\hspace{1cm}writeln(ap,bp);}
\texttt{end;}
\texttt{end.}
\section{Sommes (Accumulateurs)}
\subsection{EDHEC 2006 (r\'{e}cursive)}
\begin{enumerate}
\item On recopie la d\'{e}finitino r\'{e}currcive de la factorielle : $0!=1$
et pour tout $n\ge 1:n!=n\cdot \left( n-1\right) !$
{\texttt{Function f(n : integer) : integer;\newline
Begin \newline
If (n=0) then f:=1;\newline
\hspace{1cm}else f: =f(n-1)*n;\newline
end;}}\medskip
Compl\'{e}ter cette d\'{e}claration pour qu'elle renvoie $n!$ lorsqu'on
appelle $f(n)$.
\item On consid\`{e}re la d\'{e}claration de fonction r\'{e}cursive suivante
: \medskip
{\texttt{Function g (a:real ; n:integer):real;\newline
Begin\newline
If (n=0) then g: = 1\newline
\hspace{1cm}else g: = a * g(a,n- 1);\newline
end ;}}\medskip
On a pour tout $n\ge 1:g(a,n)=a\cdot g\left( a,n-1\right) $ suite g\'{e}om%
\'{e}trique donc $g\left( a,n\right) =1\cdot a^{n}$
\item Proposer un programme (sans \'{e}crire la partie d\'{e}clarative)
utilisant ces deux fonctions et permettant d'une part le calcul de la somme $%
\sum\limits_{k=0}^{n-1}\dfrac{a^{k}}{k!}e^{-a}$
\texttt{begin}
\texttt{writelen('n?');readln(n);}
\texttt{S:=0;}
\texttt{for i:=0 to n-1 do S:=S+g(a,i)/f(i);}
\texttt{S:=S*exp(-a); \{on ne fait qu'une seule fois le produit, \`{a} la
fin\}}
\texttt{writeln(S);}
\texttt{end.}
\item Compl\'{e}ter la d\'{e}claration de fonction suivante pour, qu'elle
renvoie la valeur de $\sum\limits_{k=0}^{n-1}\dfrac{a^{k}}{k!}e^{-a}$ \`{a}
l'appel de \textit{sigma(a,n)}. \medskip
{\texttt{Function sigma(a : real ; n : integer) : real;\newline
var k : integer;\newline
\hspace{1cm}p: real;\newline
Begin\newline
\hspace{1cm}p : = 1 ; s:=1;\newline
\hspace{1cm}For k: = 1 to n-1 do begin p := p*a / k; s:=s+p end;\newline
\hspace{1cm}s:= s*exp(-a);\newline
\hspace{1cm}sigma: = s;\newline
end;}}
\end{enumerate}
\textbf{N.B. }cette m\'{e}thode est beaucoup plus \'{e}conome en calculs. La
premi\`{e}re reprend \`{a} 0 le calcul de la puissance et de la factorielle
\`{a} chaque terme de la somme.
La seconde utilise le fait que $\displaystyle
\frac{a^{k}}{k!}=\frac{a^{k-1}}{\left( k-1\right) !}\cdot \frac{a}{k}$ qui
ne demande qu'un produit et un quotient pour d\'{e}terminer le terme suivant
\`{a} ajouter.
\newpage
\section{PASCAL Probabilit\'{e}s}
\subsubsection*{Compl\'{e}ment}
On simule les \'{e}v\'{e}nements par des \'{e}v\'{e}nements \texttt{%
r:=random; (a\TEXTsymbol{<}r and r\TEXTsymbol{<}b)} de m\^{e}me propri\'{e}t%
\'{e}s : probabilit\'{e} \texttt{a-b,} incompatibilit\'{e} ...
Randomize ne doit \^{e}tre utilis\'{e} qu'une seule fois, en d\'{e}but de
programme.
\subsection{D'apr\`{e}s EML 2004}
Une urne contient des boules blanches, des boules rouges et des boules
vertes.
\begin{itemize}
\item La proportion de boules blanches est $b$.
\item La proportion de boules rouges est $r$.
\item La proportion de boules vertes est $v$.
\end{itemize}
Ainsi, on a.: $0}12;}
Le nombre de lancers avant de d\'{e}passer 12 est alors un de moins d'o\`{u}
le \texttt{writeln(T=',t-1);}
\texttt{Program ESSEC2003A;}
\texttt{var x,y,t:integer;}
\texttt{begin}
\hspace{1cm}\texttt{randomize;}
\hspace{1cm}\texttt{y:=0;t:=0;}
\hspace{1cm}\texttt{repeat}
\hspace{1cm}\hspace{1cm}\texttt{x:=random(6)+1; }
\hspace{1cm}\hspace{1cm}\texttt{y:=y+x;}
\hspace{1cm}\hspace{1cm}\texttt{t:=t+1;}
\hspace{1cm}\texttt{until t\TEXTsymbol{>}12;}
\hspace{1cm}\texttt{writeln(T=',t-1);}
\texttt{end.}
\end{enumerate}
\subsection{ESSEC 2003}
\begin{enumerate}
\item On se propose de simuler informatiquement une variable al\'{e}atoire.
On supposera que random(3) fournit au hasard un nombre \'{e}l\'{e}ment de $%
\{1,2,3\}$ et que random(2) fournit au hasard un \'{e}l\'{e}ment de $%
\{1,2\}. $
N.B. ce n'est pas la norme de de PASCAL !!!
\texttt{program ESSEC2003 \newline
var ini,y : integer\newline
begin\newline
ini:=random(3);\newline
if ini=3 then y:=random(2) else y:=3 ;\newline
end. }
Si \texttt{ini=3} $Y=1$ et $Y=2$ sont \'{e}quiprobables. Donc $\mathrm{P}%
_{ini=3}\left( Y=1\right) =\mathrm{P}_{ini=3}\left( Y=2\right) =\frac{1}{2}$
et $\mathrm{P}_{ini=3}\left( Y=3\right) =0$
Sinon, $Y=3,$ donc $\mathrm{P}_{ini\neq 3}\left( Y=3\right) =1$ et $\mathrm{P%
}_{ini\neq 3}\left( Y=1\right) =\mathrm{P}_{ini\neq 3}\left( Y=2\right) =0$
Donc (par les proabilit\'{e}s totales ou par d\'{e}composition de l'\'{e}v%
\'{e}nement) la loi de $Y$ est :
$Y\left( \Omega \right) =\left\{ 1,2,3\right\} $ et $\mathrm{P}\left(
Y=3\right) =\frac{2}{3}$ et $\mathrm{P}\left( Y=1\right) =\mathrm{P}\left(
Y=2\right) =\frac{1}{6}$
et $E\left( Y\right) =\frac{1}{6}+\frac{2}{6}+\frac{3\cdot 2}{3}=\allowbreak
\frac{5}{2}$
\end{enumerate}
\end{document}