开始使用免费开始使用

效用最大化

Bill 是一名正在努力学习钢琴的学生,他将每天的学习时间分配给古典乐 c 和现代乐 m。他的偏好由您刚刚绘制过的同一个效用函数表示:

$U(c, m)=c^{0.7}m^{0.3}$。

每天的学习时间总计为 2($c+m=2$)。请帮助 Bill 找到最优的学习计划。

npminimize 已为您加载。我们已经从 SymPy 导入了 symbolsdiffsolve,并将 cm 定义为 symbols,同时也为您定义好了效用函数 U

本练习是课程的一部分

Python 优化入门

查看课程

练习说明

  • 通过解包 vars 并返回取负后的函数来定义效用函数。
  • 定义约束函数。
  • 使用 typefun 设置约束。
  • 执行优化,并提取 cm 的结果。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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))
编辑并运行代码