ตัวเลข: ฉันจะปรับมาตรฐาน ODE ต่อไปนี้อย่างไร


9

คำถามนี้เป็นคำถามเพิ่มเติมเกี่ยวกับวิธีแก้ไขปัญหาเชิงตัวเลข

ในโครงการขนาดเล็กฉันต้องการจำลองท่าทางการเคลื่อนไหวของ Janus และ Epimetheus นี่เป็นปัญหาของร่างกายสามประการ ฉันเลือกดาวเสาร์ที่จะแก้ไขที่จุดเริ่มต้นปล่อยให้และเป็นเวกเตอร์ตำแหน่งของ janus และ epimetheus ตามลำดับ เนื่องจากผลกระทบที่เกิดขึ้นเมื่อเจนัสและ Epimetheus มีความใกล้ชิดกันฉันหยิบญาติพิกัดสำหรับการแก้ปัญหาที่ดีกว่าคือและRตอนนี้ฉันได้สมการการเคลื่อนที่ดังนี้r1r2r=r1r2R=r1+r2

d2dt2(Rr)=G(m2±m1)RR34MG(r+R(r+R)3rR(rR)3)

โดยที่miสอดคล้องกับมวลของดวงจันทร์Mคือมวลของดาวเสาร์และGค่าคงตัวโน้มถ่วง ปัญหาเกิดขึ้นเมื่อฉันพยายามที่จะแก้ปัญหานี้เป็นตัวเลข หนึ่งมีการจัดการกับค่านิยมของขนาดที่แตกต่างกันอย่างสิ้นเชิงคือMe28และmie17{17} และr , Rอยู่ในขอบเขต 0 ถึง 150,000

บอกตามตรงฉันไม่แน่ใจว่านี่เป็นฟอรัมสถานที่เพื่อพูดคุยเกี่ยวกับปัญหาเชิงตัวเลขหรือไม่

ข้อมูลมากกว่านี้:

รหัสถูกเขียนใน Matlab และฉันใช้ตัวแก้ ODE มาตรฐานเพื่อให้ได้ผลลัพธ์ อย่างไรก็ตามนี่เป็นการทำลายเนื่องจากขนาดขั้นตอนไม่สามารถลดลงได้ภายใต้ความแม่นยำของเครื่อง (ฉันพบว่าสิ่งนี้ไม่น่าแปลกใจเพราะต้องจัดการกับลำดับความสำคัญที่กล่าวถึงแล้ว)


2
คุณใช้การจำลองนี้ในหน่วย SI หรือไม่ อย่างน้อยที่สุดคุณควรแบ่งทุกอย่างผ่านปัจจัยบางอย่างของGm2เพื่อที่คุณจะได้กำจัดลำดับความสำคัญไม่กี่คำ

สวัสดีฉันนี้ แต่ก็ยังไม่ทำงาน ... ปัญหาเดียวกันเกิดขึ้นเหมือนก่อน :(

คุณต้องตั้งค่าหน่วยมวลของคุณเป็นหนึ่งในมวลของดวงจันทร์และหน่วยของความยาว / เวลาของคุณเพื่อตั้งค่าเป็น 1 ไม่ควรมีขนาดเล็กกว่า 1/100 ถ้าคุณเขียนได้ดี ไม่จำเป็นต้องใช้ตัวแก้ปัญหาแบบ over-the-counter เขียนรหัสเพื่อทำสิ่งนี้ด้วยตัวคุณเองโดยคุณสามารถควบคุมการปรับขนาดได้ การพังทลายในขั้นตอนที่มีศักยภาพประเภทนี้สามารถเกิดขึ้นได้ที่การชนกันโดยที่นักแก้ปัญหาจะพยายามลดขั้นตอนจนกระทั่งการบรรจบกันและในการปะทะกันไม่มีการลู่เข้า คุณต้องตรวจสอบให้แน่ใจว่าวงโคจรนั้นไม่ใช่ collinear ดังนั้นคุณต้องดูการจำลอง คุณไม่ได้รับคำตอบเหมือนที่เป็นอยู่
Ron Maimon

1
กรุณาหลีกเลี่ยงตัวย่อในชื่อ DGL = Differentialgleichung?

คุณใช้ตัวแก้ ODE มาตรฐานอะไร
Geoff Oxberry

คำตอบ:


2

วิธีการปัจจุบันของคุณทำลายความมั่นคงเชิงตัวเลข ในความเป็นจริงคุณอาจสูญเสียความละเอียดด้วยวิธีนี้

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


2

แทนที่จะใช้ตัวแก้ ODE แบบ "คลาสสิก" (แข็ง) คุณสามารถใช้อัลกอริธึมเฉพาะสำหรับการรวมตัวเลขเชิงเรขาคณิต ดูตัวอย่างหนังสือเล่มนี้และรหัส GNI คุณสามารถค้นหาบนเว็บไซต์ของแอนสท์ไฮเรอร์


0

ถ้าคุณมีสามขั้นตอนในการจำลองของคุณ:

  1. อัปเดตตำแหน่ง Janus โดยการคำนวณแรง Janus - Saturn
  2. อัปเดตตำแหน่ง Epimetheus โดยการคำนวณ Epimetheus - แรงของดาวเสาร์
  3. อัปเดตตำแหน่ง Janus และ Epimetheus โดยการคำนวณแรง Janus - Epimetheus

อาจใช้การกำหนดเวลาที่ละเอียดกว่าสำหรับ # 3

ฉันไม่แน่ใจว่าสิ่งนี้จะช่วยได้หรือไม่ ฉันคิดว่าปัญหาที่แท้จริงคือขนาดของกำลังแตกต่างกันในกรณีดวงจันทร์ - ดวงจันทร์และดวงจันทร์ - กรณีดาวเสาร์ยกเว้นว่าดวงจันทร์อยู่ใกล้หรือไม่?

อีกวิธีหนึ่งคือ:

  1. ถ้าดวงจันทร์อยู่ใกล้ให้คำนวณดวงจันทร์โดยประมาณ - แรงจากดาวเสาร์โดยใช้จุดศูนย์กลางมวลเวกเตอร์และอัปเดตตำแหน่งทั้งสองด้วยเวกเตอร์เดียวกัน
  2. หากอยู่ไกลกันให้อัพเดตแยกต่างหาก
  3. เหมือนก่อน.

ขอให้โชคดี!

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