आरके 4 ईयूल एकीकरण से बेहतर क्यों है? [बन्द है]


20

इन महान स्लाइड्स के अंत में , लेखक प्रस्तुत सभी अलग-अलग इंटीग्रेटर्स की तुलना करता है। एक रास्ता या दूसरा, वे सभी सुधरे हुए यूलर इंटीग्रेशन और रनगे कुट्टा 4 इंटीग्रेशन को छोड़कर कम हो जाते हैं , जो दोनों सभी टेस्ट पास करते हैं।

मुझे लगता है कि मैं उल्लेख करना चाहिए कि मैं एक 2 डी खेल उस पर काम कर रहा हूँ नहीं है बहुत भौतिकी गहन। मैं सिर्फ इस बात के लिए उत्सुक हूं कि इम्प्रूव्ड यूलर इंटीग्रेशन कहां कम होगा और इसकी जगह आरके 4 का इस्तेमाल करना होगा।

मेरे खेल में ज्यादातर साधारण गुरुत्वाकर्षण (कूदना और गिरना), एक्स और वाई एक्सिस के साथ आंदोलन और बाउंडिंग बॉक्स टक्कर शामिल हैं। क्या आरके 4 को लागू करना सार्थक है या इम्प्रूव्ड यूलर पर्याप्त होगा? मैं कई चर्चाएँ देखता हूँ जहाँ यूलर इंटीग्रेशन के उपयोगकर्ताओं का पीछा किया जाता है, लेकिन मैं जो देख सकता हूँ, उसमें से बेहतर यूलर सरल 2 डी मामलों में विवादास्पद है। मुझे लगता है कि यह भी तेज होगा।


अपमानजनक, लेकिन उन क्षेत्रों महान स्लाइड, उदाहरण और सभी के साथ बहुत स्पष्ट है। उस लिंक के लिए धन्यवाद!
रॉय टी।

यदि यह वास्तव में विषय से दूर है, तो शायद यह कम्प्यूटेशनल साइंस में एक अच्छा फिट होगा ।
डेविड जेड

इसके अलावा: टाइम-करेक्टेड वर्लेट इंटीग्रेशन - इम्प्रूव्ड यूलर के समान दिखता है: यह पता लगाने के लिए कि यह बिल्कुल वैसा ही है तो आलसी। टीसीवी महान है क्योंकि आप अपने निश्चित समय कदम के साथ उदार हो सकते हैं (अन्य इंटीग्रेटर्स एक निश्चित समय-चरण की गारंटी चाहते हैं)।
जोनाथन डिकिंसन

1
संपादित नहीं कर सकते: मैं देख रहा हूँ कि वह इसका उल्लेख करता है। मुझे यकीन नहीं है कि यदि उसका कार्यान्वयन लेख द्वारा उल्लिखित प्रारंभिक शर्तों की आवश्यकता के संदर्भ में किया गया है: लेकिन मैंने टीसीवी के अपने कार्यान्वयन के साथ उस गुरुत्वाकर्षण मुद्दे को कभी नहीं देखा है यदि मैं प्रारंभिक स्थितियों की सही गणना करता हूं।
जोनाथन डिकिंसन

जवाबों:


15

मैं व्यक्तिगत रूप से अधिकांश सिमुलेशन के लिए वेलोसिटी वेरलेट पसंद करता हूं । इस विधि के साथ मेरे अनुभव में, यह बहुत कड़े समीकरणों के लिए काफी उपयुक्त है। ऐसा लगता है कि यह "बेहतर यूलर" विधि वेलोसिटी वेरलेट एक के समान है और भविष्यवक्ता-सुधारक के रूप में ज्ञात एकीकरण विधियों के एक वर्ग पर निर्भर करता है । आप आजकल इन तरीकों पर बहुत सी चीजें पढ़ सकते हैं, डेविड बराक के "क्लॉथ सिमुलेशन में बड़े कदम" से शुरू होती है, जहां निहित तरीकों की शक्ति वास्तव में चमकती है। उनका पतन यह है कि आप:

  1. जैकोबियंस या हेसियन्स का अनुमान लगाना होगा और उसके बाद
  2. प्रति फ्रेम मैट्रिक्स की एक उचित मात्रा की गणना करें।

इसलिए यदि आप गणित गुरु नहीं हैं, तो आप अपनी उंगलियों को दबा सकते हैं। बस जो भी विधि आप चाहते हैं उसके साथ प्रयोग करें और फिर आपके लिए सबसे अच्छा प्रदर्शन करने वाले के लिए व्यवस्थित करें। सरल हमेशा बेहतर नहीं होता है, लेकिन इंटरैक्टिव फ्रैमरेट्स के लिए मैं केवल एक शब्द जानता हूं: समझौता।

कुछ अतिरिक्त संसाधन जिन्हें आप देखना चाहते हैं:

जकॉबसेन एक प्रकार की प्रतिभा के लिए आने के लिए एक सरल विचार के साथ दिखावा समस्या है (उसकी विशेषता क्रिप्टोग्राफी है यदि गलत नहीं है, लेकिन वह गॉस-सेडेल पुनरावृत्त एल्गोरिथ्म के एक वर्ग के लिए अपनी पद्धति के गणितीय समकक्ष को साबित करने में सफल रहा, जो अभिसरण है )। सादगी के लिए, निहित तरीकों में गहराई तक पहुंचने से पहले इसके लिए पहले जाएं।

LATER EDIT : मुझे हाल ही में सॉफ्ट या सेमी-कठोर बॉडी सिमुलेशन के लिए स्पष्ट इंटीग्रेटर्स का उपयोग करने के इस मुद्दे पर एक पेपर मिला है और उनका प्रदर्शन और गुणवत्ता प्रभाव क्या है। यह पेपर परिदृश्य के आधार पर एक निश्चित इंटीग्रेटर चुनने के लिए एक मार्गदर्शक के रूप में काम करना चाहिए।


1
+1 यह वास्तव में सामग्री के संदर्भ में एक बहुत अच्छी गुणवत्ता का उत्तर था: लेकिन यह पचाने में बहुत कठिन था (पाठ की दीवार)। मैंने पाया कि अच्छी फॉर्मेटिंग हमेशा वोट पाने में मदद करती है। मैंने इसमें सुधार किया है और उम्मीद है कि आपको वो वोट मिलेंगे जिसके आप हकदार हैं।
जोनाथन डिकिंसन

धन्यवाद जोनाथन, मैंने इसे जल्दबाजी में किया है, "रीडर फ्रेंडली" प्रक्रिया की अवहेलना करते हुए, लेकिन मुझे उन कुछ स्रोतों का उल्लेख करना पड़ा क्योंकि वे आज भी बहुत अक्सर उपयोग किए जाते हैं)।
तेओद्रोन

10

प्रश्न: उन्नत रन कुट्टा का उपयोग क्यों करें?
A: क्योंकि यह बहुत सटीक है।

क्यू: क्यों नहीं?
A: क्योंकि आप एक खेल बना रहे हैं और एक बहुत ही सटीक भौतिकी इंजन कोई फर्क नहीं पड़ता, बस खिलाड़ी को बेवकूफ बनाने के लिए पर्याप्त होना चाहिए।

वैसे, अगर आपको टक्कर पर भारी नुकसान हुआ है, तो अधिकांश प्लेटफ़ॉर्मर्स की तरह, एक साधारण यूलर बस ठीक है।

मैं दृढ़ता से सुझाव देता हूं कि आप प्रस्तुति में कोड के विपरीत निश्चित भौतिक विज्ञान का उपयोग करते हैं, जो आपको कुछ संभावित गड़बड़ियों से बचाता है, और आपको बहुत ही सरल तरीके से गेंद को खोने या ऊर्जा खोने की समस्या को हल करने देता है। बस स्पष्ट और निहित एकीकरण के बीच के मध्य मैदान के लिए जाएं:

velocity += 0.5 * acceleration;
position += velocity;
velocity += 0.5 * acceleration;

प्रस्तुति क्या नहीं दिखाती है कि कैसे टकराव को संभालना है ताकि वस्तुओं को सीमाओं से परे जाने के लिए दिखाई न दें। उस समस्या का सरल समाधान उच्च अद्यतन आवृत्ति का उपयोग करना है। एक अधिक जटिल लेकिन संभावित रूप से बेहतर प्रदर्शन करने वाला समाधान टकराव के समय वस्तुओं को वापस ले जाना है, सटीक कार्यान्वयन वांछित भौतिकी व्यवहार पर निर्भर करता है।


1
"खिलाड़ी को बेवकूफ बनाना" के लिए +1 - लेकिन मेरे पास व्यक्तिगत रूप से 'बहुत सरल' प्रणाली है क्योंकि ईयूल एकीकरण के कारण विस्फोट हुआ है।
जोनाथन डिकिंसन

@JonathanDickinson मैं कहूंगा कि यह Euler एकीकरण के कारण नहीं है, बल्कि परिस्थितियों के मिश्रण के कारण, Euler एकीकरण उनमें से केवल एक है। यदि आपके पास एक उदाहरण है तो मुझे यकीन है कि मैं विस्फोट प्रणालियों से बचने का एक तरीका पा सकता हूं।
१४:१२

ओह, यह वास्तव में पुराने VB6 सामान पर है (जब मैं सचमुच 14 के बारे में था) इससे पहले कि मैं आरके / वेरलेट के बारे में जानता हूं - मेरे पास अब कोड भी नहीं है: जो इस तथ्य को उच्च विश्वसनीयता देता है कि यह कुछ और हो सकता है मिश्रण में :)।
जोनाथन डिकिंसन

1
मुझे लगता है कि मुझे यह जोड़ना चाहिए कि जैसे ही आप केवल सरल गुरुत्वाकर्षण के बजाय वस्तुओं के बीच आकर्षण के साथ खिलवाड़ करना शुरू करते हैं, यह मुझे उचित लगता है कि एकीकरण विधि को बढ़ाएं, यह कड़ाई से आवश्यक नहीं हो सकता है, लेकिन अगर आपको प्रसंस्करण शक्ति मिल गई है केवल नकारात्मक पक्ष थोड़ा अधिक जटिल कोड है।
१४:१२

1

प्रस्तुति में त्रुटि है। प्रस्तुतकर्ता द्वारा "इम्प्रूव्ड यूलर" के रूप में संदर्भित विधि वास्तव में वेलोसिटी वेरलेट विधि है!

अधिक आधिकारिक स्रोत के लिए यहां देखें: http://www.physics.udel.edu/~bnikolic/teaching/phys660/numerical_ode/node5.html

इसके अलावा समान समीकरण विकिपीडिया में हैं

यूलर की विधि पर एक सामान्य तत्काल सुधार मिडपॉइंट विधि है जो शायद प्रस्तुतकर्ता के मन में थी लेकिन बेहतर यूलर के रूप में गलत वेग वेगलेट को समाप्त कर दिया। मिडपॉइंट विधि और वेग वर्लेट के बीच एकमात्र भिन्नता यह है कि वेग अंतिम त्वरण पर निर्भर होने के बजाय अंतिम और अगले त्वरण का औसत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.