Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Definieer de nutsfunctie door vars uit te pakken en de genegativeerde functie te retourneren.
  • Definieer de restrictiefunctie.
  • Stel de restrictie in met type en fun.
  • Voer de optimalisatie uit en haal de resultaten op voor c en m.

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))
Code bewerken en uitvoeren