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 merupakan bagian dari kursus
Pengantar Optimasi di Python
Instruksi latihan
- Definisikan kamus
kwargsuntuk keyword arguments, dengan batas \(0\) dan \(30\). - Jalankan
basinhopping, dengan objektif sebagai negatif dariprofitdan tebakan awalx0diteruskan keminimizermelaluikwargs.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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")