ComeçarComece de graça

Maximização de utilidade

Bill é um estudante de piano iniciante que distribui horas de estudo entre música clássica \(c\) e moderna \(m\). As preferências dele são representadas pela mesma função utilidade que você acabou de plotar:

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

As horas de estudo somam 2 por dia (\(c+m=2\)). Ajude o Bill a encontrar o plano de estudos ideal.

np e minimize já foram carregados para você. Nós já importamos symbols, diff e solve do SymPy, definimos c e m como symbols e definimos a função de utilidade U para você.

Este exercício faz parte do curso

Introdução à Otimização em Python

Ver curso

Instruções do exercício

  • Defina a função utilidade desempacotando vars e retornando a função negada.
  • Defina a função de restrição.
  • Configure a restrição com type e fun.
  • Faça a otimização e extraia os resultados para c e m.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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))
Editar e executar o código