MulaiMulai sekarang secara gratis

Maksimisasi utilitas

Bill adalah siswa piano pemula yang membagi jam belajar antara musik klasik \(c\) dan modern \(m\). Preferensinya direpresentasikan oleh fungsi utilitas yang sama seperti yang baru saja Anda plot:

\(U(c, m)=c^{0.7}m^{0.3}\).

Total jam belajar per hari adalah 2 (\(c+m=2\)). Bantu Bill menemukan rencana belajar yang optimal.

np dan minimize telah dimuat untuk Anda. Kami sudah mengimpor symbols, diff, dan solve dari SymPy, mendefinisikan c dan m sebagai symbols, serta mendefinisikan fungsi Utilitas U untuk Anda.

Latihan ini adalah bagian dari kursus

Pengantar Optimasi di Python

Lihat Kursus

Petunjuk latihan

  • Definisikan fungsi utilitas dengan membuka vars dan mengembalikan fungsi yang dinegatifkan.
  • Definisikan fungsi kendala.
  • Atur kendala dengan type dan fun.
  • Lakukan optimisasi dan ekstrak hasil untuk c dan m.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Define the utility function
def utility_function(vars):
    ____
    return ____

# Define the constraint function
def constraint(vars):
    return ____

initial_guess = [12, 12]  

# Set up the constraint
constraint_definition = {____}

# Perform optimization
result = ____
____ = result.____

print("Optimal study hours for classical music:", round(c, 2))
print("Optimal study hours for modern music:", round(m, 2))
Edit dan Jalankan Kode