2025-05-09 08:28:08
โพสต์นี้เป็นส่วนหนึ่งของบทความชุดเกี่ยวกับ Finite Difference Method (วิธีผลต่างจำกัด) ซึ่งประกอบด้วยหัวข้ออื่น ๆ ได้แก่:
ในบทความแรกของชุดนี้ ได้แสดงให้เห็นว่าอนุพันธ์ของฟังก์ชันต่อเนื่องสามารถประมาณได้บนโดเมนที่ไม่ต่อเนื่อง ขั้นตอนถัดไปคือการนำอนุพันธ์เหล่านี้ไปใช้กับสมการเชิงอนุพันธ์ย่อยแบบพาราโบลิก (parabolic PDE) ซึ่งสมการความร้อน (Heat Equation) เป็นตัวอย่างมาตรฐาน และเราจะทำให้สมการนี้ไม่ต่อเนื่อง (discretize)
สมการความร้อนแบบหนึ่งมิติ มีรูปแบบ:
∂u/∂t = D(∂2u/∂x2)
โดยที่ u(x,t) คืออุณหภูมิ ณ ตำแหน่ง x และเวลา t, D คือสัมประสิทธิ์การแพร่ (diffusivity)
เราจะประมาณอนุพันธ์:
ใช้ Forward Difference กับอนุพันธ์ตามเวลา:
∂u/∂t ≈ (uin+1−uin)/Δt
ใช้ Centered Difference อันดับสองกับอนุพันธ์ตามตำแหน่ง:
∂x2∂2u≈(Δx)2ui+1n−2uin+ui−1n
แทนค่าลงในสมการ จะได้:
Δtuin+1−uin=D⋅(Δx)2ui+1n−2uin+ui−1n
จัดรูปใหม่เพื่อหา uin+1:
uin+1=uin+(Δx)2DΔt(ui+1n−2uin+ui−1n)
ให้ α=(Δx)2DΔt จะได้:
uin+1=uin+α(ui+1n−2uin+ui−1n)
สมการนี้สามารถนำไปใช้คำนวณ uin+1 ได้โดยตรงจากค่าของ uin, ui−1n, และ ui+1n ที่ทราบอยู่แล้ว จึงเรียกว่าสมการ explicit
หากกำหนดเงื่อนไขเริ่มต้น เช่น ให้:
u0=[0,0,1,0,0,1,0,0,1,0,0]
โดยมี “ยอดคลื่นความร้อน” 3 จุด และเลือกพารามิเตอร์:
Δx=1,Δt=0.001,D=1⇒α=1⋅0.00112=0.001\Delta x = 1,\quad \Delta t = 0.001,\quad D = 1 \Rightarrow \alpha = \frac{1 \cdot 0.001}{1^2} = 0.001Δx=1,Δt=0.001,D=1⇒α=121⋅0.001=0.001
สามารถใช้สูตร:
Δx=1,Δt=0.001,D=1⇒α=121⋅0.001=0.001
เพื่อคำนวณค่าต่อเนื่องตามเวลาแบบ time marching
ถ้าเลือก Δt=0.01 จะได้ α=0.01 ซึ่งทำให้คำตอบสั่นอย่างรุนแรง:
เพื่อให้วิธี explicit นี้เสถียร ต้องใช้เงื่อนไข:
α=(Δx)2DΔt≤21
หากไม่เป็นไปตามนี้ คำตอบจะไม่เสถียรและอาจเป็นคลื่นผิดรูป
เลือก:
Δx=1,Δt=0.001,D=1⇒α=0.001≤0.5
สูตร:
uin+1=uin+0.001(ui+1n−2uin+ui−1n)
ผลลัพธ์จะ:
ไม่มีค่าเป็นลบ
สะท้อนลักษณะการแพร่ของความร้อนได้ถูกต้อง
แม้ว่าวิธี explicit นี้จะคำนวณง่าย แต่ข้อเสียสำคัญคือข้อจำกัดของ time step:
บทความถัดไปจะแนะนำ วิธีปริยาย เช่น Crank-Nicolson เพื่อหลีกเลี่ยงข้อจำกัดนี้
อ้างอิง : Solving the Diffusion Equation Explicitly
จาก https://www.quantstart.com/articles/Solving-the-Diffusion-Equation-Explicitly/
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-05-02 05:54:22
2024-03-27 04:42:48
2024-02-20 04:21:49
2024-11-06 10:46:00
2024-05-17 04:24:18
2023-10-03 04:52:47
2025-04-17 02:47:43
2025-04-17 04:38:14
2024-01-23 02:08:13