กลับไปหน้าบทความ

อ่าน 19 นาที

การบูรณาการ Verlet

การอินทิเกรตแบบ Verlet ( การออกเสียงภาษาฝรั่งเศส: [vɛʁˈlɛ] ) เป็นวิธีการเชิงตัวเลขที่ใช้ใน การอินทิ เกรตสมการการเคลื่อนที่ ของนิวตัน [ 1 ] มัก ใช้ในการคำนวณ วิถี การเคลื่อนที่...

การบูรณาการ Verlet

การอินทิเกรตแบบ Verlet ( การออกเสียงภาษาฝรั่งเศส: [vɛʁˈlɛ] ) เป็นวิธีการเชิงตัวเลขที่ใช้ในการอินทิเกรตสมการการเคลื่อนที่ของนิวตัน [ 1 ] มักใช้ในการคำนวณ วิถี การเคลื่อนที่ของอนุภาคใน การจำลอง พลศาสตร์ โมเลกุล และกราฟิกคอมพิวเตอร์อัลกอริทึมนี้ถูกใช้ครั้งแรกในปี 1791 โดยJean Baptiste Delambreและได้รับการค้นพบใหม่หลายครั้งนับตั้งแต่นั้นมา โดยล่าสุดโดยLoup Verletในช่วงทศวรรษ 1960 เพื่อใช้ในพลศาสตร์โมเลกุล นอกจากนี้ยังถูกใช้โดยPH CowellและACC Crommelinในปี 1909 เพื่อคำนวณวงโคจรของดาวหางฮัลเลย์และโดยCarl Størmerในปี 1907 เพื่อศึกษาเส้นทางการเคลื่อนที่ของอนุภาคไฟฟ้าในสนามแม่เหล็ก (ดังนั้นจึงเรียกอีกอย่างว่าวิธีของ Størmer ) [ 2 ] ตัวรวม Verlet ให้ความเสถียรเชิงตัวเลข ที่ดี รวมถึงคุณสมบัติอื่นๆ ที่สำคัญในระบบทางกายภาพเช่นการย้อนกลับของเวลาและการรักษารูปแบบซิมเพล็กติกบนปริภูมิเฟสโดย ไม่มีต้นทุนการคำนวณเพิ่มเติมอย่างมีนัยสำคัญเมื่อเทียบกับวิธี Euler แบบง่าย

Størmer–Verlet พื้นฐาน

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

  1. ชุด,
  2. สำหรับn = 1, 2, ... ทำซ้ำ

สมการการเคลื่อนที่

สมการการเคลื่อนที่ของนิวตันสำหรับระบบทางกายภาพแบบอนุรักษ์คือ หรือแยกเป็นรายบุคคล โดยที่

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

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

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

การอินทิเกรตแบบเวอร์เลต์ (โดยไม่ใช้ความเร็ว)

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

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

การอินทิเกรต Verletในรูปแบบที่ใช้เป็นวิธีการ Størmer [ 3 ]ใช้สมการนี้เพื่อหาเวกเตอร์ตำแหน่งถัดไปจากสองเวกเตอร์ก่อนหน้าโดยไม่ต้องใช้ความเร็ว

ข้อผิดพลาดในการแบ่งส่วนย่อย

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

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

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

ตัวอย่างง่ายๆ

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

Consider the linear differential equation with a constant . Its exact basis solutions are and .

The Størmer method applied to this differential equation leads to a linear recurrence relation or It can be solved by finding the roots of its characteristic polynomial . These are The basis solutions of the linear recurrence are and . To compare them with the exact solutions, Taylor expansions are computed: The quotient of this series with the exponential starts with , so From there it follows that for the first basis solution the error can be computed as That is, although the local discretization error is of order 4, due to the second order of the differential equation the global error is of order 2, with a constant that grows exponentially in time.

Starting the iteration

Note that at the start of the Verlet iteration at step , time , computing , one already needs the position vector at time . At first sight, this could give problems, because the initial conditions are known only at the initial time . However, from these the acceleration is known, and a suitable approximation for the position at the first time step can be obtained using the Taylor polynomial of degree two:

The error on the first time step then is of order . This is not considered a problem because on a simulation over a large number of time steps, the error on the first time step is only a negligibly small amount of the total error, which at time is of the order , both for the distance of the position vectors to as for the distance of the divided differences to . Moreover, to obtain this second-order global error, the initial error needs to be of at least third order.

Non-constant time differences

A disadvantage of the Størmer–Verlet method is that if the time step () changes, the method does not approximate the solution to the differential equation. This can be corrected using the formula[4]

A more exact derivation uses the Taylor series (to second order) at for times and to obtain after elimination of so that the iteration formula becomes

Computing velocities – Størmer–Verlet method

ในสมการพื้นฐานของ Størmer นั้นไม่ได้ระบุความเร็วไว้อย่างชัดเจน แต่บ่อยครั้งที่จำเป็นต้องใช้ความเร็วในการคำนวณปริมาณทางกายภาพ บางอย่าง เช่นพลังงานจลน์ซึ่งอาจก่อให้เกิดความท้าทายทางเทคนิคใน การจำลอง พลศาสตร์โมเลกุลเนื่องจากพลังงานจลน์และอุณหภูมิ ณ เวลาใดเวลาหนึ่งจะไม่สามารถคำนวณได้สำหรับระบบจนกว่าจะทราบตำแหน่ง ณ เวลาใดเวลาหนึ่งข้อบกพร่องนี้สามารถแก้ไขได้โดยใช้ อัลกอริทึม ความเร็ว Verletหรือโดยการประมาณความเร็วโดยใช้พารามิเตอร์ตำแหน่งและทฤษฎีบท ค่าเฉลี่ย

โปรดสังเกตว่าพจน์ความเร็วนี้ล้าหลังพจน์ตำแหน่งไปหนึ่งขั้น เนื่องจากเป็นความเร็ว ณ เวลาt ไม่ใช่t_p ซึ่งหมายความว่าเป็นค่าประมาณอันดับสองของt_p ด้วยเหตุผลเดียวกัน แต่ลดช่วงเวลาลงครึ่งหนึ่งจะได้ เป็นค่าประมาณอันดับสองของt_p โดยที่ t_p = 0

เราสามารถลดช่วงเวลาลงเพื่อประมาณความเร็ว ณ เวลาดังกล่าวได้ แต่จะแลกมาด้วยความแม่นยำที่ลดลง:

เวโลซิตี้ เวอร์เลต์

อัลกอริทึมที่เกี่ยวข้องและใช้กันทั่วไปมากกว่าคืออัลกอริทึมความเร็ว Verlet [ 5 ]ซึ่งคล้ายกับวิธี leapfrogยกเว้นว่าความเร็วและตำแหน่งจะถูกคำนวณที่ค่าเดียวกันของตัวแปรเวลา (leapfrog ไม่ได้ทำเช่นนั้น ดังที่ชื่อบ่งบอก) วิธีนี้ใช้แนวทางที่คล้ายกัน แต่รวมความเร็วไว้อย่างชัดเจน ซึ่งแก้ปัญหาของขั้นตอนเวลาแรกในอัลกอริทึม Verlet พื้นฐาน:

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

  1. คำนวณ​
  2. คำนวณ​
  3. ได้มาจากศักยภาพการปฏิสัมพันธ์โดยใช้.
  4. คำนวณ​

อัลกอริทึมนี้ยังใช้งานได้กับช่วงเวลาที่แปรผันได้ และเหมือนกับรูปแบบ การ ผสานรวม แบบ 'เตะ-เลื่อน-เตะ' ทุกประการ

หากตัดความเร็วครึ่งก้าวออกไป อัลกอริทึมนี้สามารถย่อให้สั้นลงได้ดังนี้

  1. คำนวณ​
  2. ได้มาจากศักยภาพการปฏิสัมพันธ์โดยใช้.
  3. คำนวณ​

อย่างไรก็ตาม โปรดทราบว่าอัลกอริทึมนี้ตั้งอยู่บนสมมติฐานว่าความเร่งขึ้นอยู่กับตำแหน่งเท่านั้นและไม่ขึ้นอยู่กับความเร็ว

อาจกล่าวได้ว่าผลลัพธ์ระยะยาวของวิธี Velocity Verlet และวิธี Leapfrog นั้นดีกว่าวิธี Semi-Implicit Euler อยู่หนึ่งอันดับ อัลกอริทึมทั้งสองแทบจะเหมือนกันทุกประการ ยกเว้นการเลื่อนความเร็วไปครึ่งช่วงเวลา สามารถพิสูจน์ได้โดยการหมุนลูปข้างต้นให้เริ่มต้นที่ขั้นตอนที่ 3 แล้วสังเกตว่าพจน์ความเร่งในขั้นตอนที่ 1 สามารถกำจัดได้โดยการรวมขั้นตอนที่ 2 และ 4 เข้าด้วยกัน ความแตกต่างเพียงอย่างเดียวคือความเร็ว ณ จุดกึ่งกลางในวิธี Velocity Verlet ถือเป็นความเร็วสุดท้ายในวิธี Semi-Implicit Euler

ข้อผิดพลาดโดยรวมของวิธีการออยเลอร์ทั้งหมดมีลำดับที่หนึ่ง ในขณะที่ข้อผิดพลาดโดยรวมของวิธีการนี้คล้ายกับวิธีการจุดกึ่งกลางมีลำดับที่สอง นอกจากนี้ หากความเร่งเกิดจากแรงในระบบกลไกอนุรักษ์หรือระบบแฮมิลโทเนียนพลังงานของการประมาณจะแกว่งไปมารอบ ๆ พลังงานคงที่ของระบบที่แก้ได้อย่างแม่นยำ โดยมีขอบเขตข้อผิดพลาดโดยรวมอีกครั้งที่มีลำดับที่หนึ่งสำหรับออยเลอร์แบบกึ่งชัดเจนและลำดับที่สองสำหรับเวอร์เลต์-ลีปฟร็อก เช่นเดียวกันนี้ใช้ได้กับปริมาณอนุรักษ์อื่น ๆ ทั้งหมดของระบบ เช่นโมเมนตัมเชิงเส้นหรือเชิงมุมซึ่งจะถูกอนุรักษ์ไว้เสมอหรือเกือบจะถูกอนุรักษ์ไว้ใน ตัวรวมเชิงซิ มเพล็กติก[ 6 ]

วิธี Velocity Verlet เป็นกรณีพิเศษของวิธี Newmark-betaโดยมี และ

การนำเสนอเชิงอัลกอริทึม

เนื่องจาก อัลกอริทึม Velocity Verletมีประโยชน์โดยทั่วไปในการใช้งาน 3 มิติ ดังนั้นวิธีแก้ปัญหาที่เขียนด้วยภาษา C++ จึงอาจมีลักษณะดังต่อไปนี้ การรวมตำแหน่งแบบนี้จะช่วยเพิ่มความแม่นยำในการจำลองและเกม 3 มิติได้อย่างมาก เมื่อเทียบกับวิธี Euler ทั่วไป

โครงสร้างร่างกาย{Vec3d pos { 0.0 , 0.0 , 0.0 };Vec3d vel { 2.0 , 0.0 , 0.0 }; // 2 เมตร/วินาที ตามแกน xVec3d acc { 0.0 , 0.0 , 0.0 }; // ไม่มีการเร่งความเร็วในตอนแรกมวลสองเท่า= 1.0 ; // 1 กก./** * อัปเดตตำแหน่งและความเร็วโดยใช้การผสานรวม "Velocity Verlet" * @param dt DeltaTime / ขั้นตอนเวลา [เช่น: 0.01] */void update ( double dt ){Vec3d new_pos = pos + vel * dt + acc * ( dt * dt * 0.5 );Vec3d new_acc = apply_forces ();Vec3d new_vel = vel + ( acc + new_acc ) * ( dt * 0.5 );pos = new_pos ;vel = new_vel ;acc = new_acc ;}/** * หากต้องการกำหนดความเร็วให้กับวัตถุ ให้คำนวณเวกเตอร์แรงที่ต้องการแทน * และนำแรงสะสมทั้งหมดมาใช้ที่นี่ */Vec3d apply_forces () const{Vec3d new_acc = Vec3d { 0.0 , 0.0 , -9.81 }; // 9.81 m/s² ลงในแกน z// ใช้แรงอื่นๆ ตามที่ต้องการ...// หมายเหตุ: หลีกเลี่ยงการพึ่งพาตัวแปร `vel` เนื่องจาก Velocity Verlet ถือว่าความเร่งขึ้นอยู่กับตำแหน่งคืนค่าnew_acc ;}};

เงื่อนไขข้อผิดพลาด

ข้อผิดพลาดการตัดทอนโดยรวมของวิธี Verlet คือทั้งสำหรับตำแหน่งและความเร็ว ซึ่งแตกต่างจากข้อผิดพลาดเฉพาะที่ในตำแหน่งซึ่งมีค่าเพียงตามที่ได้อธิบายไว้ข้างต้น ความแตกต่างนี้เกิดจากการสะสมของข้อผิดพลาดการตัดทอนเฉพาะที่ตลอดการวนซ้ำทั้งหมด

ข้อผิดพลาดโดยรวมสามารถหาได้จากข้อสังเกตดังต่อไปนี้:

และ

ดังนั้น

ในทำนองเดียวกัน:

ซึ่งสามารถสรุปได้โดยทั่วไปดังนี้ (สามารถแสดงได้โดยการอุปมาน แต่ในที่นี้ให้ไว้โดยไม่มีการพิสูจน์):

หากเราพิจารณาข้อผิดพลาดโดยรวมในตำแหน่งระหว่างและโดยที่ จะเห็นได้ชัดว่า

ดังนั้น ข้อผิดพลาดโดยรวม (สะสม) ในช่วงเวลาคงที่จึงกำหนดโดย

เนื่องจากความเร็วถูกกำหนดในลักษณะที่ไม่สะสมจากตำแหน่งในตัวรวม Verlet ดังนั้นข้อผิดพลาดโดยรวมของความเร็วจึงเป็น เช่นกัน

ในการจำลองพลศาสตร์โมเลกุล ข้อผิดพลาดโดยรวมมักมีความสำคัญมากกว่าข้อผิดพลาดเฉพาะจุด ดังนั้นตัวรวมแบบเวอร์เลต์จึงถูกเรียกว่าตัวรวมอันดับสอง

ข้อจำกัด

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

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

การอินทิเกรตแบบเวอร์เลต์มีประโยชน์เพราะมันเชื่อมโยงแรงกับตำแหน่งโดยตรง แทนที่จะแก้ปัญหาโดยใช้ความเร็ว

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

เมื่อประมาณค่าข้อจำกัดในระดับท้องถิ่นถึงอันดับแรก วิธีนี้จะเหมือนกับวิธี Gauss–Seidelสำหรับเมทริกซ์ขนาด เล็ก การแยกตัวประกอบ LU นั้นเร็ว กว่าระบบขนาดใหญ่สามารถแบ่งออกเป็นกลุ่ม (ตัวอย่างเช่นตุ๊กตาผ้า แต่ละตัว  = กลุ่ม) ภายในกลุ่มจะใช้วิธี LU ระหว่างกลุ่มจะ ใช้ วิธี Gauss–Seidelโค้ดเมทริกซ์สามารถนำกลับมาใช้ใหม่ได้: ความสัมพันธ์ของแรงกับตำแหน่งสามารถประมาณค่าได้ในระดับท้องถิ่นถึงอันดับแรก และการอินทิเกรตแบบ Verlet สามารถทำให้เป็นแบบแฝงได้มากขึ้น

ซอฟต์แวร์ที่ซับซ้อน เช่น SuperLU [ 7 ]มีอยู่เพื่อแก้ปัญหาที่ซับซ้อนโดยใช้เมทริกซ์แบบเบาบาง เทคนิคเฉพาะ เช่น การใช้เมทริกซ์ (คลัสเตอร์ของเมทริกซ์) อาจใช้เพื่อแก้ไขปัญหาเฉพาะ เช่น ปัญหาของแรงที่แพร่กระจายผ่านแผ่นผ้าโดยไม่ก่อให้เกิดคลื่นเสียง[ 8 ]

อีกวิธีหนึ่งในการแก้ปัญหาข้อจำกัดแบบโฮโลโนมิกคือการใช้อัลกอริธึมข้อจำกัด

ปฏิกิริยาการชน

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

การคำนวณแบบ Verlet จะจัดการกับความเร็วที่เกิดจากการชนในกรณีหลังโดยอัตโนมัติ อย่างไรก็ตาม โปรดทราบว่าไม่รับประกันว่าจะทำในลักษณะที่สอดคล้องกับหลักฟิสิกส์ของการชน (กล่าวคือ การเปลี่ยนแปลงโมเมนตัมไม่รับประกันว่าจะสมจริง) แทนที่จะเปลี่ยนค่าความเร็วโดยปริยาย เราจำเป็นต้องควบคุมความเร็วสุดท้ายของวัตถุที่ชนกันอย่างชัดเจน (โดยการเปลี่ยนตำแหน่งที่บันทึกไว้จากขั้นตอนเวลาที่ผ่านมา)

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

ดูเพิ่มเติม

วรรณกรรม

  1. ^ Verlet, Loup (1967). "การทดลองด้วยคอมพิวเตอร์เกี่ยวกับของไหลแบบคลาสสิก I. คุณสมบัติทางเทอร์โมไดนามิกของโมเลกุล Lennard−Jones" . Physical Review . 159 (1): 98– 103. Bibcode : 1967PhRv..159...98V . doi : 10.1103/PhysRev.159.98 .
  2. ^ Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "ส่วนที่ 17.4 สมการอนุรักษ์อันดับสอง" . สูตรเชิงตัวเลข: ศิลปะแห่งการคำนวณทางวิทยาศาสตร์ (ฉบับที่ 3). นิวยอร์ก: สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์. ISBN 978-0-521-88068-8.
  3. ^เว็บเพจนี้ถูกเก็บถาวรเมื่อวันที่ 3 สิงหาคม 2547 ที่ Wayback Machineพร้อมคำอธิบายเกี่ยวกับวิธีการของ Størmer
  4. ^ดัมเมอร์, โจนาธาน. "วิธีการอินทิเกรตเวอร์เลต์แบบปรับเวลาอย่างง่าย" . เก็บถาวรจากต้นฉบับเมื่อ 2020-01-06 . เรียกดูเมื่อ2014-02-26 .
  5. ^ Swope, William C.; HC Andersen; PH Berens; KR Wilson (1 มกราคม 1982). "วิธีการจำลองด้วยคอมพิวเตอร์สำหรับการคำนวณค่าคงที่สมดุลสำหรับการก่อตัวของกลุ่มโมเลกุลทางกายภาพ: การประยุกต์ใช้กับกลุ่มโมเลกุลน้ำขนาดเล็ก" วารสารเคมีฟิสิกส์ 76 ( 1): 648 (ภาคผนวก). Bibcode : 1982JChPh..76..637S . doi : 10.1063/1.442716 .
  6. แฮร์เออร์, เอิร์นส์; ลูบิช, คริสเตียน; แวนเนอร์, เกฮาร์ด (2003) "การอินทิเกรตเชิงตัวเลขทางเรขาคณิตที่แสดงโดยวิธีสโตร์เมอร์/แวร์เล็ต" แอคต้า นูเมริก้า . 12 : 399– 450. Bibcode : 2003AcNum..12..399H . CiteSeerX 10.1.1.7.7106ดอย : 10.1017/S0962492902000144 . S2CID 122016794 .  
  7. ^คู่มือผู้ใช้ SuperLU เก็บถาวรเมื่อ 2011-07-20 ที่Wayback Machine
  8. ^ Baraff, D.; Witkin, A. (1998). "ขั้นตอนขนาดใหญ่ในการจำลองผ้า" (PDF) . Computer Graphics Proceedings . Annual Conference Series: 43– 54.
  • การสาธิตการผสานรวม Verlet และโค้ดในรูปแบบ Java Applet
  • ฟิสิกส์ตัวละครขั้นสูง โดย โทมัส จาคอบเซน
  • ทฤษฎีการจำลองพลศาสตร์โมเลกุลถูกเก็บถาวรเมื่อวันที่ 26 เมษายน 2549 ที่Wayback Machine – ด้านล่างของหน้า
  • การผสานรวม Verlet ที่พัฒนาด้วย JavaScript สมัยใหม่ – ด้านล่างของหน้า

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Verlet_integration&oldid=1334248551 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การบูรณาการ Verlet

การอินทิเกรตแบบ Verlet ( การออกเสียงภาษาฝรั่งเศส: [vɛʁˈlɛ] ) เป็นวิธีการเชิงตัวเลขที่ใช้ใน การอินทิ เกรตสมการการเคลื่อนที่ ของนิวตัน [ 1 ] มัก ใช้ในการคำนวณ วิถี การเคลื่อนที่...

Størmer–Verlet พื้นฐาน

สำหรับ สมการเชิงอนุพันธ์อันดับสอง ประเภทที่มีเงื่อนไขเริ่มต้นและสามารถหา คำตอบเชิงตัวเลขโดยประมาณณ เวลา ที่มีขนาดขั้นตอน ได้ โดยใช้วิธีต่อไปนี้: x ¨ ( ที ) = เอ ( x ( ที ) ) {\displaystyle {\ddot {\mathbf {x} }}(t)=\mathbf {A} {\bigl (}\mathbf {x} (t){\bigr...

สมการการเคลื่อนที่

สมการการเคลื่อนที่ของนิวตันสำหรับระบบทางกายภาพแบบอนุรักษ์คือ หรือแยกเป็นรายบุคคล โดยที่ M x ¨ ( t ) = F ( x ( t ) ) = − ∇ V ( x ( t ) ) , {\displaystyle {\boldsymbol {M}}{\ddot {\mathbf {x} }}(t)=F{\bigl (}\mathbf {x} (t){\bigr )}=-\nabla V{\bigl (}\mathbf...

การอินทิเกรตแบบเวอร์เลต์ (โดยไม่ใช้ความเร็ว)

ในการแปลง ปัญหาค่าเริ่มต้น นี้ให้เป็นแบบไม่ต่อเนื่องและแก้ปัญหาด้วยวิธี เชิงตัวเลข จะต้องเลือก ช่วงเวลาและพิจารณาลำดับจุดสุ่มตัวอย่างงานที่ต้องทำคือการสร้างลำดับจุดที่ติดตามจุดบนเส้นทางของคำตอบที่ถูกต้อง อย่างใกล้ชิด Δ t > 0 {\displaystyle \Delta t>0} t n = n...