Programmes > Exemple : Recherche de min/max locaux de vecteurs
Exemple : Recherche de min/max locaux de vecteurs
1. Écrivez un programme, en utilisant une combinaison d'instructions conditionnelles et de boucles, afin de déterminer les minima locaux des ensembles de données :
La fonction locmin analyse le vecteur d'entrée v et compare chaque élément avec ses deux voisins. Si l'élément k est plus petit que l'élément qui le précède et plus petit que l'élément qui le suit, alors il s'agit d'un minimum local et sa valeur ainsi que son indice sont ajoutés au vecteur de sortie m.
2. Utilisez le programme ci-dessus pour écrire un deuxième programme permettant de déterminer les maxima du même ensemble de données :
La fonction locmax utilise les résultats reçus lors de l'appel locmin avec -v. Un minimum local de -v est une image miroir d'un maximum local au même indice. Par conséquent, chaque valeur d'un minimum local est multiplié par –1. La paire de valeurs d'indice est enregistrée comme un seul élément dans le vecteur de sortie M.
3. Définissez la fonction f qui utilise la fonction intégrée dbinom qui renvoie la densité de probabilité pour la valeur k :
4. Tracez les deux fonctions ci-dessus :
5. Enregistrez les éléments de g(k,n) dans un tableau afin de pouvoir transmettre celui-ci aux programmes que vous avez définis :
6. Utilisez la fonction length intégrée pour voir combien de points locmin et locmax ont été trouvés par vos programmes :
7. Utilisez vos programmes pour déterminer les trois minima locaux de la fonction :
8. Utilisez vos programmes pour déterminer les deux maxima locaux de la fonction :
9. Tracez la fonction et affichez ses trois minima locaux et ses deux maxima locaux :
10. Comparez les résultats obtenus à l'aide de vos programmes avec ceux obtenus à l'aide des fonctions intégrées localmin et localmax (ce qui nécessite une matrice nx2 en guise d'entrée) :
a. Générez la matrice d'entrée nx2 :
b. Utilisez les fonctions intégrées pour obtenir les minima et maxima locaux :
Les résultats sont concordants.
Vérifiez toujours la disponibilité des fonctions intégrées avant d'écrire de nouveaux programmes.