2
การสั่นที่แปลกเมื่อแก้สมการการพาโดยความแตกต่างอัน จำกัด ด้วยเงื่อนไขขอบเขตของ Neumann ที่ปิดสนิท (การสะท้อนที่ขอบเขต)
ฉันพยายามที่จะแก้สมการการพาความร้อน แต่มีความผันผวนที่แปลกประหลาดปรากฏขึ้นในการแก้ปัญหาเมื่อคลื่นสะท้อนจากขอบเขต หากใครได้เห็นสิ่งประดิษฐ์นี้ก่อนที่ฉันจะสนใจที่จะรู้สาเหตุและวิธีการหลีกเลี่ยง! นี่คือ gif แบบเคลื่อนไหวเปิดในหน้าต่างแยกต่างหากเพื่อดูภาพเคลื่อนไหว (มันจะเล่นเพียงครั้งเดียวหรือไม่พร้อมกันในทันที! ขอให้สังเกตว่าการขยายพันธุ์ดูเหมือนจะมีเสถียรภาพสูงจนกระทั่งคลื่นเริ่มสะท้อนจากขอบเขตแรก คุณคิดว่าจะเกิดอะไรขึ้นที่นี่ ฉันใช้เวลาสองสามวันในการตรวจสอบรหัสของฉันและไม่พบข้อผิดพลาดใด ๆ มันแปลกเพราะมันดูเหมือนจะมีวิธีแก้ปัญหาที่แพร่กระจายสองอย่าง: หนึ่งบวกและลบหนึ่ง หลังจากการสะท้อนจากขอบเขตแรก การแก้ปัญหาดูเหมือนว่าจะเดินทางไปตามจุดตาข่ายที่อยู่ติดกัน รายละเอียดการใช้งานมีดังนี้ สมการการพาความร้อน ∂u∂t=v∂u∂x∂u∂t=v∂u∂x\frac{\partial u}{\partial t} = \boldsymbol{v}\frac{\partial u}{\partial x} โดยที่คือความเร็วในการแพร่กระจายvv\boldsymbol{v} Crank-Nicolson เป็นdiscretization ที่ไม่มีเงื่อนไข (ลิงก์ pdf) ที่ มีเสถียรภาพสำหรับสมการการพาความร้อนที่ให้มีการเปลี่ยนแปลงอย่างช้าๆในอวกาศ (มีส่วนประกอบความถี่ต่ำเท่านั้นเมื่อแปลงฟูริเยร์)u(x)u(x)u(x) discretization ฉันได้ใช้คือ ϕn+1j−ϕnjΔt=v[1−β2Δx(ϕnj+1−ϕnj−1)+β2Δx(ϕn+1j+1−ϕn+1j−1)]ϕjn+1−ϕjnΔt=v[1−β2Δx(ϕj+1n−ϕj−1n)+β2Δx(ϕj+1n+1−ϕj−1n+1)] \frac{\phi_{j}^{n+1} - \phi_{j}^{n}}{\Delta t} = \boldsymbol{v} \left[ \frac{1-\beta}{2\Delta x} \left( \phi_{j+1}^{n} - \phi_{j-1}^{n} \right) …