में ओडीई को हल करते समय किसी अज्ञात फ़ंक्शन को ईवेंट-फ़ंक्शन के रूप में उपयोग करना संभव है क्या मैटलैब में किसी ईवेंट फ़ंक्शन के रूप में अज्ञात फ़ंक्शन का उपयोग करना संभव है। मुझे क्या करना चाहते हैं मूल रूप सेMatlab
opt = odeset('Events', @(t,y) (deal(y(end)-t^2,1,0)));
[T,Y] = ode45(@odefun,[tstart tend],y0,opt);
बहरहाल, यह शिकायत है कि आउटपुट की संख्या निपटने के लिए बिल्कुल मेल खाना आवश्यक एक त्रुटि देता है। अज्ञात फ़ंक्शन को कई तर्क वापस करने का कोई अन्य तरीका है?
बिंदु यह है कि मैं एक रैपर समारोह से बचना चाहता हूं। सौदा का उपयोग करके, आप वास्तव में अज्ञात फ़ंक्शन को तीन मान वापस करने के लिए प्राप्त कर सकते हैं (क्योंकि सौदा केवल इसके तर्क लौटाता है)। हालांकि, ओडीई-सॉल्वर वापसी मूल्यों की एक अलग संख्या की उम्मीद कर रहा है, जबकि सौदा बिल्कुल मेल खाना चाहिए। –
आप बिल्कुल सही हैं। जब मैं बदलाव करता हूं तो मुझे इस पर एक और नजर आएगी। मुझे संदेह है कि यह इस तथ्य से संबंधित हो सकता है कि 'ode45' ईवेंट हैंडलर को तर्कों की एक चर संख्या को पास करता है। –
मुझे संदेह है कि यह 'odeevents' में एक आउटपुट के साथ और' odezero' में आउटपुट ट्रिपलेट के साथ मूल्यांकन किए जाने वाले फ़ंक्शन के कारण है। हालांकि, किसी अज्ञात फ़ंक्शन के आउटपुट तर्क की संख्या या तो एक * या * तीन है, लेकिन यह दोनों को संभाल नहीं सकती है। – embert