НачатьНачать бесплатно

Максимизация полезности

Билл — начинающий пианист, который распределяет часы занятий между классической \(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))
Редактировать и запускать код