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
Petunjuk latihan
- Definisikan fungsi utilitas dengan membuka
varsdan mengembalikan fungsi yang dinegatifkan. - Definisikan fungsi kendala.
- Atur kendala dengan
typedanfun. - Lakukan optimisasi dan ekstrak hasil untuk
cdanm.
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))