2025-05-09 03:40:39
โพสต์นี้เป็นส่วนหนึ่งของชุดบทความเกี่ยวกับวิธีผลต่างจำกัด (Finite Difference Method) โดยโพสต์อื่นๆ ในชุดนี้จะเน้นไปที่การแก้สมการความร้อน/สมการการแพร่แบบชัดแจ้ง, วิธี Crank-Nicolson แบบปริยาย และการแก้ระบบเมทริกซ์สามแนวทแยงด้วยอัลกอริธึมของโธมัส:
นี่คือตอนแรกของชุดบทความหลายตอนเกี่ยวกับการใช้วิธีผลต่างจำกัด (FDM) เพื่อแก้สมการเชิงอนุพันธ์ย่อยเชิงพาราโบลิกด้วยวิธีเชิงตัวเลข โดยเฉพาะอย่างยิ่งจะเป็นการแก้สมการความร้อน (heat equation) เนื่องจากสมการการตั้งราคาของ Black-Scholes สามารถแปลงให้อยู่ในรูปของสมการความร้อนได้ วิธีเหล่านี้จึงสามารถนำมาใช้ในการแก้สมการดังกล่าวได้เชิงตัวเลข
หากเรากำหนดให้
fff เป็นฟังก์ชันต่อเนื่องของจำนวนจริงซึ่งมีอนุพันธ์อันดับสองได้ สมการความร้อนของ f จะเป็น:
∂t∂u=α∂x2∂2u
วิธีผลต่างจำกัดให้ทางเลือกเชิงตัวเลขสำหรับการแก้สมการนี้โดยการทำอนุพันธ์ให้ไม่ต่อเนื่อง โดยจะใช้การขยายเทย์เลอร์ (Taylor Series) เพื่อประมาณอนุพันธ์
ให้พิจารณาว่าซีรีส์เทย์เลอร์ให้ค่าของฟังก์ชัน
f เมื่อเปลี่ยนแปลงตัวแปรตามจำนวน Δx ได้ดังนี้:
f(x+Δx)=f(x)+Δxf′(x)+2!Δx2f′′(x)+3!Δx3f(3)(x)+⋯
โดยที่
⋯ แทนพจน์เพิ่มเติมที่ถูกจำกัดด้วยค่าคงที่คูณกับ Δxn ในทำนองเดียวกัน สามารถหาค่า
f(x−Δx) ได้จาก:
f(x−Δx)=f(x)−Δxf′(x)+2!Δx2f′′(x)−3!Δx3f(3)(x)+⋯
สมการทั้งสองนี้เมื่อจัดรูปใหม่จะได้การประมาณค่าอนุพันธ์อันดับหนึ่งของ f:
f′(x)≈Δxf(x+Δx)−f(x)(Forward Difference)
f′(x)≈Δxf(x)−f(x−Δx)(Backward Difference)
ยิ่งไปกว่านั้น เมื่อนำสมการด้านหลังมาลบออกจากสมการด้านหน้า จะได้การประมาณแบบอันดับสองของอนุพันธ์อันดับหนึ่งของ fff:
f′(x)≈2Δxf(x+Δx)−f(x−Δx)(Centered Difference)
หากต้องการประมาณอนุพันธ์อันดับสองของ f, คือ f′′(x) ให้นำสมการเทย์เลอร์ทั้งสองมาบวกกัน จะได้:
f′′(x)≈(Δx)2f(x+Δx)−2f(x)+f(x−Δx)(Centered Second Difference)
เมื่อได้ทำอนุพันธ์ให้ไม่ต่อเนื่องในบริบทเชิงหนึ่งมิติแล้ว ขั้นต่อไปคือการทำโดเมนของสมการความร้อนให้ไม่ต่อเนื่อง
ฟังก์ชัน u ตอนนี้จะเป็นฟังก์ชันของตัวแปรจริงสองตัวคือ x และ t ซึ่งแสดงถึงตำแหน่งและเวลา ตามลำดับ ฟังก์ชัน u(x,t) จึงสามารถตีความได้ว่าเป็นปริมาณความร้อน ณ จุดใดจุดหนึ่งตามแท่งเหล็กแบบหนึ่งมิติ
เราสามารถแบ่งแท่งเหล็กแบบ 1 มิติออกเป็นจุด xi จำนวน N จุด และแบ่งเวลาออกเป็น tn จำนวน M จุด โดยใช้ระยะเวลาคงที่ Δt ระหว่างแต่ละช่วงเวลา
ค่าประมาณ uin ของ u(xi,tn) จะให้โดย:
uin≈u(xi,tn)
โดยที่ดัชนีบน n ไม่ได้แปลว่ากำลังของ u หรืออนุพันธ์อันดับที่ n แต่หมายถึงค่าของฟังก์ชัน u ณ เวลา tn
ดังนั้น การประมาณอนุพันธ์ที่กล่าวไปข้างต้นสามารถเขียนในรูปของผลต่างจำกัดได้เป็น:
Forward difference (เวลา):
∂t∂u≈Δtuin+1−uin
Backward difference (เวลา):
∂t∂u≈Δtuin−uin−1
Centered difference (พื้นที่):
∂x∂u≈2Δxui+1n−ui−1n
Centered second difference (พื้นที่):
∂x2∂2u≈(Δx)2ui+1n−2uin+ui−1n
เมื่อความแตกต่าง (difference) เหล่านี้เป็นการประมาณค่าโดยธรรมชาติ เราจึงควรตั้งคำถามว่าความผิดพลาดอาจเกิดขึ้นอย่างไรในคำตอบโดยรวม
โดยทั่วไป ความผิดพลาดที่เกิดขึ้นแบ่งได้เป็น 2 ประเภท คือ:
ในบทความถัดไป สมการความร้อนจะถูกแก้ด้วยวิธีเชิงตัวเลข และเราจะเห็นว่าความผิดพลาดจากการตัดทอนสามารถสะสมได้อย่างรวดเร็ว หากไม่มีการกำหนดเงื่อนไขที่เหมาะสม
อ้างอิง : Derivative Approximation via Finite Difference Methods
จาก https://www.quantstart.com/articles/Derivative-Approximation-via-Finite-Difference-Methods/
2025-01-10 10:12:01
2024-06-10 03:19:31
2024-05-31 03:06:49
2024-05-28 03:09:25
บทความที่น่าสนใจอื่นๆยังมีอีกมากลองเลืือกดูจากด้านล่างนี้ได้นะครับ
2024-08-26 09:52:07
2025-04-17 04:38:14
2023-09-06 11:07:28
2024-03-25 09:26:59
2024-09-23 02:40:36
2024-04-22 03:07:16
2024-03-08 03:22:15
2023-10-11 09:45:12
2024-02-02 02:51:13