2
มีวิธีการอะไรง่าย ๆ สำหรับการสุ่มตัวอย่างแบบ 2D ฟังก์ชั่น
ฉันมีฟังก์ชั่นสองมิติ ซึ่งมีค่าที่ฉันต้องการตัวอย่าง ฟังก์ชั่นนั้นมีราคาแพงมากในการคำนวณและมันมีรูปร่างที่ซับซ้อนดังนั้นฉันต้องหาวิธีที่จะได้รับข้อมูลมากที่สุดเกี่ยวกับรูปร่างของมันโดยใช้จำนวนจุดตัวอย่างน้อยที่สุดฉ( x , y)ฉ(x,Y)f(x,y) มีวิธีการอะไรที่ดีในการทำสิ่งนี้? สิ่งที่ฉันมีจนถึงตอนนี้ ฉันเริ่มต้นจากชุดของจุดที่มีอยู่ซึ่งฉันได้คำนวณค่าฟังก์ชันแล้ว (ซึ่งอาจเป็นจุดที่เป็นรูปสี่เหลี่ยมจัตุรัสหรืออย่างอื่น) จากนั้นฉันคำนวณ Delaunay Triangulation ของจุดเหล่านี้ ถ้าสองจุดที่อยู่ใกล้เคียงในการหาสมการ Delaunay อยู่ไกลพอ ( ) และค่าฟังก์ชันแตกต่างกันพอสมควร ( ) จากนั้นฉันก็แทรกจุดใหม่ที่อยู่ตรงกลางระหว่างพวกเขา ฉันทำสิ่งนี้สำหรับแต่ละจุดที่อยู่ใกล้เคียง> Δ X>ΔX > \Delta X> Δ f>Δฉ> \Delta f เกิดอะไรขึ้นกับวิธีนี้? มันใช้งานได้ค่อนข้างดี แต่ในฟังก์ชั่นที่คล้ายกับอันนี้มันไม่เหมาะเพราะจุดตัวอย่างมีแนวโน้มที่จะ "กระโดดข้าม" สันเขาและไม่สังเกตว่ามันอยู่ที่นั่น มันสร้างผลลัพธ์เช่นนี้ (หากความละเอียดของตารางจุดเริ่มต้นหยาบพอสมควร): พล็อตด้านบนนี้แสดงจุดที่คำนวณค่าฟังก์ชัน (จริง ๆ แล้วเซลล์ Voronoi รอบตัวพวกเขา) พล็อตด้านบนนี้แสดงการประมาณค่าเชิงเส้นที่สร้างจากจุดเดียวกันและเปรียบเทียบกับวิธีการสุ่มตัวอย่างแบบบิวท์อินของ Mathematica (สำหรับความละเอียดเริ่มต้นเดียวกัน) จะปรับปรุงได้อย่างไร? …