เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การหาค่าสูงสุดของ utility

Bill เป็นนักเรียนเปียโนที่กำลังจัดสรรชั่วโมงการศึกษาดนตรีคลาสสิก \(c\) และดนตรีสมัยใหม่ \(m\) โดยความชอบของเขาแสดงด้วยฟังก์ชัน utility เดียวกับที่เพิ่งพล็อตไป:

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

ชั่วโมงการศึกษารวมกันได้ 2 ชั่วโมงต่อวัน (\(c+m=2\)) ช่วย Bill หาแผนการศึกษาที่เหมาะสมที่สุด

ได้โหลด np และ minimize ไว้ให้แล้ว รวมถึงได้ import symbols, diff และ solve จาก SymPy กำหนด c และ m เป็น symbols และนิยามฟังก์ชัน utility U ไว้ให้แล้วเช่นกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การหาค่าที่เหมาะสมที่สุดใน Python เบื้องต้น

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นิยามฟังก์ชัน utility โดยแกะค่า vars และส่งคืนค่าฟังก์ชันที่ติดลบ
  • นิยามฟังก์ชันเงื่อนไข
  • ตั้งค่าเงื่อนไขโดยระบุ type และ fun
  • ทำการ optimize และดึงผลลัพธ์ของ c และ m

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด