IniziaInizia gratis

Massimizzazione dell'utilità

Bill è un aspirante pianista che dedica ore di studio alla musica classica \(c\) e moderna \(m\). Le sue preferenze sono rappresentate dalla stessa funzione di utilità che hai appena tracciato:

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

Le ore di studio sommano a 2 al giorno (\(c+m=2\)). Aiuta Bill a trovare il piano di studio ottimale.

np e minimize sono già stati caricati per te. Abbiamo già importato symbols, diff e solve da SymPy, definito c e m come symbols e definito per te la funzione di utilità U.

Questo esercizio fa parte del corso

Introduzione all'ottimizzazione in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci la funzione di utilità estraendo vars e restituendo la funzione negata.
  • Definisci la funzione di vincolo.
  • Imposta il vincolo con type e fun.
  • Esegui l'ottimizzazione ed estrai i risultati per c e m.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice