Vind het globale optimum
Je hebt het volgende winstmaximalisatieprobleem gekregen en je taak is om het globale maximum te vinden.
\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)
\(0\) is een natuurlijke ondergrens voor de hoeveelheid en je hebt gezien dat bij \(q=30\) de winst negatief is, dus \(30\) is een goede kandidaat voor de bovengrens.
Vind het globale optimum voor dit probleem.
basinhopping is al voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Introductie tot optimalisatie in Python
Oefeninstructies
- Definieer de dictionary
kwargsmet keyword-argumenten, met grenzen \(0\) en \(30\). - Voer
basinhoppinguit, met de doelstelling als het negatieve vanprofiten de beginwaardex0doorgegeven aan deminimizerviakwargs.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
def profit(q):
return -q**4 / 4 + 11 * q**3 - 160 * q**2 + 900 * q
x0 = 0
# Define the keyword arguments for bounds
kwargs = {"bounds": [(____, ____)]}
# Run basinhopping to find the optimal quantity
result = basinhopping(____ q: -profit(q), ____, ____=kwargs)
print(f"{result.message}")
print(f"The maximum according to basinhopping(x0={x0}) is at {result.x[0]:.2f}\n")