ห้องสมุด SciPy สามารถใช้ในการคำนวณทางวิทยาศาสตร์ที่ซับซ้อนได้อย่างรวดเร็วและมีประสิทธิภาพสูง อัลกอริธึม Nelder-Mead เรียกอีกอย่างว่าอัลกอริธึมการค้นหาอย่างง่าย
ถือว่าเป็นหนึ่งในอัลกอริธึมที่ดีที่สุดที่สามารถใช้ในการแก้ปัญหาการประมาณค่าพารามิเตอร์และปัญหาทางสถิติได้ เกี่ยวข้องกับการใช้อัลกอริธึมนี้ในสถานการณ์ที่ค่าของฟังก์ชันไม่แน่นอนหรือมีสัญญาณรบกวนที่เกี่ยวข้องมาก
อัลกอริธึมนี้ยังสามารถใช้เพื่อทำงานกับฟังก์ชันที่ไม่ต่อเนื่องซึ่งเกิดขึ้นบ่อยในสถิติ เป็นอัลกอริธึมที่เรียบง่ายและเข้าใจง่ายเช่นกัน ใช้เพื่อลดพารามิเตอร์ของฟังก์ชันที่ไม่เป็นเชิงเส้นให้น้อยที่สุดในกรณีที่มีการเพิ่มประสิทธิภาพแบบหลายมิติที่ไม่มีข้อจำกัด
ไม่แนะนำให้ใช้อัลกอริธึมนี้เพื่อค้นหาค่าการไล่ระดับสีที่เหมาะสมที่สุด เนื่องจากอาจใช้เวลานาน
เรามาดูตัวอย่างกัน −
ตัวอย่าง
import numpy as np from scipy.optimize import minimize def f(x): return .6*(1 - x[0])**2 scipy.optimize.minimize(f, [2, -1], method="Nelder-Mead")
ผลลัพธ์
final_simplex: (array([[ 1. , -1.27109375], [ 1. , -1.27118835], [ 1. , -1.27113762]]), array([0., 0., 0.])) fun: 0.0 message: 'Optimization terminated successfully.' nfev: 147 nit: 69 status: 0 success: True x: array([ 1. , -1.27109375])
คำอธิบาย
-
นำเข้าไลบรารีที่จำเป็น
-
ฟังก์ชัน 'f' ถูกกำหนดโดยรับค่าเป็นอาร์กิวเมนต์ และทำการคำนวณทางคณิตศาสตร์กับค่านั้น
-
ฟังก์ชันนี้เรียกว่าฟังก์ชัน "f" นอกนิยามฟังก์ชันที่คำนวณค่า
-
ฟังก์ชันนี้จะถูกส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชัน 'ย่อเล็กสุด' ที่มีอยู่ในคลาส 'เพิ่มประสิทธิภาพ' ของไลบรารี 'scipy'
-
เอาต์พุตนี้จะแสดงบนคอนโซล