Zacznij terazZacznij za darmo

Maksymalizacja użyteczności

Bill to początkujący pianista, który rozdziela godziny nauki między muzykę klasyczną \(c\) i nowoczesną \(m\). Jego preferencje opisuje ta sama funkcja użyteczności, którą właśnie narysowałeś(-aś):

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

Łączny czas nauki wynosi 2 godziny dziennie (\(c+m=2\)). Pomóż Billowi znaleźć optymalny plan nauki.

np i minimize są już wczytane. Zaimportowaliśmy dla ciebie symbols, diff i solve z SymPy, zdefiniowaliśmy c i m jako symbols oraz funkcję użyteczności U.

To ćwiczenie jest częścią kursu

Wprowadzenie do optymalizacji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj funkcję użyteczności, rozpakowując vars i zwracając zanegowaną funkcję.
  • Zdefiniuj funkcję ograniczenia.
  • Skonfiguruj ograniczenie, podając type i fun.
  • Przeprowadź optymalizację i wyodrębnij wyniki dla c i m.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod