LoslegenKostenlos starten

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

<Kurs>Einführung in Optimierung mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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