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