การใช้งานที่ดีที่สุดของการแยก Strang (สำหรับสมการการกระจายปฏิกิริยา)


9

ฉันสังเกตอย่างประหลาดขณะคำนวณวิธีแก้ปัญหาไปยังสมการการแพร่กระจายปฏิกิริยา 1D แบบง่าย:

ta=2x2aab

tb=ab

tc=a

ค่าเริ่มต้นของคือค่าคงที่ ( ) และฉันสนใจอินทิกรัลมากกว่าตั้งแต่ถึง ( ) วัตถุประสงค์ของและสมการเป็นเพียงการประเมินอินทิกรัลนี้bb(0,x)=b0a0101a(t,x)dtctc=a

ฉันใช้รูปแบบการแยก Strang สำหรับการมีเพศสัมพันธ์ระหว่างการแพร่และปฏิกิริยา (ปฏิกิริยาครึ่งขั้นตอนจากนั้นเป็นการแพร่กระจายแบบเต็มขั้นตอนและจากนั้นอีกครึ่งปฏิกิริยาแบบขั้นตอน) แผน Crank Nicholson สำหรับการแพร่และโซลูชันการวิเคราะห์สำหรับปฏิกิริยา ( รวมถึงสมการ )tc=a

เนื่องจากหนึ่งขั้นตอนของโซลูชันการวิเคราะห์เป็นมากกว่า 3 ปัจจัยที่ช้ากว่าหนึ่งขั้นตอนของแผนการ Crank Nicholson ฉันจึงพยายามทำมากกว่าหนึ่งขั้นตอนของ Crank Nicholson สำหรับแต่ละขั้นตอนของปฏิกิริยา ฉันหวังว่าจะได้ผ่านขั้นตอนที่น้อยลงของแผนการแบ่ง Strang เพื่อที่ฉันจะได้เร็วขึ้นโดยรวม

อย่างไรก็ตามผลตรงกันข้ามสามารถสังเกตได้คือจำเป็นต้องใช้ขั้นตอนมากขึ้นสำหรับการแบ่ง Strang หากใช้ขั้นตอน Crank Nicholson มากกว่าหนึ่งขั้น (ฉันเกี่ยวข้องเฉพาะกับความถูกต้องของหนึ่งในช่วงซึ่งดูเหมือนว่าจะมาบรรจบกันได้เร็วกว่าตัวเอง.) หลังจากที่สงสัยว่าบางครั้งผมสังเกตเห็นว่าผลเช่นเดียวกันยังเกิดขึ้นสำหรับและฉันก็เข้าใจว่าทำไมในกรณีนี้ ประเด็นก็คือว่าถ้าฉันทำหนึ่งขั้นตอน Crank Nicholson แล้วรูปแบบโดยรวมจะเปลี่ยนเป็นกฎสี่เหลี่ยมคางหมู (ถ้า )aab(t,x)=b0=0b(t)=0

ดังนั้นถ้าฉันจะปฏิบัติต่อเป็นส่วนหนึ่งของขั้นตอนการแพร่การเพิ่มจำนวนของขั้นตอน Crank Nicholson (อาจ) จะไม่ทำให้ความแม่นยำโดยรวมลดลง (เท่าที่สังเกต) แต่ดูเหมือนว่าจะเอาชนะวัตถุประสงค์ของการใช้โซลูชันการวิเคราะห์สำหรับส่วนปฏิกิริยา (ไม่เชิงเส้นและแข็งมาก) ของระบบtc=a

ดังนั้นนี่คือคำถามของฉัน: มีวิธีที่ดีกว่าในการรักษาในบริบทของการแยก Strang มากกว่าที่จะถือว่าเป็นส่วนหนึ่งของขั้นตอนการเกิดปฏิกิริยาหรือ มันเป็นส่วนหนึ่งของขั้นตอนการแพร่กระจาย ฉันต้องการหลีกเลี่ยงการถูก "บังคับ" ให้ใช้ขั้นตอน Crank Nicholson เพียงจุดเดียวสำหรับการแพร่กระจาย (ตัวอย่างเช่นใน 3D ฉันต้องการแก้ไขการแพร่กระจายโดย FFT แทนที่จะใช้ Crank Nicholson แน่นอนว่าฉันสามารถรวม FFT กับ Crank Nicholson ได้ด้วยดังนั้นจึงไม่ใช่เรื่องใหญ่อะไร)tc=a


ในpeople.maths.ox.ac.uk/dellar/OperatorLB.htmlดูเหมือนว่าจะอธิบายถึงลักษณะพิเศษที่คล้ายกัน บทสรุปคือมันสำคัญมากที่จะต้องใช้ Crank Nicholson แทนที่จะใช้วิธีแก้ปัญหาที่แน่นอน ดังนั้นบางทีคำตอบสำหรับคำถามของฉันอาจไม่ง่าย
โทมัสคลิมเพล

มีบางอย่างผิดปกติกับสมการของคุณ ไม่ปรากฏในสองคนแรกที่ทำให้การคัปปลิ้งทางเดียวและความหมายที่คุณสามารถคำนวณที่ใด ๆเป็นขั้นตอนหลังการประมวลผล cct
Bill Barth

@BillBarth ผมเปลี่ยนคำถามเพื่อชี้แจงบทบาทของคดังนั้นเป็นเพียงวิธีการคำนวณ\โปรดแจ้งให้เราทราบหากคุณมีข้อเสนอแนะใด ๆ ในการคำนวณอินทิกรัลนี้แม่นยำมากขึ้น (มากกว่าที่ฉันได้รับจากการรวมกันของ Strang splitting และ Crank Nicholson ตามที่อธิบายไว้ข้างต้น) อาจใช้ขั้นตอนหลังการประมวลผล cc01a(t,x)dt
Thomas Klimpel

นี่เป็นเวลานานแล้ว แต่คุณรู้หรือไม่ว่าระบบสมการนี้สามารถเขียนเป็นพาราโบลา PDE ในโดยมีเทอมปฏิกิริยาชี้แจง ฉันเดาว่าถ้าคุณต้องการแก้ปัญหาระบบ 3 ตัวแปรนี้แทนระบบที่ง่ายกว่านี้ c
Bill Barth

@BillBarth ฉันสนใจที่จะเรียนรู้ว่าระบบนี้สามารถเขียนเป็น PDE แบบพาราโบลาพร้อมกับคำตอบแบบเอ็กซ์โปเนนเชียลได้อย่างไร ความเร็วของการแก้ปัญหาของรุ่นนี้เป็นปัจจัย จำกัด ในระหว่างการสอบเทียบโมเดล (ซึ่งอาจใช้เวลาหลายชั่วโมง) ดังนั้นความแม่นยำที่ใช้กับการรวมเวลานั้นค่อนข้างไกลจากการบรรจบกันอย่างสมบูรณ์
โทมัสคลิมเพล

คำตอบ:


6

ฉันจะเขียนคำตอบนี้เป็นคำตอบแม้ว่าจะไม่ได้ตอบคำถามโดยตรง

เสียบสมการที่สองและสมการที่สามเข้ากับที่หนึ่งและเสียบที่สามเข้ากับที่สองพร้อมกันให้: จัดเรียงใหม่ทั้งสองให้: ตอนนี้เราสามารถรวมทั้งสองสิ่งนี้เข้าด้วยกันในทิ้งไว้ สมการแรก:

2ct2=2x2ct+btbt=(ct)b
t(ct2cx2b)=01b(bt)=ct
t
ct2cx2=b+A(x)
การใช้สมการที่สามเราสามารถแสดง "คงที่" ของการรวม เป็นx สมการที่สองค่อนข้างยุ่งยากกว่าเล็กน้อย เขียนใหม่เรามี: สิ่งนี้นำไปสู่การแก้ปัญหา หรือ Exponentiating ให้: และในที่สุดก็เสียบนี่เข้าไปใน PDE สำหรับจะช่วยให้ A(x)=a02c0x2b0
0t1b(x,t)(b(x,t)t)dt=0tc(x,t)tdt
lnb(x,t)lnb0(x)=c(x)+c0(x)
lnbb0=c+c0
b=b0ec0c
c
ct2cx2=b0ec0c+A(x)

การแทนที่โดยหรือเทียบเท่าโดยใช้เงื่อนไขเริ่มต้นสมการนี้จะลดความซับซ้อนของ ทีนี้คุณควรจะสามารถค้นหาวรรณกรรมจำนวนมากเกี่ยวกับวิธีที่ดีที่สุดในการแก้สมการนี้ ฉันไม่รู้ว่า Crank-Nicholson เป็นตัวเลือกที่ดีสำหรับคำที่อธิบายหรือไม่ แต่มันก็น่าเชื่อถือ ควรใช้ความระมัดระวังเพื่อรับประกันว่าทุกหนทุกแห่งหรือทางออกอาจระเบิดอย่างรวดเร็วccc0c0(x)=0

ct=2cx2+a0(1ec)b0
c>c0

ฉันแค่เดินผ่านจุดกำเนิดนี้สองครั้งดังนั้นอาจมีข้อผิดพลาดหรือสองครั้งในนั้น แต่มันมีความรู้สึกที่ถูกต้องสำหรับฉัน ถ้าทุกหนทุกแห่งนี่เป็นคำตอบที่ถูกต้องชัดเจนและมันมีความน่าเชื่อถือเป็นอย่างอื่นb0=0

การแก้ปัญหานี้จนกระทั่งและการประเมินควรให้คำตอบที่คุณต้องการt=1c(x,1)


ขอบคุณมากสำหรับคำตอบนี้ ฉันพบว่ามันค่อนข้างสว่างอย่างน้อยก็ทำให้ฉันเข้าใจ / คาดการณ์พฤติกรรมของโซลูชันได้ง่ายขึ้น ข้อดีอีกอย่างคือวิวัฒนาการเวลาของช้ากว่าวิวัฒนาการเวลาของดังนั้นฉันค่อนข้างมองในแง่ดีว่าการลู่เข้าจะดีกว่าเมื่อก่อน ca
Thomas Klimpel

ไม่มีปัญหา. ฉันจู้จี้กับฉันหลังจากการแลกเปลี่ยนความคิดเห็นครั้งแรกของเรา ฉันหวังว่ามันจะเป็นประโยชน์
Bill Barth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.