กลับไปหน้าบทความ

อ่าน 6 นาที

กระบวนการเดลต้ากำลังสองของไอท์เคน

ในการ วิเคราะห์เชิงตัวเลข กระบวนการเดลต้ากำลังสองของ Aitken หรือ การประมาณค่าแบบ Aitken เป็น วิธี การเร่งความเร็วอนุกรม ที่ใช้เพื่อเร่ง อัตราการลู่เข้า ของลำดับ วิธีนี้ตั้งชื่อตาม...

กระบวนการเดลต้ากำลังสองของไอท์เคน

ในการวิเคราะห์เชิงตัวเลขกระบวนการเดลต้ากำลังสองของ Aitkenหรือการประมาณค่าแบบ Aitkenเป็น วิธี การเร่งความเร็วอนุกรมที่ใช้เพื่อเร่งอัตราการลู่เข้าของลำดับ วิธีนี้ตั้งชื่อตามAlexander Aitkenผู้ซึ่งแนะนำวิธีนี้ในปี 1926 ซึ่งเป็นส่วนหนึ่งของการขยาย วิธีการ ของBernoulli [ 1 ]วิธีนี้มีประโยชน์มากที่สุดสำหรับการเร่งการลู่เข้าของลำดับที่ลู่เข้าเชิงเส้น รูปแบบเบื้องต้นเป็นที่รู้จักของSeki Kōwa (1642 – 1708) และนำไปใช้กับการหาค่าที่ถูกต้องของวงกลม กล่าวคือ การคำนวณค่า π

คำนิยาม

เมื่อกำหนดลำดับที่มีกระบวนการเดลต้ากำลังสองของ Aitken แล้ว ลำดับใหม่จะเชื่อมโยงกับลำดับนี้

ซึ่งสามารถเขียนได้อีกแบบว่า

ทั้งสองแบบเป็นลำดับเดียวกันทางพีชคณิต แต่แบบหลังมีเสถียรภาพเชิงตัวเลข ที่ดีกว่า ในการนำไปใช้ในการคำนวณ

จะไม่สามารถนิยามได้อย่างชัดเจนหากลำดับนั้นมีองค์ประกอบที่เป็นศูนย์ ซึ่งเกิดขึ้นหากลำดับของผลต่างไปข้างหน้ามีพจน์ที่ซ้ำกัน จากมุมมองทางทฤษฎี หากสิ่งนั้นเกิดขึ้นเฉพาะกับดัชนีจำนวนจำกัดเท่านั้น เราสามารถใช้กระบวนการ Aitken กับส่วนของลำดับที่มีดัชนี ที่ทำให้เป็นดัชนีสุดท้ายที่ลำดับ ซ้ำกันได้ ในทางปฏิบัติ พจน์แรกๆ ของลำดับมักให้ความแม่นยำที่ต้องการ นอกจากนี้ เมื่อคำนวณลำดับด้วยวิธีเชิงตัวเลข เราต้องระมัดระวังในการหยุดการคำนวณก่อนที่ข้อผิดพลาดในการปัดเศษในตัวส่วนจะมากเกินไป เนื่องจากการแปลงลำดับอาจทำให้ตัวเลขสำคัญ หายไป ได้

คุณสมบัติ

กระบวนการเดลต้ากำลังสองของ Aitken เป็น วิธี การเร่งการล convergenceและเป็นกรณีพิเศษของการแปลงลำดับที่ไม่เป็นเชิงเส้น

ลำดับที่ลู่เข้าสู่ค่าจำกัดเรียกว่าลู่เข้าเชิงเส้นหรือในทางเทคนิคเรียกว่าลู่เข้าเชิงเส้นแบบ Q ถ้ามีจำนวนบางจำนวนซึ่ง

นี่หมายความว่าในทางอนุกรมอนันต์ ระยะห่างระหว่างลำดับและลิมิตของมันจะลดลงในสัดส่วนที่เกือบเท่ากันในทุกขั้นตอน และอัตราส่วนของการลดลงจะเข้าใกล้สัดส่วนนั้นมากขึ้นเรื่อยๆ บางครั้งเรียกสิ่งนี้ว่า "การลู่เข้าเชิงเรขาคณิต" เนื่องจากเป็นคุณสมบัติเฉพาะของอนุกรมเรขาคณิตหรือ "การลู่เข้าแบบเอกซ์ponential" เนื่องจากเป็นการลู่เข้าในลักษณะเดียวกัน

วิธีของ Aitken จะช่วยเร่งการลู่เข้าของลำดับหากลำดับนั้นสอดคล้องกับเงื่อนไขที่กำหนดไว้ข้างต้น

ไม่ใช่ตัวดำเนินการเชิงเส้นบนลำดับ แต่เป็นตัวดำเนินการเชิงเส้นเมื่อเทียบกับการบวกของลำดับคงที่: ถ้า เป็นลำดับคงที่ใดๆจะเป็นค่าคงที่สำหรับทุกซึ่งเห็นได้ชัดจากการแสดงออกของในรูปของตัวดำเนินการผลต่างจำกัด

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

จากประสบการณ์ การดำเนินการ Aช่วยขจัด "พจน์ความคลาดเคลื่อนที่สำคัญที่สุด" สามารถตรวจสอบได้โดยพิจารณาลำดับในรูปแบบโดยที่: ลำดับนี้จะเข้าใกล้ลิมิตเมื่อเข้าใกล้ศูนย์

ในทางเรขาคณิต กราฟของฟังก์ชันเลขชี้กำลังที่สอดคล้องกับเงื่อนไขและจะมีเส้นกำกับแนวนอนที่(ถ้า)

นอกจากนี้ยังสามารถแสดงได้ว่า หากลำดับลู่เข้าสู่ค่าลิมิตด้วยอัตราที่มากกว่า 1 อย่างชัดเจนก็ไม่ได้หมายความว่าจะมีอัตราการลู่เข้าที่ดีกว่า (ในทางปฏิบัติ การลู่เข้าแบบกำลังสองนั้นเกิดขึ้นได้ยาก ซึ่งหมายความว่าจะได้ค่าทศนิยมที่ถูกต้องมากกว่า 30 (หรือ 100) ตำแหน่งหลังจาก 5 (หรือ 7) รอบการคำนวณ (โดยเริ่มจากค่าที่ถูกต้อง 1 ตำแหน่ง) โดยปกติแล้วในกรณีนั้นไม่จำเป็นต้องเร่งความเร็ว)

ในทางปฏิบัติ การคำนวณมักจะลู่เข้าสู่ค่าลิมิตได้เร็วกว่า การคำนวณแบบ อื่น ดังที่แสดงให้เห็นในตัวอย่างการคำนวณด้านล่าง โดยปกติแล้ว การคำนวณแบบนี้จะประหยัดกว่ามาก(เกี่ยวข้องกับการคำนวณผลต่าง การคูณ และการหารเพียงครั้งเดียว) มากกว่าการคำนวณจำนวนพจน์ที่มากกว่าของลำดับอย่างไรก็ตาม ต้องระมัดระวังไม่ให้เกิดข้อผิดพลาดเนื่องจากความแม่นยำไม่เพียงพอในการคำนวณผลต่างระหว่างตัวเศษและตัวส่วนของนิพจน์

ตัวอย่างการคำนวณ

ตัวอย่างที่ 1 : ค่าของสามารถประมาณได้โดยการกำหนดค่าเริ่มต้นสำหรับและทำซ้ำตามลำดับต่อไปนี้ ซึ่งเรียกว่าวิธีของเฮรอน : เริ่มต้นด้วย

nXขวาน]
011.4285714
11.51.4141414
21.41666671.4142136
31.4142157--
41.4142136--

เป็นที่น่าสังเกตว่า วิธีของ Aitken ไม่ได้ช่วยประหยัดค่าใช้จ่ายในการคำนวณสองรอบ การคำนวณค่าสามค่าแรกต้องใช้ค่าห้าค่าแรก นอกจากนี้ค่าที่สองมีความแม่นยำน้อยกว่าค่าที่สี่ ซึ่งไม่น่าแปลกใจเนื่องจากกระบวนการของ Aitken เหมาะที่สุดสำหรับลำดับที่ลู่เข้าแบบเชิงเส้นมากกว่าแบบกำลังสอง และวิธีของ Heron ในการคำนวณรากที่สองนั้นลู่เข้าแบบกำลังสอง

ตัวอย่างที่ 2 : ค่าของ π สามารถคำนวณได้โดยใช้ผลรวมอนันต์ผ่านสูตรของไลบ์นิซสำหรับπ :

nเงื่อนไขของชุดX = ผลรวมย่อยขวาน]
0110.79166667
1 0.333333330.666666670.78333333
20.20.866666670.78630952
3 0.142857140.723809520.78492063
40.111111110.834920630.78567821
5 9.0909091 × 10 20.744011540.78522034
67.6923077 × 10 20.820934620.78551795
7-6.6666667 × 10 20.75426795--
85.8823529 × 10 20.81309148--

ในตัวอย่างนี้ วิธีของ Aitken ถูกนำมาใช้กับอนุกรมที่ลู่เข้าแบบไม่เป็นเชิงเส้น และช่วยเร่งการลู่เข้าได้อย่างมาก การลู่เข้ายังคงเป็นแบบไม่เป็นเชิงเส้น แต่เร็วกว่าการลู่เข้าแบบเดิมมาก กล่าวคือค่าแรกซึ่งการคำนวณต้องใช้ค่าสามค่าแรกนั้นอยู่ใกล้กับค่าลิมิตมากกว่าค่า ที่แปด

ตัวอย่างรหัสเทียมสำหรับการประมาณค่าแบบ Aitken

ต่อไปนี้เป็นตัวอย่างของการใช้การประมาณค่าแบบ Aitken เพื่อช่วยหาลิมิตของลำดับเมื่อกำหนดค่าเริ่มต้นบางค่าโดยที่ลิมิตของลำดับนี้ถือว่าเป็นจุดคงที่(เช่น) ตัวอย่างเช่น ถ้าลำดับกำหนดโดย โดยมีจุดเริ่มต้นที่ ฟังก์ชันจะเป็นซึ่งมีเป็นจุดคงที่ (ดูวิธีการคำนวณรากที่สอง ) ค่าของจุดคงที่นี้จะถูกประมาณค่า

รหัสเทียมนี้ยังคำนวณค่าประมาณของ Aitken สำหรับค่า ด้วย ค่าประมาณแบบ Aitken จะถูกแทนด้วยในระหว่างการคำนวณค่าประมาณนั้น สิ่งสำคัญคือต้องตรวจสอบว่าตัวหารมีค่าน้อยเกินไปหรือไม่ ซึ่งอาจเกิดขึ้นได้หากเรามีความแม่นยำสูงอยู่แล้ว หากไม่มีการตรวจสอบนี้ อาจเกิดข้อผิดพลาดจำนวนมากจากการหาร ค่าน้อยนี้จะถูกใช้แทนด้วยเนื่องจากการแสดงเลขฐานสองของจุดคงที่อาจเป็นอนันต์ (หรืออย่างน้อยก็ใหญ่เกินกว่าจะเก็บไว้ในหน่วยความจำที่มีอยู่) การคำนวณจะหยุดลงเมื่อค่าประมาณอยู่ภายในค่าจริงaitkenXepsilontolerance

%ตัวเลือกเหล่านี้ขึ้นอยู่กับปัญหาที่กำลังแก้ไขx0 = 1 %ค่าเริ่มต้นf ( x ) = ( 1 / 2 ) * ( x + 2 / x ) %ฟังก์ชันที่หาองค์ประกอบถัดไปในลำดับtolerance = 10 ^- 10 %ต้องการความแม่นยำ 10 หลักepsilon = 10 ^- 16 %ห้ามหารด้วยจำนวนที่น้อยกว่าค่านี้maxIterations = 20 %ห้ามทำการวนซ้ำไปเรื่อยๆhaveWeFoundSolution = false %เราสามารถหาคำตอบได้ภายในค่าความคลาดเคลื่อนที่ต้องการหรือไม่? ยังไม่สำหรับi = 1 : จำนวนการวนซ้ำสูงสุดx1 = f ( x0 ) x2 = f ( x1 )ถ้า( x1 ~= x0 ) lambda = absoluteValue (( x2 - x1 ) / ( x1 - x0 )) %ตัวเลือกเสริม: คำนวณค่าประมาณของ |f'(fixedPoint)| ซึ่งแสดงด้วย lambda endตัวหาร= ( x2 - x1 ) - ( x1 - x0 );ถ้า( ค่าสัมบูรณ์ของตัวหาร< เอปซิลอน) %เพื่อหลีกเลี่ยงข้อผิดพลาดที่เพิ่มขึ้นอย่างมาก อย่าหารด้วยตัวเลขที่เล็กเกินไปพิมพ์( 'คำเตือน: ตัวหารเล็กเกินไป' ) หยุด%ออกจากลูปสิ้นสุดaitkenX = x2 - ( ( x2 - x1 ) ^ 2 ) / ตัวหารถ้า( ค่าสัมบูรณ์( aitkenX - x2 ) < ค่าความคลาดเคลื่อน) %ถ้าค่าอยู่ในช่วงความคลาดเคลื่อนพิมพ์( "จุดคงที่คือ " , aitkenX )) %แสดงผลลัพธ์ของการประมาณค่าแบบ Aitken haveWeFoundSolution = true break %เสร็จแล้ว ออกจากลูปendx0 = aitkenX %อัปเดต x0 เพื่อเริ่มต้นใหม่endถ้า( haveWeFoundSolution == false ) %ถ้าเราไม่สามารถหาคำตอบได้ภายในค่าความคลาดเคลื่อนที่ต้องการพิมพ์( "คำเตือน: ไม่สามารถหาคำตอบได้ภายในค่าความคลาดเคลื่อนที่ต้องการ" , tolerance ) พิมพ์( "ค่าประมาณที่คำนวณได้ครั้งล่าสุดคือ " , aitkenX ) end

ดูเพิ่มเติม

หมายเหตุ

  1. Aitken, Alexander (1926). "เกี่ยวกับการแก้สมการพีชคณิตด้วยวิธีเชิงตัวเลขของเบอร์นูลลี". Proceedings of the Royal Society of Edinburgh . 46 : 289– 305. doi : 10.1017/S0370164600022070 .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Aitken%27s_delta-squared_process&oldid=1323979027 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ กระบวนการเดลต้ากำลังสองของไอท์เคน

ในการ วิเคราะห์เชิงตัวเลข กระบวนการเดลต้ากำลังสองของ Aitken หรือ การประมาณค่าแบบ Aitken เป็น วิธี การเร่งความเร็วอนุกรม ที่ใช้เพื่อเร่ง อัตราการลู่เข้า ของลำดับ วิธีนี้ตั้งชื่อตาม...

คำนิยาม

เมื่อกำหนดลำดับที่มีกระบวนการเดลต้ากำลังสองของ Aitken แล้ว ลำดับใหม่จะเชื่อมโยงกับลำดับนี้ X = ( x n ) {\displaystyle X={(x_{n})}} n = 0 , 1 , 2 , 3 , … , {\displaystyle n=0,1,2,3,\ldots ,}

คุณสมบัติ

กระบวนการเดลต้ากำลังสองของ Aitken เป็น วิธี การเร่งการล convergence และเป็นกรณีพิเศษของการแปลงลำดับที่ไม่เป็นเชิง เส้น

ตัวอย่างการคำนวณ

ตัวอย่างที่ 1 : ค่าของสามารถประมาณได้โดยการกำหนดค่าเริ่มต้นสำหรับและทำซ้ำตามลำดับต่อไปนี้ ซึ่งเรียกว่า วิธีของเฮรอน : เริ่มต้นด้วย 2 ≈ 1.4142136 {\displaystyle {\sqrt {2}}\approx 1.4142136} x 0 {\displaystyle x_{0}} x n + 1 = x n + 2 x n 2 .