CommencerCommencer gratuitement

Maximisation de l’utilité

Bill est un élève pianiste débutant qui répartit ses heures d’étude entre la musique classique \(c\) et la musique moderne \(m\). Ses préférences sont représentées par la même fonction d’utilité que vous venez de tracer :

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

Le total des heures d’étude est de 2 par jour (\(c+m=2\)). Aidez Bill à trouver le plan d’étude optimal.

np et minimize ont été chargés pour vous. Nous avons déjà importé symbols, diff et solve depuis SymPy, défini c et m comme des symbols et défini la fonction d’utilité U pour vous.

Cet exercice fait partie du cours

Introduction à l’optimisation en Python

Afficher le cours

Instructions

  • Définissez la fonction d’utilité en décompressant vars et en renvoyant la fonction négative.
  • Définissez la fonction de contrainte.
  • Configurez la contrainte avec type et fun.
  • Effectuez l’optimisation et extrayez les résultats pour c et m.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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))
Modifier et exécuter le code