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
Petunjuk latihan
- Definisikan kamus
kwargsuntuk keyword arguments, dengan batas \(0\) dan \(30\). - Jalankan
basinhopping, dengan objektif sebagai negatif dariprofitdan tebakan awalx0diteruskan keminimizermelaluikwargs.
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")