Hitta det globala optimumet
Du har fått följande vinstmaximeringsproblem och ska hitta det globala maximumet.
\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)
\(0\) är en naturlig undre gräns för kvantiteten, och du har observerat att vinsten är negativ vid \(q=30\), vilket gör \(30\) till en lämplig övre gräns.
Hitta det globala optimumet för det här problemet.
basinhopping har redan importerats åt dig.
Den här övningen är en del av kursen
Introduktion till optimering i Python
Övningsinstruktioner
- Definiera ordboken
kwargsmed nyckelordargument och gränserna \(0\) och \(30\). - Kör
basinhoppingmed målfunktionen som negativ avprofitoch startgissningenx0skickad till minimeraren viakwargs.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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")