Kom igångKom igång gratis

Nyttomaximering

Bill är en ambitiös pianostudent som fördelar studietimmar mellan klassisk \(c\) och modern \(m\) musik. Hans preferenser beskrivs av samma nyttofunktion som du nyss plottade:

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

Studietimmarna summerar till 2 (\(c+m=2\)) per dag. Hjälp Bill att hitta den optimala studieplanen.

np och minimize har redan laddats in. Vi har även importerat symbols, diff och solve från SymPy, definierat c och m som symbols samt definierat nyttofunktionen U åt dig.

Den här övningen är en del av kursen

Introduktion till optimering i Python

Visa kurs

Övningsinstruktioner

  • Definiera nyttofunktionen genom att packa upp vars och returnera den negerade funktionen.
  • Definiera bivillkorsfunktionen.
  • Sätt upp bivillkoret med type och fun.
  • Utför optimeringen och extrahera resultaten för c och m.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod