ฉันจะสร้างลายฉลุสำหรับตัวดำเนินการ d/d(n*x) ได้อย่างไร
ฉันกำลังเขียนโปรแกรมที่ต้องการคำนวณอนุพันธ์ของเส้นในภาพ หากเราต้องการคำนวณการประมาณอนุพันธ์ที่ง่ายที่สุดโดยคำนึงถึง d/dx เราสามารถดำเนินการดังต่อไปนี้:
diff[x] = -1.0 * image[x] + image[x+1]
หากฉันต้องการคำนวณอนุพันธ์ที่แม่นยำยิ่งขึ้น ฉันสามารถเพิ่มขนาดของสเตนซิล และอาจคำนวณใหม่ได้เป็น:
diff[x] = -3./2 * image[x] + 2*image[x+1] - 1./2 * image[x+2]
ฉันใช้วิธีผลต่างอันจำกัดในการหาค่าสัมประสิทธิ์เหล่านี้
ทีนี้ สมมติว่าฉันต้องการหาอนุพันธ์เกี่ยวกับ d/d(3*x) ฉันสามารถยืดลายฉลุดั้งเดิมได้ดังนี้:
diff[x] = -1.0 * image[x] + image[x+3]
อย่างไรก็ตาม ในที่นี้ ฉันไม่ได้ใช้ข้อมูลจาก image[x+1] และ image[x+2] ดังนั้นการประมาณอนุพันธ์จึงสามารถปรับปรุงให้ดีขึ้นได้มาก ฉันจะสร้างลายฉลุที่จะใช้ข้อมูลนี้และแม่นยำยิ่งขึ้นได้อย่างไร