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
Anleitung zur Übung
- Definiere die Nutzenfunktion, indem du
varsentpackst und die negierte Funktion zurückgibst. - Definiere die Nebenbedingungsfunktion.
- Richte die Nebenbedingung mit
typeundfunein. - Führe die Optimierung durch und extrahiere die Ergebnisse für
cundm.
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))