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

อ่าน 6 นาที

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

วิธีการเร่งความเร็วแบบอนุกรม

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

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

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

คำนิยาม

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

เอ[X]=(เอn)=(xnxn+2xn+12xn+xn+22xn+1),{\displaystyle A[X]=(a_{n})={\left({\frac {x_{n}\,x_{n+2}-x_{n+1}^{2}}{x_{n}+x_{n+2}-2\,x_{n+1}}}\right)},}

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

เอ[X]=(xn(Δxn)2Δ2xn),{\displaystyle A[X]=\left(x_{n}-{\frac {(\Delta x_{n})^{2}}{\Delta ^{2}x_{n}}}\right),}

กับΔxn=xn+1xn{\textstyle \Delta x_{n}=x_{n+1}-x_{n}}และΔ2xn=xn2xn+1+xn+2=Δxn+1Δxn.{\textstyle \Delta ^{2}x_{n}=x_{n}-2x_{n+1}+x_{n+2}=\Delta x_{n+1}-\Delta x_{n}.}ทั้งสองลำดับนั้นเหมือนกันในทางพีชคณิต แต่ลำดับหลังมีเสถียรภาพเชิงตัวเลข ที่ดีกว่า ในการนำไปใช้ในการคำนวณ

เอ[X]{\textstyle A[X]}ถือว่าไม่ชัดเจนหากลำดับนั้นΔ2[X]=(Δ2xn){\textstyle \Delta ^{2}[X]=(\Delta ^{2}x_{n})}ประกอบด้วยองค์ประกอบที่เป็นศูนย์ ซึ่งเกิดขึ้นหากลำดับของผลต่างไปข้างหน้าΔ[X]=(Δxn),{\textstyle \Delta [X]=(\Delta x_{n}),}มีพจน์ที่ซ้ำกันหรือไม่ จากมุมมองทางทฤษฎี หากสิ่งนั้นเกิดขึ้นเฉพาะกับดัชนีจำนวนจำกัดเท่านั้น เราสามารถใช้กระบวนการ Aitken กับลำดับเพียงบางส่วนได้X{\displaystyle X}ด้วยดัชนีn>n0{\displaystyle n>n_{0}} โดยที่n0{\displaystyle n_{0}}เป็นดัชนีสุดท้ายสำหรับลำดับΔ[X]{\textstyle \Delta [X]} ซ้ำกัน ในทางปฏิบัติ พจน์แรกๆ ของลำดับมักให้ความแม่นยำที่ต้องการ นอกจากนี้ เมื่อคำนวณลำดับด้วยวิธีเชิงตัวเลข ต้องระมัดระวังในการหยุดการคำนวณก่อนที่ข้อผิดพลาดจากการปัดเศษในตัวส่วนจะมากเกินไป เนื่องจากΔ2{\textstyle \Delta ^{2}}การแปลงลำดับอาจทำให้ตัวเลขสำคัญ หายไป ได้

คุณสมบัติ

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

ลำดับX=(xn){\textstyle X=(x_{n})}ซึ่งลู่เข้าสู่ค่าจำกัด{\textstyle \ell }กล่าวกันว่าลู่เข้าแบบเชิงเส้นหรือในทางเทคนิคเรียกว่าแบบ Q-เชิงเส้น ถ้ามีจำนวนบางจำนวนμ(0,1){\textstyle \mu \in (0,1)}ซึ่ง

ลิมn|xn+1||xn|=μ.{\displaystyle \lim _{n\to \infty }{\frac {|x_{n+1}-\ell |}{|x_{n}-\ell |}}=\mu .}

นั่นหมายความว่าในทางอนุกรมวิธาน ระยะห่างระหว่างลำดับและลิมิตของมันจะลดลงในสัดส่วนที่เกือบเท่ากันμ,{\displaystyle \mu ,}ในแต่ละขั้นตอน อัตราส่วนของการลดลงจะเข้าใกล้สัดส่วนนั้นมากขึ้นเรื่อยๆ บางครั้งเรียกสิ่งนี้ว่า "การลู่เข้าเชิงเรขาคณิต" เนื่องจากเป็นคุณสมบัติเฉพาะของอนุกรมเรขาคณิตหรือ "การลู่เข้าแบบเลขชี้กำลัง" เนื่องจากเป็นการลู่เข้าในลักษณะเดียวกันμn=เอ็กซ์(nlnμ).{\displaystyle \mu ^{n}=\exp(n\ln \mu )}

วิธีการของ Aitken จะช่วยเร่งการลู่เข้าของลำดับX{\displaystyle X}ถ้าเอ[X]=(เอn),{\displaystyle A[X]=(a_{n}),}ภายใต้เงื่อนไขที่กำหนดไว้ข้างต้น ถือว่าตรงตามเงื่อนไขลิมnเอnxn=0.{\textstyle \lim _{n\to \infty }{\frac {a_{n}-\ell }{x_{n}-\ell }}=0.}

เอ{\displaystyle A}ไม่ใช่ตัวดำเนินการเชิงเส้นบนลำดับ แต่เป็นตัวดำเนินการเชิงเส้นเมื่อเทียบกับการบวกของลำดับคงที่:เอ[Xซี]=เอ[X]ซี,{\textstyle A[XC]=A[X]-C,}ถ้า ซี{\displaystyle C}คือลำดับคงที่ใดๆซี=(){\displaystyle C=(c)}คงที่สำหรับทุกสิ่งn.{\displaystyle n.}สิ่งนี้ชัดเจนจากการแสดงออกของเอ[X]{\displaystyle A[X]}ในแง่ของตัวดำเนินการผลต่างจำกัดΔ.{\displaystyle \Delta .}

โดยทั่วไปแล้วกระบวนการใหม่นี้จะไม่ลู่เข้าแบบกำลังสอง แต่สำหรับ ลำดับ ฟังก์ชันที่ทำซ้ำซึ่งสอดคล้องกับเงื่อนไขxn+1=เอฟ(xn){\displaystyle x_{n+1}=f(x_{n})}สำหรับฟังก์ชันบางอย่างเอฟ{\displaystyle f}เนื่องจากลำดับที่เร่งความเร็ว ลู่เข้าสู่จุดคงที่การลู่เข้าจึงเป็นแบบกำลังสอง ในกรณีนี้ เทคนิคนี้เรียกว่าวิธีของสเตฟเฟนเซน

จากประสบการณ์ การดำเนินการ Aช่วยขจัด "พจน์ความคลาดเคลื่อนที่สำคัญที่สุด" สามารถตรวจสอบได้โดยพิจารณาลำดับที่มีรูปแบบดังนี้xn=+เอn+n{\displaystyle x_{n}=\ell +a^{n}+b^{n}}, ที่ไหน0<<เอ<1{\displaystyle 0<b<a<1}: ลำดับเอ[X]{\displaystyle A[X]}จากนั้นจะไปถึงขีดจำกัด{\textstyle \ell }ชอบn{\displaystyle b^{n}}ลดลงเหลือศูนย์

ในทางเรขาคณิต กราฟของฟังก์ชันเลขชี้กำลังเอฟ(ที){\displaystyle f(t)}ที่ทำให้พึงพอใจเอฟ(n)=xn{\displaystyle f(n)=x_{n}},เอฟ(n+1)=xn+1{\displaystyle f(n+1)=x_{n+1}}และเอฟ(n+2)=xn+2{\displaystyle f(n+2)=x_{n+2}}มีเส้นกำกับแนวนอนที่xnxn+2xn+12xn2xn+1+xn+2{\displaystyle {\frac {x_{n}x_{n+2}-x_{n+1}^{2}}{x_{n}-2x_{n+1}+x_{n+2}}}}(ถ้าxn2xn+1+xn+20{\displaystyle x_{n}-2x_{n+1}+x_{n+2}\neq 0})

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

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

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

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

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

เป็นที่น่าสังเกตว่า วิธีการของ Aitken ไม่ได้ช่วยประหยัดค่าใช้จ่ายในการคำนวณสองรอบในที่นี้ การคำนวณสามรอบแรกยังคงใช้ต้นทุนเดิมเอ[X]{\textstyle A[X]}ค่าที่ต้องการห้าค่าแรกX{\textstyle X}ค่าต่างๆ นอกจากนี้ ข้อที่สองเอ[X]{\textstyle A[X]}ค่าที่ได้มีความแม่นยำน้อยกว่าค่าที่ 4X{\textstyle X}ค่าดังกล่าวไม่น่าแปลกใจ เนื่องจากกระบวนการของ Aitken เหมาะที่สุดสำหรับลำดับที่ลู่เข้าแบบเชิงเส้น มากกว่าแบบกำลังสอง และวิธีการของ Heron ในการคำนวณรากที่สองนั้นลู่เข้าแบบกำลังสอง

ตัวอย่างที่ 2 : ค่าของπ4{\displaystyle {\frac {\pi }{4}}}สามารถคำนวณได้เป็นผลรวมอนันต์โดยใช้สูตรของไลบ์นิซสำหรับπ :

π4=n=0(1)n2n+10.785398{\displaystyle {\frac {\pi }{4}}=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{2n+1}}\approx 0.785398}

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 ถูกนำมาใช้กับอนุกรมที่ลู่เข้าแบบไม่เป็นเชิงเส้น และช่วยเร่งการลู่เข้าได้อย่างมาก การลู่เข้ายังคงเป็นแบบไม่เป็นเชิงเส้น แต่เร็วกว่าการลู่เข้าแบบเดิมมาก: ครั้งแรกเอ[X]{\textstyle A[X]}ค่าซึ่งการคำนวณต้องใช้สามค่าแรกX{\textstyle X}ค่าต่างๆ นั้น ใกล้เคียงกับขีดจำกัดมากกว่าค่าที่แปดX{\textstyle X}ค่า.

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

ต่อไปนี้เป็นตัวอย่างของการใช้การประมาณค่าแบบ Aitken เพื่อช่วยหาลิมิตของลำดับxn+1=เอฟ(xn){\displaystyle x_{n+1}=f(x_{n})}เมื่อได้รับข้อมูลเบื้องต้นบางส่วนx0,{\displaystyle x_{0},}โดยถือว่าลิมิตของลำดับนี้เป็นจุดคงที่เอฟ{\displaystyle f}(พูดα=เอฟ(α){\displaystyle \alpha =f(\alpha )}ตัวอย่างเช่น หากลำดับกำหนดโดยxn+1=12(xn+2xn){\textstyle x_{n+1}={\frac {1}{2}}\left(x_{n}+{\frac {2}{x_{n}}}\right)}โดยมีจุดเริ่มต้นx0=1,{\displaystyle x_{0}=1,}จากนั้นฟังก์ชันจะเป็นเอฟ(x):=12(x+2x),{\textstyle f(x):={\frac {1}{2}}\left(x+{\frac {2}{x}}\right),}ซึ่งมีα:=2{\displaystyle \alpha :={\sqrt {2}}} เป็นจุดคงที่ (ดูวิธีการคำนวณรากที่สอง ) และค่าของจุดคงที่นี้จะถูกประมาณค่า

รหัสเทียมนี้ยังคำนวณค่าประมาณของ Aitken ให้กับเอฟ(α){\displaystyle f^{\prime }(\alpha )}ค่าประมาณแบบ Aitken จะถูกแทนด้วยaitkenXในระหว่างการคำนวณค่าประมาณนั้น สิ่งสำคัญคือต้องตรวจสอบว่าตัวหารมีค่าน้อยเกินไปหรือไม่ ซึ่งอาจเกิดขึ้นได้หากเรามีความแม่นยำสูงอยู่แล้ว หากไม่มีการตรวจสอบนี้ อาจทำให้เกิดข้อผิดพลาดจำนวนมากจากการหาร ค่าจำนวนน้อยนี้จะถูกใช้แทนด้วยepsilonเนื่องจากการแสดงเลขฐานสองของจุดคงที่อาจเป็นอนันต์ (หรืออย่างน้อยก็ใหญ่เกินกว่าจะเก็บไว้ในหน่วยความจำที่มีอยู่) การคำนวณจะหยุดลงเมื่อค่าประมาณอยู่ภายในtoleranceค่าจริง

%ตัวเลือกเหล่านี้ขึ้นอยู่กับปัญหาที่กำลังแก้ไข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เป็น วิธี การเร่งความเร็วอนุกรมที่ใช้เพื่อเร่งอัตราการลู่เข้าของลำดับ...

คำนิยาม

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

คุณสมบัติ

กระบวนการเดลต้ากำลังสองของ 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 .