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

อ่าน 10 นาที

ไม่มีชื่อบทความ

อั ลกอริทึม Remez หรือ อัลกอริทึมการแลกเปลี่ยน Remez ซึ่งเผยแพร่โดย Evgeny Yakovlevich Remez ในปี 1934 เป็นอัลกอริทึมแบบวนซ้ำที่ใช้ในการค้นหาการประมาณค่าฟังก์ชันอย่างง่าย...

อัลกอริทึม Remez

อัลกอริทึม Remezหรืออัลกอริทึมการแลกเปลี่ยน Remezซึ่งเผยแพร่โดยEvgeny Yakovlevich Remezในปี 1934 เป็นอัลกอริทึมแบบวนซ้ำที่ใช้ในการค้นหาการประมาณค่าฟังก์ชันอย่างง่าย โดยเฉพาะอย่างยิ่งการประมาณค่าฟังก์ชันในปริภูมิ Chebyshevที่ดีที่สุดในแง่ของบรรทัดฐานสม่ำเสมอL [ 1 ]บางครั้งเรียกว่าอัลกอริทึม Remesหรือ อัลกอริ ทึมReme [ 2 ]

ตัวอย่างทั่วไปของปริภูมิเชบิเชฟคือปริภูมิย่อยของพหุนามเชบิเชฟอันดับnในปริภูมิของฟังก์ชันต่อเนื่อง จริง บนช่วงC [ a , b ] พหุนามประมาณค่าที่ดีที่สุดภายในปริภูมิย่อยที่กำหนดจะถูกนิยามว่าเป็นพหุนามที่ทำให้ผลต่างสัมบูรณ์สูงสุดระหว่างพหุนามกับฟังก์ชันมีค่าน้อยที่สุดในกรณีนี้ รูปแบบของคำตอบจะถูกกำหนดอย่างแม่นยำโดยทฤษฎีบทการแกว่งเท่ากัน

ขั้นตอน

อัลกอริทึม Remez เริ่มต้นด้วยฟังก์ชันเอฟ{\displaystyle f}เพื่อที่จะประมาณค่าและเป็นชุดX{\displaystyle X}ของn+2{\displaystyle n+2}ตัวอย่างจุดx1,x2,...,xn+2{\displaystyle x_{1},x_{2},...,x_{n+2}}ในช่วงการประมาณค่า โดยปกติแล้วค่าสุดขั้วของพหุนามเชบิเชฟจะถูกแปลงเชิงเส้นไปยังช่วงนั้น ขั้นตอนมีดังนี้:

  • แก้ระบบสมการเชิงเส้น
0+1xฉัน+...+nxฉันn+(1)ฉันอี=เอฟ(xฉัน){\displaystyle b_{0}+b_{1}x_{i}+...+b_{n}x_{i}^{n}+(-1)^{i}E=f(x_{i})}(ที่ไหนฉัน=1,2,...n+2{\displaystyle i=1,2,...n+2}),
สำหรับสิ่งที่ไม่รู้0,1...n{\displaystyle b_{0},b_{1}...b_{n}}และอี .
  • ใช้ฉัน{\displaystyle b_{i}}ใช้เป็นสัมประสิทธิ์เพื่อสร้างพหุนามพีn{\displaystyle P_{n}}.
  • ค้นหาชุดเอ็ม{\displaystyle M}ของจุดที่มีข้อผิดพลาดสูงสุดเฉพาะที่|พีn(x)เอฟ(x)|{\displaystyle |P_{n}(x)-f(x)|}.
  • หากเกิดข้อผิดพลาดในทุกๆเอ็ม{\displaystyle m\in M}มีขนาดเท่ากันและสลับเครื่องหมายกัน จากนั้นพีn{\displaystyle P_{n}}คือพหุนามประมาณค่ามินิแม็กซ์ ถ้าไม่ใช่ ให้แทนที่ด้วยX{\displaystyle X}กับเอ็ม{\displaystyle M}และทำซ้ำขั้นตอนข้างต้น

ผลลัพธ์นี้เรียกว่าพหุนามประมาณค่าที่ดีที่สุด หรืออัลกอริธึมการประมาณค่าแบบมินิแม็กซ์

W. Fraser ได้ทำการตรวจสอบรายละเอียดทางเทคนิคในการใช้งานอัลกอริทึม Remez [ 3 ]

ตัวเลือกการเริ่มต้น

จุดเชบิเชฟเป็นตัวเลือกที่นิยมใช้สำหรับการประมาณค่าเริ่มต้น เนื่องจากบทบาทของจุดเหล่านี้ในทฤษฎีการประมาณค่าแบบพหุนามสำหรับการเริ่มต้นปัญหาการหาค่าเหมาะสมที่สุดสำหรับฟังก์ชันfโดยใช้ตัวประมาณค่าแบบลากรางจ์L ( f ) สามารถแสดงได้ว่าการประมาณค่าเริ่มต้นนี้มีขอบเขตจำกัดโดย

เอฟแอลn(เอฟ)(1+แอลn)ข้อมูลพีพีnเอฟพี{\displaystyle \lVert f-L_{n}(f)\rVert _{\infty }\leq (1+\lVert L_{n}\rVert _{\infty })\inf _{p\in P_{n}}\lVert fp\rVert }

โดยที่ค่ามาตรฐานหรือค่าคงที่ของเลเบสของตัวดำเนินการการแทรกสอดแบบลากรางจ์L ของโหนด ( t , ..., t ) คือ

แอลn=Λ¯n(ที)=สูงสุด1x1λn(ที;x),{\displaystyle \lVert L_{n}\rVert _{\infty }={\overline {\Lambda }}_{n}(T)=\max _{-1\leq x\leq 1}\lambda _{n}(T;x),}

โดยที่ Tคือค่าศูนย์ของพหุนามเชบิเชฟ และฟังก์ชันเลเบสคือ

λn(ที;x)=เจ=1n+1|เจ(x)|,เจ(x)=ฉันเจฉัน=1n+1(xทีฉัน)(ทีเจทีฉัน).{\displaystyle \lambda _{n}(T;x)=\sum _{j=1}^{n+1}\left|l_{j}(x)\right|,\quad l_{j}(x)=\prod _{\stackrel {i=1}{i\neq j}}^{n+1}{\frac {(x-t_{i})}{(t_{j}-t_{i})}}.}

Theodore A. Kilgore [ 4 ] Carl de Boor และ Allan Pinkus [ 5 ]พิสูจน์ว่ามีt ที่ไม่ซ้ำกัน สำหรับแต่ละL แม้ว่าจะไม่ทราบอย่างชัดเจนสำหรับพหุนาม (ธรรมดา) ในทำนองเดียวกันΛ_n(ที)=นาที1x1λn(ที;x){\displaystyle {\underline {\Lambda }}_{n}(T)=\min _{-1\leq x\leq 1}\lambda _{n}(T;x)}และความเหมาะสมที่สุดของการเลือกโหนดสามารถแสดงได้ดังนี้Λ¯nΛ_n0.{\displaystyle {\overline {\Lambda }}_{n}-{\underline {\Lambda }}_{n}\geq 0.}

สำหรับโหนด Chebyshev ซึ่งให้ทางเลือกที่ไม่เหมาะสมแต่ชัดเจนในเชิงวิเคราะห์ พฤติกรรมเชิงอะซิมโทติกเป็นที่ทราบกันดีว่า[ 6 ]

Λ¯n(ที)=2πบันทึก(n+1)+2π(γ+บันทึก8π)+αn+1{\displaystyle {\overline {\Lambda }}_{n}(T)={\frac {2}{\pi }}\log(n+1)+{\frac {2}{\pi }}\left(\gamma +\log {\frac {8}{\pi }}\right)+\alpha _{n+1}}

( โดยที่ γคือค่าคงที่ของออยเลอร์-มาสเชโรนี ) ด้วย

0<αn<π72n2{\displaystyle 0<\alpha _{n}<{\frac {\pi }{72n^{2}}}}สำหรับn1,{\displaystyle n\geq 1,}

และขอบเขตบน[ 7 ]

Λ¯n(ที)2πบันทึก(n+1)+1{\displaystyle {\overline {\Lambda }}_{n}(T)\leq {\frac {2}{\pi }}\log(n+1)+1}

Lev Brutman [ 8 ]ได้รับขอบเขตสำหรับn3{\displaystyle n\geq 3}, และที^{\displaystyle {\hat {T}}}โดยที่ค่าเหล่านั้นคือศูนย์ของพหุนามเชบิเชฟที่ขยายแล้ว:

Λ¯n(ที^)Λ_n(ที^)<Λ¯316เปลเด็กπ8+π641บาป2(3π/16)2π(γบันทึกπ)0.201.{\displaystyle {\overline {\Lambda }}_{n}({\hat {T}})-{\underline {\Lambda }}_{n}({\hat {T}})<{\overline {\Lambda }}_{3}-{\frac {1}{6}}\cot {\frac {\pi }{8}}+{\frac {\pi }{64}}{\frac {1}{\sin ^{2}(3\pi /16)}}-{\frac {2}{\pi }}(\gamma -\log \pi )\approx 0.201.}

Rüdiger Günttner [ 9 ]ได้รับจากการประมาณค่าที่แม่นยำยิ่งขึ้นสำหรับn40{\displaystyle n\geq 40}

Λ¯n(ที^)Λ_n(ที^)<0.0196{\displaystyle {\overline {\Lambda }}_{n}({\hat {T}})-{\underline {\Lambda }}_{n}({\hat {T}})<0.0196.}

การอภิปรายโดยละเอียด

ส่วนนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนต่างๆ ที่ได้กล่าวไว้ข้างต้น ในส่วนนี้ ดัชนีiมีค่าตั้งแต่ 0 ถึงn + 1

ขั้นตอนที่ 1:กำหนดให้x0,x1,...xn+1{\displaystyle x_{0},x_{1},...x_{n+1}}แก้ระบบสมการเชิงเส้นn + 2 สมการ

0+1xฉัน+...+nxฉันn+(1)ฉันอี=เอฟ(xฉัน){\displaystyle b_{0}+b_{1}x_{i}+...+b_{n}x_{i}^{n}+(-1)^{i}E=f(x_{i})}(ที่ไหนฉัน=0,1,...n+1{\displaystyle i=0,1,...n+1}),
สำหรับสิ่งที่ไม่รู้0,1,...n{\displaystyle b_{0},b_{1},...b_{n}}และอี .

ควรจะชัดเจนแล้วว่า(1)ฉันอี{\displaystyle (-1)^{i}E}สมการนี้จะสมเหตุสมผลก็ต่อเมื่อโหนดต่างๆx0,...,xn+1{\displaystyle x_{0},...,x_{n+1}}เรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย ระบบสมการเชิงเส้นนี้จะมีคำตอบเดียว (ดังที่ทราบกันดีว่า ไม่ใช่ทุกระบบสมการเชิงเส้นจะมีคำตอบ) นอกจากนี้ คำตอบนั้นสามารถหาได้โดยใช้เพียง...โอ(n2){\displaystyle O(n^{2})}การดำเนินการทางคณิตศาสตร์ ในขณะที่ตัวแก้ปัญหามาตรฐานจากไลบรารีจะใช้เวลาโอ(n3){\displaystyle O(n^{3})}การดำเนินการ นี่คือหลักฐานอย่างง่าย:

คำนวณค่าประมาณเชิงเส้นมาตรฐานระดับnพี1(x){\displaystyle p_{1}(x)}ถึงเอฟ(x){\displaystyle f(x)}ที่ โหนด n + 1 แรก และยังรวมถึง ตัวแทรกสอดระดับ nมาตรฐานด้วยพี2(x){\displaystyle p_{2}(x)}ถึงพระบรมสารีริกธาตุ(1)ฉัน{\displaystyle (-1)^{i}}

พี1(xฉัน)=เอฟ(xฉัน),พี2(xฉัน)=(1)ฉัน,ฉัน=0,...,n.{\displaystyle p_{1}(x_{i})=f(x_{i}),p_{2}(x_{i})=(-1)^{i},i=0,...,n.}

เพื่อจุดประสงค์นี้ ให้ใช้ สูตรการแทรกสอดของนิวตันกับ ผลต่าง หารอันดับในแต่ละครั้ง0,...,n{\displaystyle 0,...,n}และโอ(n2){\displaystyle O(n^{2})}การดำเนินการทางคณิตศาสตร์

พหุนามพี2(x){\displaystyle p_{2}(x)}มีศูนย์ลำดับที่iอยู่ระหว่างxฉัน1{\displaystyle x_{i-1}}และxฉัน, ฉัน=1,...,n{\displaystyle x_{i},\ i=1,...,n}และด้วยเหตุนี้จึงไม่มีเลขศูนย์เพิ่มเติมระหว่างนั้นxn{\displaystyle x_{n}}และxn+1{\displaystyle x_{n+1}}:พี2(xn){\displaystyle p_{2}(x_{n})}และพี2(xn+1){\displaystyle p_{2}(x_{n+1})}มีสัญลักษณ์เดียวกัน(1)n{\displaystyle (-1)^{n}}.

การรวมเชิงเส้น พี(x):=พี1(x)พี2(x)อี{\displaystyle p(x):=p_{1}(x)-p_{2}(x)\!\cdot \!E}ยังเป็นพหุนามดีกรีn ด้วย และ

พี(xฉัน)=พี1(xฉัน)พี2(xฉัน)อี = เอฟ(xฉัน)(1)ฉันอี,    ฉัน=0,,n.{\displaystyle p(x_{i})=p_{1}(x_{i})-p_{2}(x_{i})\!\cdot \!E\ =\ f(x_{i})-(-1)^{i}E,\ \ \ \ i=0,\ldots ,n.}

นี่คือสมการเดียวกันกับข้างต้นสำหรับฉัน=0,...,n{\displaystyle i=0,...,n}และสำหรับการเลือกE ใดๆ สมการเดียวกันสำหรับi = n + 1 คือ

พี(xn+1) = พี1(xn+1)พี2(xn+1)อี = เอฟ(xn+1)(1)n+1อี{\displaystyle p(x_{n+1})\ =\ p_{1}(x_{n+1})-p_{2}(x_{n+1})\!\cdot \!E\ =\ f(x_{n+1})-(-1)^{n+1}E}และต้องใช้เหตุผลพิเศษ: เมื่อแก้สมการหาค่าตัวแปรEแล้ว จะได้เป็นนิยามของE นั่นเอง :
อี := พี1(xn+1)เอฟ(xn+1)พี2(xn+1)+(1)n.{\displaystyle E\ :=\ {\frac {p_{1}(x_{n+1})-f(x_{n+1})}{p_{2}(x_{n+1})+(-1)^{n}}}.}

ดังที่กล่าวมาข้างต้น พจน์ทั้งสองในตัวส่วนมีเครื่องหมายเดียวกัน คือ Eและดังนั้นพี(x)0+1x++nxn{\displaystyle p(x)\equiv b_{0}+b_{1}x+\ldots +b_{n}x^{n}}มักมีขอบเขตที่ชัดเจนเสมอ

ข้อผิดพลาดที่ โหนดเรียงลำดับ n + 2 ที่กำหนดนั้นมีทั้งค่าบวกและค่าลบตามลำดับ เนื่องจาก

พี(xฉัน)เอฟ(xฉัน) = (1)ฉันอี,  ฉัน=0,...,n+1.{\displaystyle p(x_{i})-f(x_{i})\ =\ -(-1)^{i}E,\ \ i=0,...,n\!+\!1.}

ทฤษฎีบทการแกว่งเท่ากันกล่าวว่า ภายใต้เงื่อนไขนี้ จะไม่มีพหุนามดีกรีn ใด ที่มีค่าความคลาดเคลื่อนน้อยกว่าEอันที่จริง หากมีพหุนามดังกล่าวอยู่จริง ให้เรียกมันว่าพี~(x){\displaystyle {\tilde {p}}(x)}แล้วความแตกต่างล่ะ พี(x)พี~(x)=(พี(x)เอฟ(x))(พี~(x)เอฟ(x)){\displaystyle p(x)-{\tilde {p}}(x)=(p(x)-f(x))-({\tilde {p}}(x)-f(x))}ค่าที่โหนด n + 2 ยังคงเป็นบวก/ลบอยู่xฉัน{\displaystyle x_{i}}และด้วยเหตุนี้จึงมีรากอย่างน้อยn + 1 ตัว ซึ่งเป็นไปไม่ได้สำหรับพหุนามดีกรีnดังนั้นE นี้ จึงเป็นขอบล่างของข้อผิดพลาดขั้นต่ำที่สามารถทำได้ด้วยพหุนามดีกรีn

ขั้นตอนที่ 2เปลี่ยนสัญลักษณ์จาก 0+1x+...+nxn{\displaystyle b_{0}+b_{1}x+...+b_{n}x^{n}}ถึงพี(x){\displaystyle p(x)}.

ขั้นตอนที่ 3ปรับปรุงโหนดอินพุตให้ดียิ่งขึ้นx0,...,xn+1{\displaystyle x_{0},...,x_{n+1}}และข้อผิดพลาดของพวกเขา±อี{\displaystyle \pm E}ดังต่อไปนี้

ในแต่ละภูมิภาค P โหนดปัจจุบันxฉัน{\displaystyle x_{i}}ถูกแทนที่ด้วยตัวเพิ่มค่าสูงสุดเฉพาะที่x¯ฉัน{\displaystyle {\bar {x}}_{i}}และในแต่ละภูมิภาค Nxฉัน{\displaystyle x_{i}}ถูกแทนที่ด้วยตัวลดค่าต่ำสุดเฉพาะที่ (คาดหวัง)x¯0{\displaystyle {\bar {x}}_{0}}ที่Ax¯ฉัน{\displaystyle {\bar {x}}_{i}}ใกล้xฉัน{\displaystyle x_{i}}, และx¯n+1{\displaystyle {\bar {x}}_{n+1}}ที่B. ) ไม่จำเป็นต้องมีความแม่นยำสูงที่นี่การค้นหาเส้น มาตรฐาน ด้วยการปรับแบบกำลังสองสองสามแบบ ก็น่าจะเพียงพอแล้ว (ดู[ 10 ] )

อนุญาตzฉัน:=พี(x¯ฉัน)เอฟ(x¯ฉัน){\displaystyle z_{i}:=p({\bar {x}}_{i})-f({\bar {x}}_{i})}แต่ละแอมพลิจูด|zฉัน|{\displaystyle |z_{i}|}มีค่ามากกว่าหรือเท่ากับEทฤษฎีบทของเดอ ลา วัลเล ปูแซงและการพิสูจน์ก็ใช้ได้กับกรณีนี้เช่นกันz0,...,zn+1{\displaystyle z_{0},...,z_{n+1}}กับนาที{|zฉัน|}อี{\displaystyle \min\{|z_{i}|\}\geq E}ถือเป็นขอบเขตล่างใหม่สำหรับ ค่าความคลาดเคลื่อนที่ดีที่สุดที่เป็นไปได้สำหรับพหุนามดีกรีn

นอกจากนี้,สูงสุด{|zฉัน|}{\displaystyle \max\{|z_{i}|\}}ซึ่งมีประโยชน์อย่างยิ่งในฐานะขอบเขตบนที่ชัดเจนสำหรับข้อผิดพลาดที่ดีที่สุดที่เป็นไปได้

ขั้นตอนที่ 4:ด้วยนาที{|zฉัน|}{\displaystyle \min \,\{|z_{i}|\}}และสูงสุด{|zฉัน|}{\displaystyle \max \,\{|z_{i}|\}}เนื่องจากขอบเขตล่างและขอบเขตบนสำหรับข้อผิดพลาดในการประมาณค่า ที่ดีที่สุดที่เป็นไปได้ จึงมีเกณฑ์การหยุดที่เชื่อถือได้: ทำซ้ำขั้นตอนจนกว่าสูงสุด{|zฉัน|}นาที{|zฉัน|}{\displaystyle \max\{|z_{i}|\}-\min\{|z_{i}|\}}มีขนาดเล็กพอหรือไม่ลดลงอีกต่อไป ขอบเขตเหล่านี้บ่งชี้ถึงความคืบหน้า

ตัวแปร

มีการดัดแปลงอัลกอริธึมบางส่วนในเอกสาร[ 11 ]ซึ่งรวมถึง:

  • แทนที่จุดตัวอย่างมากกว่าหนึ่งจุดด้วยตำแหน่งของค่าความแตกต่างสัมบูรณ์สูงสุดที่อยู่ใกล้เคียงกัน
  • แทนที่จุดตัวอย่างทั้งหมดภายในการวนซ้ำครั้งเดียวด้วยตำแหน่งของความแตกต่างสูงสุดทั้งหมด สลับเครื่องหมาย[ 12 ]
  • การใช้ค่าความคลาดเคลื่อนสัมพัทธ์เพื่อวัดความแตกต่างระหว่างค่าประมาณและฟังก์ชัน โดยเฉพาะอย่างยิ่งหากจะใช้ค่าประมาณนั้นในการคำนวณฟังก์ชันบนคอมพิวเตอร์ที่ใช้เลขคณิตแบบจุดลอยตัว
  • รวมถึงข้อจำกัดจุดศูนย์ข้อผิดพลาด[ 12 ]
  • ตัวแปร Fraser-Hart ใช้เพื่อกำหนดค่าประมาณ Chebyshev เชิงตรรกะที่ดีที่สุด[ 13 ]

ดูเพิ่มเติม

  • ทฤษฎีบทของฮาดามาร์ดหน้าเว็บที่แสดงคำอธิบายสั้นๆ โดยไม่มีช่องว่าง 
  • ซีรี่ส์ลอเรนต์– ซีรี่ส์พลังที่มีพลังด้านลบ 
  • Padé approximant – การประมาณค่าที่ดีที่สุดของฟังก์ชันด้วยฟังก์ชันตรรกยะอันดับที่กำหนด 
  • อนุกรมนิวตัน– อนาล็อกแบบไม่ต่อเนื่องของอนุพันธ์ หน้าเว็บที่แสดงคำอธิบายสั้น ๆ ของเป้าหมายการเปลี่ยนเส้นทาง 
  • ทฤษฎีการประมาณค่า– ทฤษฎีเกี่ยวกับการหาค่าที่ใกล้เคียงกับความเป็นจริงอย่างยอมรับได้สำหรับการคำนวณทางคณิตศาสตร์ที่ไม่แม่นยำ 
  • การประมาณฟังก์ชัน– การประมาณฟังก์ชันใดๆ ด้วยฟังก์ชันที่มีพฤติกรรมที่ดี 
  • การประมาณค่าแบบมินิแม็กซ์และอัลกอริธึมของรีเมซบทพื้นฐานใน เอกสารประกอบของ Boost Math Tools พร้อมลิงก์ไปยังการใช้งานในภาษา C++
  • บทนำเกี่ยวกับ DSP ( เก็บถาวรเมื่อ 23 เมษายน 2557 ที่Wayback Machine)
  • อาร์ทส์, โรนัลด์ เอ็ม. ; บอนด์, ชาร์ลส์; Mendelsohn, Phil & Weisstein, Eric W. "อัลกอริทึม Remez" . แมทเวิลด์ .

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

อั ลกอริทึม Remez หรือ อัลกอริทึมการแลกเปลี่ยน Remez ซึ่งเผยแพร่โดย Evgeny Yakovlevich Remez ในปี 1934 เป็นอัลกอริทึมแบบวนซ้ำที่ใช้ในการค้นหาการประมาณค่าฟังก์ชันอย่างง่าย...

ขั้นตอน

อัลกอริทึม Remez เริ่มต้นด้วยฟังก์ชัน เอฟ {\displaystyle f} เพื่อที่จะประมาณค่าและเป็นชุด X {\displaystyle X} ของ n + 2 {\displaystyle n+2} ตัวอย่างจุด x 1 , x 2 , . . . , x n + 2 {\displaystyle x_{1},x_{2},...

ตัวเลือกการเริ่มต้น

จุด เชบิเชฟ เป็นตัวเลือกที่นิยมใช้สำหรับการประมาณค่าเริ่มต้น เนื่องจากบทบาทของจุดเหล่านี้ในทฤษฎี การประมาณค่าแบบพหุนาม สำหรับการเริ่มต้นปัญหาการหาค่าเหมาะสมที่สุดสำหรับฟังก์ชัน f โดยใช้ตัวประมาณค่าแบบลากรางจ์ L ( f )...

การอภิปรายโดยละเอียด

ส่วนนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนต่างๆ ที่ได้กล่าวไว้ข้างต้น ในส่วนนี้ ดัชนี i มีค่าตั้งแต่ 0 ถึง n + 1