ÎncepețiÎncepe gratuit

Maximizarea utilității

Bill este un student pasionat de pian care alocă ore de studiu pentru muzică clasică \(c\) și modernă \(m\). Preferințele sale sunt reprezentate de aceeași funcție de utilitate pe care tocmai ai reprezentat-o grafic:

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

Orele de studiu se ridică la 2 zilnic (\(c+m=2\)). Ajută-l pe Bill să găsească planul optim de studiu.

np și minimize au fost deja încărcate. Am importat deja symbols, diff și solve din SymPy, am definit c și m ca symbols și am definit funcția de utilitate U pentru tine.

Acest exercițiu face parte din cursul

Introducere în optimizare în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește funcția de utilitate dezpachetând vars și returnând funcția negată.
  • Definește funcția de constrângere.
  • Configurează constrângerea cu type și fun.
  • Efectuează optimizarea și extrage rezultatele pentru c și m.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul