मैं एक अनुभवी Matlab प्रोग्रामर हूं, फिर भी मुझे नहीं पता कि इसे (प्रतीत होता है) सरल समस्या को कैसे हल किया जाए। मेरे पास 5 समीकरणों और 5 अज्ञातों की एक प्रणाली है:
मैं जानता हूं कि जब कोई बीजगणितीय समीकरण शामिल नहीं हैं तो ode45 का उपयोग करके ODE को कैसे हल किया जाए। उपरोक्त प्रणाली में, V (वेग) और C (त्वरण) दोनों स्थिर और ज्ञात हैं। C अंतरिक्ष यान अनुप्रस्थ त्वरण है .
इस समस्या को निम्नानुसार हल किया जाना चाहिए:
- t=0 पर, हम थीटा(0), x(0) और y(0) जानते हैं। याद रखें कि वी और सी दोनों स्थिर और ज्ञात हैं।
- थीटा (0) और सी/वी को देखते हुए, हम थेटा (टी 1) को चौथे समीकरण को एकीकृत करते हैं। थीटा के इस नए मूल्य के साथ, हमें नए Vx(t1) और Vy(t1) की गणना करने में सक्षम होना चाहिए, जो हमें x(t1) और y(t2) के लिए नए मान देगा।
- दोहराना
मैटलैब के ओडीई 45 का उपयोग करके समस्या को हल करना महत्वपूर्ण है, क्योंकि जब मैं हवा जोड़ता हूं, गुरुत्वाकर्षण और घनत्व बदलता हूं, अंतरिक्ष यान द्रव्यमान और ज्यामिति (और जड़त्व और इसी तरह!) तो मुझे दर्जनों समीकरणों की एक प्रणाली मिलेगी जो सभी को जोड़ा जाएगा। अगर मुझे पता है कि मैटलैब में इस साधारण समस्या को कैसे हल किया जाए, तो मैं समझूंगा कि भविष्य में और अधिक जटिल समस्याओं को कैसे हल किया जाए।
मैंने कुछ मदद पाने के लिए इंटरनेट को खंगाला है, लेकिन यह व्यर्थ था। आपकी सहायता की बहुत सराहना की गयी।
2 जवाब
सही प्रणाली के साथ आपके पास एकीकृत करने के लिए केवल 3 राज्य चर हैं
function dotu = f(t,u)
theta = y(1);
dotu = [ C/V, -V*cos(theta), V*sin(theta) ];
end
और इसके बाद आप सीधे सॉल्वर में सम्मिलित कर सकते हैं
[ T,U ] = ode45(f, [t0, tf], [ theta0, x0, y0])
प्रारंभिक स्थिति और एकीकरण अंत के लिए उपयुक्त मानों का उपयोग करना।
मुझे ऐसा लगता है कि आपका सिस्टम इस अर्थ में कम निर्धारित है कि y_1 सकारात्मक होने के अलावा आपके समीकरणों से विवश नहीं है। बाकी सिस्टम के लिए, यह वास्तव में डिकूप करता है। यहां बताया गया है कि मैं इसे कैसे करूंगा:
1) पहला समीकरण दर्शाता है कि y_1 धनात्मक है। इसे ध्यान में रखते हुए, यदि आप पहले समीकरण में y_2 और y_3 को प्रतिस्थापित करते हैं, तो आप y_1=y_1 की पहचान प्राप्त करते हैं। ताकि यह बिंदु y_1 समय का कोई भी कार्य हो सकता है, केवल उस बाधा के अधीन है कि t=0 पर यह प्रारंभिक स्थिति को संतुष्ट करता है। निम्नलिखित में, मैं इसे समय में स्थिर मानूंगा।
2) उस शर्त के साथ, C/y_1 एक मनमाना स्थिरांक है, आइए इसे B कहते हैं, जिससे यह निम्नानुसार है कि y_4= Bt + y0_4, y0_4 एकीकरण स्थिरांक है।
3) y_2 को 5वें समीकरण में और y_3 को 6वें समीकरण में रखें। अब आपके पास समय पर निर्भर r.h.s के साथ दो ODE हैं। समीकरण इतने सरल हैं कि वे विश्लेषणात्मक रूप से हल कर सकते हैं। उदाहरण के लिए, अंतिम समीकरण y_6=-y_1/B cos(Bt+y0_4)+y0_6 देता है।
आम तौर पर, मान लीजिए कि आपको कोई समस्या थी जो कम नहीं थी। फिर, आप हमेशा समय में बीजीय समीकरणों में अंतर कर सकते हैं और ओडीई की एक युग्मित प्रणाली प्राप्त कर सकते हैं।
आखिरी टिप्पणी के रूप में, मैं कहूंगा कि, मैटलैब (या पायथन, या आर, या सी ++, ...) पर जाने से पहले कागज और पेंसिल के साथ समस्या पर काम करना हमेशा एक अच्छी बात है यह देखने के लिए कि क्या इसे सरल बनाया जा सकता है , या, जैसा कि ऊपर मामला है, इसे हल किया जा सकता है।
संबंधित सवाल
नए सवाल
matlab
MATLAB मैथवर्क्स द्वारा विकसित संख्यात्मक अभिकलन और विज़ुअलाइज़ेशन के लिए एक उच्च-स्तरीय भाषा और इंटरैक्टिव प्रोग्रामिंग वातावरण है। जब तक यह प्रश्न स्पष्ट रूप से दोनों के बीच समानता या अंतर के बारे में नहीं है, तब तक [matlab] और [octave] दोनों टैग का उपयोग न करें। इस टैग का उपयोग करते समय, कृपया MATLAB रिलीज़ का उल्लेख करें जिसके साथ आप काम कर रहे हैं (जैसे R2017a)।