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
Instructions
- Définissez la fonction d’utilité en décompressant
varset en renvoyant la fonction négative. - Définissez la fonction de contrainte.
- Configurez la contrainte avec
typeetfun. - Effectuez l’optimisation et extrayez les résultats pour
cetm.
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))