4
Écrire une fonction Phi
servant à calculer la fonction de répartition d’une loi normale centrée réduite, soit
\[ \Phi(x) = \int_{-\infty}^{x} \frac{1}{\sqrt{2\pi}} e^{-y^2/2} \, dy, \quad -\infty < x < \infty. \]
Supposer, pour le moment, que \(x \geq 0\). L’évaluation numérique de l’intégrale ci-dessus peut se faire avec l’identité
\[ \Phi(x) = \frac{1}{2} + \phi(x) \sum_{n=0}^{\infty} \frac{x^{2n+1}}{1 \cdot 3 \cdot 5 \cdots (2n+1)}, \quad x \geq 0. \]
Utiliser la fonction phi
de l'exercice 5.3 et tronquer la somme infinie à une grande valeur, 50 par exemple. La fonction ne doit pas utiliser de boucles, mais peut ne prendre qu’une seule valeur de x
à la fois. Comparer les résultats avec ceux de la fonction pnorm
.
5
Modifier la fonction Phi
de l'exercice 5.4 afin qu’elle admette des valeurs de \(x\) négatives. Lorsque \(x < 0\), \(\Phi(x) = 1 - \Phi(-x)\). La solution simple consiste à utiliser une structure de contrôle if ... else
, mais les curieux chercheront à s’en passer.
7
Sans utiliser l’opérateur %*%
, écrire une fonction prod.mat
qui effectuera le produit matriciel de deux matrices seulement si les dimensions de celles-ci le permettent. Cette fonction devra avoir deux arguments (mat1
et mat2
) et devra tout d’abord vérifier si le produit matriciel est possible. Si celui-ci est impossible, la fonction retournera un message d’erreur.
Utiliser une structure de contrôle if ... else
et deux boucles.
Utiliser une structure de contrôle if ... else
et une seule boucle. Dans chaque cas, comparer le résultat avec l’opérateur %*%
.