วิธีเชิงตัวเลขคืออัลกอริทึมสำหรับหาคำตอบประมาณ Newton-Raphson ใช้หารากของสมการ เช่น f(x)=0f(x)=0 ส่วน Euler และ Runge-Kutta ใช้ประมาณคำตอบของสมการเชิงอนุพันธ์

ถ้าต้องการแยกความต่างแบบสั้นที่สุด ก็คือ Newton-Raphson ใช้อัปเดตค่าคาดเดาของ xx ส่วน Euler และ Runge-Kutta ใช้ก้าวคำตอบไปข้างหน้าตามเวลา การที่วิธีเหล่านี้ทำงานได้ดีหรือไม่ขึ้นอยู่กับเงื่อนไข เช่น ค่าเริ่มต้นที่สมเหตุสมผล อนุพันธ์ที่ใช้งานได้ หรือขนาดก้าว hh ที่เล็กพอสำหรับปัญหานั้น

วิธีเชิงตัวเลขแต่ละแบบใช้ทำอะไร

Newton-Raphson: หารากของสมการ

ถ้าคุณต้องการหาค่า xx ที่ทำให้ f(x)=0f(x)=0 วิธี Newton-Raphson จะอัปเดตค่าคาดเดาโดยอาศัยเส้นสัมผัส:

xn+1=xnf(xn)f(xn)x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}

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

วิธีนี้มักทำงานได้ดีเมื่อ ff หาอนุพันธ์ได้, f(xn)0f'(x_n) \ne 0 และค่าคาดเดาเริ่มต้นอยู่ใกล้รากเดี่ยวอยู่แล้ว ถ้าเงื่อนไขเหล่านี้ไม่เป็นจริง วิธีอาจหยุดนิ่ง กระโดดออกห่างจากราก หรือไม่ลู่เข้า

ตัวอย่างเช่น เมื่อ f(x)=x22f(x)=x^2-2 และ x0=1.5x_0=1.5

x1=1.51.5222(1.5)=1.4167x_1 = 1.5 - \frac{1.5^2 - 2}{2(1.5)} = 1.4167

และเมื่อทำอีกหนึ่งก้าวจะได้ประมาณ 1.41421.4142 ซึ่งใกล้กับ 2\sqrt{2} แล้ว

วิธี Euler: หนึ่งความชัน หนึ่งก้าว

สำหรับปัญหาค่าเริ่มต้น

y=f(t,y),y(t0)=y0,y' = f(t,y), \qquad y(t_0)=y_0,

วิธี Euler ใช้ความชันปัจจุบันเพื่อก้าวไปข้างหน้า:

yn+1=yn+hf(tn,yn)y_{n+1} = y_n + h f(t_n, y_n)

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

วิธี Runge-Kutta: ตรวจความชันหลายครั้งในหนึ่งก้าว

วิธี Runge-Kutta ปรับปรุงจาก Euler โดยเก็บข้อมูลความชันมากกว่าหนึ่งครั้งภายในก้าวเดียว ในวิชาเบื้องต้น คำว่า "Runge-Kutta" มักหมายถึงวิธีอันดับสี่แบบคลาสสิก หรือ RK4:

k1=f(tn,yn),k2=f(tn+h2,yn+h2k1),k_1 = f(t_n, y_n), \qquad k_2 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_1\right), k3=f(tn+h2,yn+h2k2),k4=f(tn+h,yn+hk3)k_3 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_2\right), \qquad k_4 = f(t_n + h, y_n + hk_3) yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4)

RK4 ใช้ค่าเฉลี่ยถ่วงน้ำหนักของค่าประมาณความชันหลายค่า จึงมักติดตามเส้นโค้งได้ดีกว่า Euler มากเมื่อใช้ขนาดก้าวเท่ากัน

ตัวอย่างคำนวณ: Euler เทียบกับ Runge-Kutta บน ODE เดียวกัน

พิจารณา

y=y,y(0)=1y' = y, \qquad y(0)=1

และใช้หนึ่งก้าวที่มีขนาด h=0.1h=0.1 เพื่อประมาณ y(0.1)y(0.1)

ก้าวของ Euler

ที่ t=0t=0 ค่าปัจจุบันคือ y0=1y_0=1 ดังนั้นความชันคือ

f(0,1)=1f(0,1)=1

Euler ให้ว่า

y1=1+0.1(1)=1.1y_1 = 1 + 0.1(1) = 1.1

ก้าวของ RK4

ตอนนี้ใช้ปัญหาเดิมกับ RK4:

k1=1k_1 = 1 k2=1+0.12(1)=1.05k_2 = 1 + \frac{0.1}{2}(1) = 1.05 k3=1+0.12(1.05)=1.0525k_3 = 1 + \frac{0.1}{2}(1.05) = 1.0525 k4=1+0.1(1.0525)=1.10525k_4 = 1 + 0.1(1.0525) = 1.10525

ดังนั้น

y1=1+0.16(1+2(1.05)+2(1.0525)+1.10525)y_1 = 1 + \frac{0.1}{6}(1 + 2(1.05) + 2(1.0525) + 1.10525) y11.105170833y_1 \approx 1.105170833

สำหรับสมการนี้ ค่าที่แน่นอนคือ e0.11.105170918e^{0.1} \approx 1.105170918 ดังนั้นก้าวของ RK4 จึงใกล้กว่าก้าวของ Euler มาก

นี่คือบทเรียนสำคัญ Euler ใช้ความชันเฉพาะที่ปลายซ้ายของช่วงเท่านั้น ส่วน RK4 เก็บตัวอย่างว่าความชันเปลี่ยนอย่างไรระหว่างก้าว จึงมักให้ภาพเฉพาะที่ที่ดีกว่า

ควรใช้ Newton-Raphson, Euler หรือ Runge-Kutta เมื่อไร

ใช้ Newton-Raphson เมื่องานคือการแก้สมการไม่เชิงเส้น และคุณสามารถคำนวณหรือประมาณอนุพันธ์ได้ ใช้ Euler เมื่อต้องการเข้าใจแนวคิดพื้นฐานของการก้าวผ่าน ODE หรืออยากได้ค่ามาตรฐานเบื้องต้นอย่างรวดเร็ว

ใช้ Runge-Kutta โดยเฉพาะ RK4 เมื่อต้องการเพิ่มความแม่นยำในทางปฏิบัติโดยไม่ต้องเปลี่ยนรูปแบบของปัญหา อย่างไรก็ตาม ถ้า ODE เป็นสมการแข็ง ทั้ง Euler และ RK4 แบบคลาสสิกก็อาจไม่ใช่ตัวเลือกที่ดีเสมอไป วิธีที่ใช้ต้องเหมาะกับสมการนั้น

ข้อผิดพลาดที่พบบ่อยในวิธีเชิงตัวเลข

สับสนประเภทของปัญหา

Newton-Raphson ใช้สำหรับหารากของสมการ ส่วน Euler และ Runge-Kutta ใช้สำหรับสมการเชิงอนุพันธ์ ถ้าเลือกตระกูลวิธีผิด การตั้งโจทย์ก็ผิดตั้งแต่ก่อนเริ่มคำนวณ

คิดว่าวิธีจะลู่เข้าเสมอ

Newton-Raphson อาจล้มเหลวได้ถ้าค่าเริ่มต้นไม่ดี หรือถ้า f(x)f'(x) มีค่าน้อยมากใกล้จุดวนซ้ำ ส่วนวิธี Euler และ RK อาจให้พฤติกรรมไม่ดีถ้าขนาดก้าวใหญ่เกินไปสำหรับปัญหานั้น

มองว่าขนาดก้าวเป็นรายละเอียดเล็กน้อย

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

ลืมไปว่าคำตอบเป็นเพียงค่าประมาณ

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

วิธีเชิงตัวเลขถูกใช้ที่ไหนบ้าง

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

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

ลองทำโจทย์ที่คล้ายกัน

ลองใช้ตัวอย่าง ODE เดิมแต่เปลี่ยนเป็น h=0.05h=0.05 แทน 0.10.1 แล้วเปรียบเทียบคำตอบของ Euler กับ RK4 อีกครั้ง จากนั้นลองใช้ Newton-Raphson กับ f(x)=x23f(x)=x^2-3 โดยเริ่มจาก x0=2x_0=2 แล้วดูว่าค่าที่วนซ้ำเข้าใกล้ 3\sqrt{3} เร็วแค่ไหน

ต้องการความช่วยเหลือในการแก้โจทย์?

อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที

เปิด GPAI Solver →