Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Definiera ordboken kwargs med nyckelordargument och gränserna \(0\) och \(30\).
  • Kör basinhopping med målfunktionen som negativ av profit och startgissningen x0 skickad till minimeraren via kwargs.

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")
Redigera och kör kod