อ่าน 14 นาที
การหาอนุพันธ์เชิงตัวเลข
ในการวิเคราะห์เชิง ตัวเลข อัลกอริทึมการหา อนุพันธ์ เชิงตัวเลข จะประมาณค่า อนุพันธ์ของฟังก์ชันทางคณิตศาสตร์หรือซับรูทีนโดยใช้ค่าของฟังก์ชันนั้น...
การหาอนุพันธ์เชิงตัวเลข

ในการวิเคราะห์เชิง ตัวเลข อัลกอริทึมการหา อนุพันธ์ เชิงตัวเลข จะประมาณค่า อนุพันธ์ของฟังก์ชันทางคณิตศาสตร์หรือซับรูทีนโดยใช้ค่าของฟังก์ชันนั้น แตกต่างจากการหาอนุพันธ์เชิงวิเคราะห์ซึ่งให้สูตรที่แน่นอนสำหรับอนุพันธ์ การหาอนุพันธ์เชิงตัวเลขอาศัยค่าของฟังก์ชัน ณ จุดต่างๆ เพื่อประมาณค่าอนุพันธ์ ณ จุดเหล่านั้นหรือจุดระหว่างกลาง วิธีนี้มีประโยชน์อย่างยิ่งเมื่อต้องจัดการกับข้อมูลที่ได้จากการทดลอง การจำลอง หรือสถานการณ์ที่ฟังก์ชันถูกกำหนดไว้เฉพาะในช่วงเวลาที่กำหนดเท่านั้น
ความแตกต่างจำกัด
วิธีที่ง่ายที่สุดคือการใช้การประมาณค่าความแตกต่างจำกัด
การประมาณค่าแบบสองจุดอย่างง่ายคือการคำนวณความชันของเส้นตัด ใกล้เคียงที่ ผ่านจุด( x , f ( x ))และ( x + h , f ( x + h )) [ 1 ] การเลือกจำนวนเล็กน้อยhซึ่งh แทน การเปลี่ยนแปลงเล็กน้อยในxและอาจเป็นบวกหรือลบก็ได้ ความชันของเส้นนี้คือ นิพจน์นี้คือผลหารต่างของนิวตัน (หรือที่รู้จักกันในชื่อ ผลหารต่างอันดับแรก)
เพื่อให้ได้ค่าประมาณความคลาดเคลื่อนสำหรับการประมาณค่านี้ เราสามารถใช้การกระจายอนุกรมเทย์เลอร์ของ f รอบจุดฐานเพื่อให้ได้ ค่า f สำหรับบางค่าระหว่าง h และh เมื่อจัดเรียงใหม่จะได้ ความชันของเส้นตัดนี้แตกต่างจากความชันของเส้นสัมผัสในปริมาณที่แปรผันตรงกับh โดยประมาณ เมื่อhเข้าใกล้ศูนย์ ความชันของเส้นตัดจะเข้าใกล้ความชันของเส้นสัมผัส และพจน์ความคลาดเคลื่อนจะหายไป ดังนั้นอนุพันธ์ที่แท้จริงของfที่xคือลิมิตของค่าผลหารส่วนต่างเมื่อเส้นตัดเข้าใกล้เส้นสัมผัสมากขึ้นเรื่อยๆ
เนื่องจากการแทนค่า 0 ลงในh ทันที จะทำให้ได้รูปแบบที่ไม่แน่นอนการคำนวณอนุพันธ์โดยตรงจึงอาจทำได้ยาก
ในทำนองเดียวกัน สามารถประมาณความชันได้โดยใช้ตำแหน่ง x − hและx
สูตรสองจุดอีกสูตรหนึ่งคือการคำนวณความชันของเส้นตัดใกล้เคียงที่ลากผ่านจุด( x − h , f ( x − h ))และ( x + h , f ( x + h ))ความชันของเส้นนี้คือ
สูตรนี้เรียกว่าผลหารความแตกต่างสมมาตรในกรณีนี้ ข้อผิดพลาดอันดับแรกจะหักล้างกัน ดังนั้น ความชันของเส้นตัดเหล่านี้จะแตกต่างจากความชันของเส้นสัมผัสในปริมาณที่แปรผันตรงกับดังนั้น สำหรับค่าh น้อยๆ วิธีนี้จึงเป็นการประมาณเส้นสัมผัสที่แม่นยำกว่าการประมาณแบบด้านเดียว อย่างไรก็ตาม แม้ว่าจะคำนวณความชันที่xแต่ค่าของฟังก์ชันที่x นั้นไม่ได้เกี่ยวข้องด้วย
ข้อผิดพลาดในการประมาณค่าคำนวณได้จากสูตร โดย ที่เป็นจุดใดจุดหนึ่งระหว่างและข้อผิดพลาดนี้ไม่รวมข้อผิดพลาดจากการปัดเศษเนื่องจากตัวเลขที่แสดงและการคำนวณมีความแม่นยำจำกัด
อัตราส่วนผลต่างสมมาตรถูกนำมาใช้เป็นวิธีการประมาณค่าอนุพันธ์ในเครื่องคิดเลขหลายเครื่อง รวมถึงTI-82 , TI-83 , TI-84 , TI-85ซึ่งทั้งหมดนี้ใช้วิธีนี้กับh = 0.001 [ 2 ] [ 3 ]
ขนาดขั้น

สิ่งสำคัญที่ควรพิจารณาในทางปฏิบัติเมื่อคำนวณฟังก์ชันโดยใช้เลขคณิตจุดลอยตัวที่มีความแม่นยำจำกัด คือ การเลือกขนาดขั้นตอนhเพื่อเป็นตัวอย่าง ลองพิจารณาสูตรการประมาณค่าแบบสองจุดที่มีพจน์ความคลาดเคลื่อน:
โดยที่เป็นจุดใดจุดหนึ่งระหว่างและให้แทนค่าความคลาดเคลื่อนจากการปัดเศษที่เกิดขึ้นเมื่อประเมินฟังก์ชันและแทนค่าที่คำนวณได้ของดังนั้น ความคลาดเคลื่อนทั้งหมดในการประมาณค่าคือ สมมติว่าความคลาดเคลื่อนจากการปัดเศษมีค่าจำกัดโดยจำนวนใดจำนวนหนึ่งและอนุพันธ์อันดับสามของมีค่าจำกัดโดยจำนวนใดจำนวนหนึ่งเราจะได้
เพื่อลดข้อผิดพลาดจากการตัดทอน เราต้องลดค่า hแต่เมื่อค่า hลดลง ข้อผิดพลาดจากการปัดเศษก็จะเพิ่มขึ้น เนื่องจากความจำเป็นในการหารด้วยค่าh ที่มีขนาดเล็ก สูตรผลต่างจำกัดทั้งหมดสำหรับการหาอนุพันธ์เชิงตัวเลขจึงมีสภาพไม่ดีเช่น เดียวกัน [ 4 ]
หากแทนที่จะประมาณอนุพันธ์โดยใช้และเราสมมติว่าข้อผิดพลาดในการประมาณสัมพัทธ์เนื่องจากการปัดเศษมีขอบเขตจำกัดโดยค่าเอปไซลอนของเครื่องและค่าและมีขอบเขตจำกัดโดยและตามลำดับ จะสามารถแสดงได้ว่า: [ 5 ]โดยการลดขอบเขตบนนี้ให้เหลือน้อยที่สุด จะสามารถประมาณขนาดขั้นตอนที่เหมาะสมที่สุดได้ อย่างไรก็ตาม การใช้วิธีนี้จะต้องทราบขอบเขตและแทน หากใช้ขอบเขตบนโดยประมาณ ซึ่งและถูกแทนที่ด้วยและข้อผิดพลาดสามารถประมาณได้ดังนี้: โดยการลดให้เหลือน้อยที่สุดจะสามารถหาค่าประมาณขนาดขั้นตอนที่เหมาะสมที่สุดh ได้: [ 5 ] (แม้ว่าจะไม่ใช่เมื่อ) หากไม่มีข้อมูลเกี่ยวกับฟังก์ชันบางครั้งจะใช้การประมาณค่าทำให้มีตัวเลือกสำหรับhที่มีขนาดเล็กโดยไม่ทำให้เกิดข้อผิดพลาดในการปัดเศษมาก: โดยที่ ค่า เอปไซลอนของเครื่องεโดยทั่วไปจะมีขนาดประมาณ2.2 × 10 −16สำหรับความแม่นยำสองเท่า [ 6 ] ในทางปฏิบัติ ไม่สามารถคำนวณค่าที่ทำให้ขอบเขตข้อผิดพลาดข้างต้นน้อยที่สุดได้ ดังนั้นจึงไม่สามารถคำนวณค่าประมาณของขนาดขั้นตอนที่เหมาะสมที่สุดได้หากไม่มีข้อมูลเกี่ยวกับอนุพันธ์ลำดับสูงกว่า[ 7 ]
ตัวอย่าง
เพื่อแสดงให้เห็นถึงความยากลำบากนี้ ลองพิจารณาการประมาณค่าอนุพันธ์ของฟังก์ชัน ที่จุดในกรณีนี้ เราสามารถคำนวณได้ ซึ่งให้ ผลลัพธ์ดังนี้ โดยใช้ตัวเลขทศลอย 64 บิต ค่าประมาณต่อไปนี้จะถูกสร้างขึ้นโดยใช้สูตรการประมาณค่าแบบสองจุดและขนาดขั้นตอนที่เล็กลงเรื่อยๆ ค่าความคลาดเคลื่อนสัมบูรณ์ที่น้อยที่สุดจะเกิดขึ้นเมื่อขนาดขั้นตอนเท่ากับหลังจากนั้นค่าความคลาดเคลื่อนสัมบูรณ์จะเพิ่มขึ้นเรื่อยๆ เนื่องจากความคลาดเคลื่อนจากการปัดเศษจะครอบงำการคำนวณ
| ขนาดขั้น (ชม.) | การประมาณค่า | ข้อผิดพลาดสัมบูรณ์ |
|---|---|---|
สำหรับการคำนวณด้วยคอมพิวเตอร์ ปัญหาจะยิ่งรุนแรงขึ้น เพราะถึงแม้ว่าxจะต้องเป็นตัวเลขทศนิยมที่สามารถแสดงได้ด้วยความแม่นยำระดับหนึ่ง (32 หรือ 64 บิตเป็นต้น ) แต่x + hแทบจะแน่นอนว่าจะไม่สามารถแสดงได้อย่างแม่นยำด้วยความแม่นยำนั้น นั่นหมายความว่าx + hจะถูกเปลี่ยนแปลง (โดยการปัดเศษหรือการตัดทิ้ง) ไปเป็นตัวเลขที่เครื่องสามารถแสดงได้ใกล้เคียง ส่งผลให้( x + h ) − xจะไม่เท่ากับhการประเมินค่าฟังก์ชันทั้งสองจะไม่ ห่างกัน h พอดี ในแง่นี้ เนื่องจากเศษส่วนทศนิยมส่วนใหญ่เป็นลำดับซ้ำในระบบเลขฐานสอง (เช่นเดียวกับ 1/3 ในระบบเลขฐานสิบ) ขั้นตอนที่ดูเหมือนกลม เช่นh = 0.1จะไม่ใช่ตัวเลขกลมในระบบเลขฐานสอง แต่จะเป็น 0.000110011001100... 2แนวทางที่เป็นไปได้มีดังนี้:
h := sqrt(eps) * x; xph := x + h; dx := xph - x; slope := (F(xph) - F(x)) / dx;
อย่างไรก็ตาม ในกรณีของคอมพิวเตอร์ ระบบ การเพิ่มประสิทธิภาพของคอมไพเลอร์อาจไม่สามารถจัดการกับรายละเอียดของการคำนวณทางคณิตศาสตร์ที่แท้จริงของคอมพิวเตอร์ได้ และกลับนำเอาหลักการพื้นฐานทางคณิตศาสตร์ มาใช้ เพื่อสรุปว่าdxและhเหมือนกัน ใน ภาษา Cและภาษาที่คล้ายกัน คำสั่งที่ระบุว่าxphเป็นตัวแปรแบบ volatileจะช่วยป้องกันปัญหานี้ได้
วิธีการสามจุด
เพื่อให้ได้สูตรการประมาณค่าอนุพันธ์ทั่วไปสำหรับฟังก์ชันบางฟังก์ชันให้เป็นจำนวนบวกที่อยู่ใกล้ศูนย์ การกระจายอนุกรมเทย์เลอร์ของรอบจุดฐานคือ
| 1 |
การแทนที่ด้วยให้
| 2 |
การคูณเอกลักษณ์ ( 1 ) ด้วย 4 จะได้
| 1' |
การลบเอกลักษณ์ ( 1' ) ออกจาก ( 2 ) จะกำจัดเทอม:
ซึ่งสามารถเขียนได้ดังนี้
การเรียงลำดับคำศัพท์ใหม่ทำให้ได้ผลลัพธ์ดังนี้
ซึ่งเรียกว่าสูตรผลต่างไปข้างหน้าสามจุดสำหรับการหาอนุพันธ์ โดยใช้วิธีการที่คล้ายกันนี้ เราสามารถแสดงให้เห็นได้ว่า
ซึ่งเรียกว่าสูตรผลต่างกลางสามจุดและ ซึ่งเรียกว่าสูตรผลต่างย้อนหลังสามจุด
ด้วยวิธีการที่คล้ายกัน สูตรการประมาณค่าจุดกึ่งกลางห้าจุดสามารถหาได้ดังนี้: [ 8 ]
ตัวอย่างเชิงตัวเลข
พิจารณาการประมาณค่าอนุพันธ์ของที่จุดเนื่องจากค่าที่แท้จริงคือ
| สูตร | ขนาดขั้น (ชม.) | การประมาณค่า | ข้อผิดพลาดสัมบูรณ์ |
|---|---|---|---|
| สูตรคำนวณผลต่างคะแนนนำสามแต้ม | |||
| สูตรผลต่างย้อนหลังสามจุด | |||
| สูตรความแตกต่างกลางสามจุด | |||
รหัส
ต่อไปนี้เป็นตัวอย่าง การใช้งาน Python สำหรับการ หา อนุพันธ์เชิงตัวเลขโดยใช้สูตรผลต่างสามจุดต่างๆ ที่ฟังก์ชันนี้มีอนุพันธ์funcfunc_prime
| ตัวอย่างการใช้งานในภาษา Python |
นำเข้าคณิตศาสตร์def func ( x ):คืนค่า( 2 * x ) / ( 1 + math . sqrt ( x ))def func_prime ( x ):return ( 2 + math . sqrt ( x )) / (( 1 + math . sqrt ( x )) ** 2 )def three_point_forward ( value , h ):คืนค่า(( - 3 / 2 ) * func ( value ) + 2 * func ( value + h ) - ( 1 / 2 ) * func ( value + 2 * h )) / hdef three_point_central ( value , h ):คืนค่า(( - 1 / 2 ) * func ( value - h ) + ( 1 / 2 ) * func ( value + h )) / hdef three_point_backward ( value , h ):คืนค่า(( 1 / 2 ) * func ( value - 2 * h ) - 2 * func ( value - h ) + ( 3 / 2 ) * func ( value )) / hค่า= 4actual = func_prime ( value )พิมพ์( "ค่าจริง " + str ( actual ))พิมพ์( "==========================================" )สำหรับstep_size ในช่วง[ 0.1 , 0.01 , 0.001 , 0.0001 ]:พิมพ์( "ขนาดขั้นตอน " + str ( step_size ))forward = three_point_forward ( value , step_size )backward = three_point_backward ( value , step_size )จุดศูนย์กลาง= จุดศูนย์กลางสามจุด( ค่า, ขนาดขั้นตอน)พิมพ์( "ส่งต่อ {:>12} , ข้อผิดพลาด = {:>12} " . format ( str ( forward ), str ( abs ( forward - actual ))))พิมพ์( "ย้อนกลับ{:>12} , ข้อผิดพลาด = {:>12} " . format ( str ( forward ), str ( abs ( backward - actual ))))พิมพ์( "Central {:>12} , Error = {:>12} " . format ( str ( forward ), str ( abs ( central - actual ))))พิมพ์( "==========================================" ) |
| เอาต์พุต |
ค่าจริง0.4444444444444444============================================ขนาดขั้น0.1ส่งต่อ0.4443963018050967 , ข้อผิดพลาด= 4.814263934771468e-05ย้อนกลับ0.4443963018050967 , ข้อผิดพลาด= 2.5082646145202503e-05ศูนย์กลาง0.4443963018050967 , ข้อผิดพลาด= 5.231976394060034e-05============================================ขนาดขั้น0.01ส่งต่อ0.4444439449793336 , ข้อผิดพลาด= 4.994651108258807e-07ย้อนกลับ0.4444439449793336 , ข้อผิดพลาด= 2.507721614808389e-07ศูนย์กลาง0.4444439449793336 , ข้อผิดพลาด= 5.036366184096863e-07============================================ขนาดขั้น0.001ส่งต่อ0.4444444394311464 , ข้อผิดพลาด= 5.013297998957e-09ย้อนกลับ0.4444444394311464 , ข้อผิดพลาด= 2.507574814458735e-09ศูนย์กลาง0.4444444394311464 , ข้อผิดพลาด= 5.017960935660426e-09============================================ขนาดขั้น0.0001ส่งต่อ0.4444444443896245 , ข้อผิดพลาด= 5.4819926376126205e-11ย้อนกลับ0.4444444443896245 , ข้อผิดพลาด= 2.5116131396885066e-11ศูนย์กลาง0.4444444443896245 , ข้อผิดพลาด= 5.037903427762558e-11============================================ |
อนุพันธ์ระดับสูง
โดยใช้ทฤษฎีบทอนุกรมเทย์เลอร์ เราสามารถหาอนุพันธ์อันดับสอง (และอันดับสูงกว่า) ของฟังก์ชันทั่วไปได้ สำหรับฟังก์ชันหนึ่งและจำนวนหนึ่งการกระจายฟังก์ชันนั้นรอบ ๆและจะได้
และ ที่ไหน. เมื่อบวกสมการทั้งสองนี้เข้าด้วยกันจะได้
ถ้าฟังก์ชันต่อเนื่องบนช่วงแล้วจะอยู่ระหว่างและทฤษฎีบทค่ากลางรับประกันว่าจะมีจำนวนหนึ่ง เช่นอยู่ระหว่างและดังนั้นเราจึงสามารถเขียนได้ว่า
ที่ไหน.
ตัวอย่างเชิงตัวเลข
พิจารณาการประมาณค่าอนุพันธ์อันดับสองของฟังก์ชันที่จุดนั้น
เนื่องจากค่าที่แน่นอนคือ.
| ขนาดขั้น (ชม.) | การประมาณค่า | ข้อผิดพลาดสัมบูรณ์ |
|---|---|---|
อนุพันธ์ตามอำเภอใจ
โดยใช้ผลหารความแตกต่างของนิวตัน สามารถแสดงได้ดังต่อไปนี้[ 9 ] (สำหรับn > 0 ):
วิธีการตัวแปรเชิงซ้อน
การประมาณความแตกต่างจำกัดแบบคลาสสิกสำหรับการหาอนุพันธ์เชิงตัวเลขนั้นมีเงื่อนไขไม่ดี อย่างไรก็ตาม ถ้าเป็นฟังก์ชันโฮโลมอร์ฟิกที่มีค่าเป็นจำนวนจริงบนเส้นจำนวนจริง ซึ่งสามารถประเมินได้ที่จุดในระนาบเชิงซ้อนใกล้แล้วจะมี วิธีการ ที่เสถียรตัวอย่างเช่น[ 10 ]อนุพันธ์อันดับแรกสามารถคำนวณได้โดยใช้สูตรอนุพันธ์ขั้นเชิงซ้อน: [ 11 ] [ 12 ] [ 13 ]
ขนาดขั้นตอนที่แนะนำเพื่อให้ได้อนุพันธ์ที่แม่นยำสำหรับเงื่อนไขต่างๆ คือ[ 14 ] สูตร นี้สามารถหาได้จาก การขยาย อนุกรมเทย์เลอร์ :
สูตรอนุพันธ์ขั้นซับซ้อนใช้ได้เฉพาะกับการคำนวณอนุพันธ์อันดับแรกเท่านั้น การขยายความข้างต้นสำหรับการคำนวณอนุพันธ์ทุกอันดับใช้จำนวนเชิงซ้อนหลายตัวส่งผลให้ได้อนุพันธ์เชิงซ้อนหลายตัว[ 15 ] [ 16 ] [ 17 ] โดยที่แทนหน่วยจินตนาการเชิงซ้อนหลายตัว ตัว ดำเนินการจะดึงส่วนประกอบที่ ของจำนวนเชิงซ้อนหลายตัวระดับเช่นดึงส่วนประกอบจริง และดึงส่วนประกอบสุดท้ายที่ "เป็นจินตนาการมากที่สุด" วิธีนี้สามารถนำไปใช้กับอนุพันธ์แบบผสมได้ เช่น สำหรับอนุพันธ์อันดับสอง
มีการใช้งานการคำนวณเลขคณิตเชิงซ้อนหลายตัวด้วยภาษา C++ [ 18 ]
โดยทั่วไป อนุพันธ์ลำดับใดๆ ก็สามารถคำนวณได้โดยใช้สูตรอินทิกรัลของ Cauchy : [ 19 ] โดยที่การอินทิเกรตจะทำในเชิงตัวเลข
การใช้ตัวแปรเชิงซ้อนสำหรับการหาอนุพันธ์เชิงตัวเลขเริ่มต้นโดย Lyness และ Moler ในปี พ.ศ. 2510 [ 20 ]อัลกอริทึมของพวกเขาสามารถนำไปใช้กับอนุพันธ์อันดับสูงได้
Abate และ Dubner ได้พัฒนาวิธีการที่ใช้การผกผันเชิงตัวเลขของการแปลงลาปลา สเชิงซ้อน [ 21 ] Fornberg ได้พัฒนาอัลกอริทึมที่สามารถใช้งานได้โดยไม่ต้องมีความรู้เกี่ยวกับวิธีการหรือลักษณะของฟังก์ชัน[ 4 ]
การหาปริพันธ์เชิงอนุพันธ์
การประมาณค่าเชิงอนุพันธ์โดยใช้ผลรวมถ่วงน้ำหนักของค่าฟังก์ชันเรียกว่าการประมาณค่าเชิงอนุพันธ์[ 22 ] [ 23 ]การประมาณค่าเชิงอนุพันธ์มีความสำคัญในทางปฏิบัติเพราะช่วยให้สามารถคำนวณอนุพันธ์จากข้อมูลที่มีสัญญาณรบกวนได้ชื่อนี้มาจากการเปรียบเทียบกับquadratureซึ่งหมายถึงการอิน ทิเกรตเชิงตัวเลข โดยใช้ผลรวมถ่วงน้ำหนักในวิธีการต่างๆ เช่นกฎของซิมป์สันหรือกฎสี่เหลี่ยมคางหมูมีวิธีการต่างๆ มากมายในการกำหนดสัมประสิทธิ์น้ำหนัก เช่นตัวกรอง Savitzky–Golayการประมาณค่าเชิงอนุพันธ์ใช้ในการแก้สมการเชิงอนุพันธ์ย่อยนอกจากนี้ยังมีวิธีการอื่นๆ ในการคำนวณอนุพันธ์จากข้อมูลที่มีสัญญาณรบกวน[ 24 ]
ดูเพิ่มเติม
- การหาอนุพันธ์อัตโนมัติ – การคำนวณเชิงตัวเลขที่รวมอนุพันธ์เข้าไปด้วย
- แม่แบบห้าจุด – จุดหนึ่งและจุดข้างเคียงที่ใกล้ที่สุดสี่จุด
- รายชื่อซอฟต์แวร์วิเคราะห์เชิงตัวเลข
- การอินทิเกรตเชิงตัวเลข – วิธีการคำนวณอินทิกรัลจำกัด
- วิธีการเชิงตัวเลขสำหรับสมการเชิงอนุพันธ์สามัญ – วิธีการที่ใช้ในการหาคำตอบเชิงตัวเลขของสมการเชิงอนุพันธ์สามัญ
- ตัวกรอง Savitzky–Golay – อัลกอริทึมสำหรับปรับความเรียบของจุดข้อมูล
ลิงก์ภายนอก
- การหาอนุพันธ์เชิงตัวเลขจาก wolfram.com
- รูทีนการหาอนุพันธ์เชิงตัวเลขของไลบรารี NAG
- Boost. คณิตศาสตร์การหาอนุพันธ์เชิงตัวเลข รวมถึงการหาอนุพันธ์แบบจำกัด และการหาอนุพันธ์แบบขั้นซับซ้อน
- การหาความแตกต่างโดยไม่มีความแตกต่างโดยNicholas Higham , SIAM News
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การหาอนุพันธ์เชิงตัวเลข
ในการวิเคราะห์เชิง ตัวเลข อัลกอริทึมการหา อนุพันธ์ เชิงตัวเลข จะประมาณค่า อนุพันธ์ของฟังก์ชันทางคณิตศาสตร์หรือซับรูทีนโดยใช้ค่าของฟังก์ชันนั้น...
ความแตกต่างจำกัด
วิธีที่ง่ายที่สุดคือการใช้การประมาณค่าความแตกต่างจำกัด
ขนาดขั้น
สิ่งสำคัญที่ควรพิจารณาในทางปฏิบัติเมื่อคำนวณฟังก์ชันโดยใช้ เลขคณิตจุดลอยตัว ที่มีความแม่นยำจำกัด คือ การเลือกขนาดขั้นตอน h เพื่อเป็นตัวอย่าง ลองพิจารณาสูตรการประมาณค่าแบบสองจุดที่มีพจน์ความคลาดเคลื่อน:
ตัวอย่าง
เพื่อแสดงให้เห็นถึงความยากลำบากนี้ ลองพิจารณาการประมาณค่าอนุพันธ์ของฟังก์ชัน ที่จุดในกรณีนี้ เราสามารถคำนวณได้ ซึ่งให้ ผลลัพธ์ดังนี้ โดยใช้ตัวเลขทศลอย 64 บิต ค่าประมาณต่อไปนี้จะถูกสร้างขึ้นโดยใช้สูตรการประมาณค่าแบบสองจุดและขนาดขั้นตอนที่เล็กลงเรื่อยๆ...