ПочатиПочніть безкоштовно

Максимізація корисності

Біл — початківецъ на фортепіано, який розподіляє години занять між класичною музикою \(c\) та сучасною музикою \(m\). Його вподобання описує та сама функція корисності, яку ви щойно побудували:

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

Кількість годин занять щодня дорівнює 2 (\(c+m=2\)). Допоможіть Біллу знайти оптимальний план навчання.

np і minimize уже завантажено для вас. Ми вже імпортували symbols, diff і solve із SymPy, визначили c та m як symbols і створили функцію корисності U для вас.

Ця вправа є частиною курсу

Вступ до оптимізації в Python

Переглянути курс

Інструкції до вправи

  • Визначте функцію корисності, розпакувавши vars і повернувши від'ємне значення цієї функції.
  • Визначте функцію обмеження.
  • Налаштуйте обмеження за допомогою type і fun.
  • Виконайте оптимізацію та отримайте результати для c і m.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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))
Редагувати та запускати код