Vidéo: Trouver le minimum ou le maximum d'une fonction : 3 méthodes 2025
Un très grand corps de mathématiques vise à résoudre des problèmes d'optimisation de toutes sortes. Dans R, la fonction optimize () fournit un mécanisme assez simple pour optimiser les fonctions.
Imaginez que vous êtes le directeur des ventes d'une entreprise et que vous devez définir le meilleur prix pour votre produit. En d'autres termes, trouvez le prix d'un produit qui maximise les revenus.
En économie, un simple modèle de prix stipule que les gens achètent moins d'un produit donné lorsque le prix augmente. Voici une fonction très simple qui a ce comportement:
Le revenu attendu est alors simplement le produit du prix et des ventes attendues: >> revenus <- fonction (prix) {prix * ventes (prix)}
Vous pouvez utiliser la fonction courbe () pour tracer des fonctions continues. Cela prend une fonction en entrée et produit un tracé. Essayez de tracer le comportement des ventes et des revenus en utilisant la fonction curve (), en variant le prix de 50 $ à 150 $:
par (mfrow = c (1, 2))> courbe (ventes, de = 50, à = 150, xname = "prix", ylab = "Ventes", main = "Ventes ")> courbe (revenu, de = 50, à = 150, xname =" prix ", ylab =" Revenu ", main =" Revenu ")> par (mfrow = c (1, 1))
Vous avez un modèle de travail des ventes et des revenus. Vous pouvez voir immédiatement qu'il y a un point de revenu maximum. Ensuite, utilisez la fonction R optimize () pour trouver la valeur de ce maximum.Pour utiliser optimize (), vous devez lui indiquer quelle fonction utiliser (dans ce cas, revenue ()), ainsi que l'intervalle (dans ce cas, les prix entre 50 et 150). Par défaut, optimize () recherche une valeur minimale, dans ce cas, vous devez lui indiquer de rechercher la valeur maximale: >> optimize (revenue, intervalle = c (50, 150), maximum = TRUE) $ maximum [1] 100 $ objectif [1] 5000
Et voilà. Charge un prix de 100 $, et s'attendre à obtenir 5 000 $ de revenus.La fonction R optimize () utilise une combinaison de recherche de section dorée et d'interpolation parabolique successive. Heureusement, un grand nombre de paquets fournissent différents algorithmes pour résoudre les problèmes d'optimisation. En fait, il existe une vue des tâches spéciales sur CRAN pour l'optimisation et la programmation mathématique.