Nutmaximalisatie
Bill is een beginnende pianostudent die dagelijks studeertijd verdeelt over klassieke \(c\) en moderne \(m\) muziek. Zijn voorkeuren worden weergegeven door dezelfde nutsfunctie die je zojuist hebt geplot:
\(U(c, m)=c^{0.7}m^{0.3}\).
Het totaal aantal studie-uren is dagelijks 2 (\(c+m=2\)). Help Bill het optimale studieplan te vinden.
np en minimize zijn al voor je geladen. We hebben symbols, diff en solve uit SymPy geïmporteerd, c en m als symbols gedefinieerd en de nutsfunctie U voor je klaargezet.
Deze oefening maakt deel uit van de cursus
Introductie tot optimalisatie in Python
Oefeninstructies
- Definieer de nutsfunctie door
varsuit te pakken en de genegativeerde functie te retourneren. - Definieer de restrictiefunctie.
- Stel de restrictie in met
typeenfun. - Voer de optimalisatie uit en haal de resultaten op voor
cenm.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))