MulaiMulai sekarang secara gratis

Temukan optimum global

Anda diberikan masalah maksimisasi laba berikut dan diminta menemukan maksimum globalnya.

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) adalah batas bawah natural untuk kuantitas dan Anda mengamati bahwa pada \(q=30\) laba bernilai negatif, sehingga \(30\) adalah kandidat yang baik untuk batas atas.

Temukan optimum global untuk masalah ini.

basinhopping telah diimpor untuk Anda.

Latihan ini adalah bagian dari kursus

Pengantar Optimasi di Python

Lihat Kursus

Petunjuk latihan

  • Definisikan kamus kwargs untuk keyword arguments, dengan batas \(0\) dan \(30\).
  • Jalankan basinhopping, dengan objektif sebagai negatif dari profit dan tebakan awal x0 diteruskan ke minimizer melalui kwargs.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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")
Edit dan Jalankan Kode