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

ค้นหาจุดเหมาะสมที่สุดระดับโลก

โจทย์การหากำไรสูงสุดด้านล่างนี้ถูกเตรียมไว้ให้แล้ว และต้องการหาค่าสูงสุดระดับโลก

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) เป็นขอบเขตล่างตามธรรมชาติของปริมาณ และจากการสังเกตพบว่าที่ \(q=30\) กำไรมีค่าติดลบ ดังนั้น \(30\) จึงเป็นตัวเลือกที่เหมาะสมสำหรับขอบเขตบน

ให้หาจุดเหมาะสมที่สุดระดับโลกของปัญหานี้

มีการนำเข้า basinhopping ให้แล้ว

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

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

ดูคอร์ส

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

  • กำหนด dictionary kwargs สำหรับ keyword arguments โดยระบุขอบเขต \(0\) และ \(30\)
  • รัน basinhopping โดยใช้ฟังก์ชันวัตถุประสงค์เป็นค่าลบของ profit และส่งค่าเริ่มต้น x0 ไปยัง minimizer kwargs

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

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

def profit(q): 
	return -q**4 / 4 + 11 * q**3 - 160 * q**2 + 900 * q
  
x0 = 0

# Define the keyword arguments for bounds
kwargs = {"bounds": [(____, ____)]} 

# Run basinhopping to find the optimal quantity
result = basinhopping(____ q: -profit(q), ____, ____=kwargs)

print(f"{result.message}")
print(f"The maximum according to basinhopping(x0={x0}) is at {result.x[0]:.2f}\n")
แก้ไขและรันโค้ด