LoslegenKostenlos loslegen

Nutzenmaximierung

Bill ist ein angehender Klavierschüler und verteilt täglich Lernstunden auf klassische \(c\) und moderne \(m\) Musik. Seine Präferenzen werden durch dieselbe Nutzenfunktion beschrieben, die du gerade geplottet hast:

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

Die täglichen Lernstunden summieren sich auf 2 (\(c+m=2\)). Hilf Bill, den optimalen Lernplan zu finden.

np und minimize wurden bereits für dich geladen. Außerdem haben wir symbols, diff und solve aus SymPy importiert, c und m als symbols definiert und die Nutzenfunktion U für dich angelegt.

Diese Übung ist Teil des Kurses

Einführung in Optimierung mit Python

Kurs anzeigen

Anleitung zur Übung

  • Definiere die Nutzenfunktion, indem du vars entpackst und die negierte Funktion zurückgibst.
  • Definiere die Nebenbedingungsfunktion.
  • Richte die Nebenbedingung mit type und fun ein.
  • Führe die Optimierung durch und extrahiere die Ergebnisse für c und m.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen