시작하기무료로 시작하기

효용 극대화

Bill은 클래식 $c$와 모던 \(m\) 음악 공부 시간에 시간을 배분하는 예비 피아노 학생입니다. 그의 선호는 방금 그려 본 것과 같은 효용 함수로 표현됩니다:

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

하루 공부 시간의 합은 2시간(\(c+m=2\))입니다. Bill이 최적의 학습 계획을 찾을 수 있도록 도와주세요.

npminimize는 이미 로드되어 있습니다. 또한 SymPy에서 symbols, diff, solve를 가져왔고, cmsymbols로 정의했으며, 효용 함수 U도 미리 정의해 두었습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 Optimization 입문

강의 보기

연습 안내

  • vars를 언패킹해 효용 함수를 정의하고, 음수 부호를 붙여 반환하세요.
  • 제약 함수를 정의하세요.
  • typefun을 사용해 제약을 설정하세요.
  • 최적화를 수행하고 cm에 대한 결과를 추출하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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))
코드 편집 및 실행