6

क्या कोई एल्गोरिदम जांचता है कि कोई दिया गया (संभवतः nonlinear) फ़ंक्शन f हमेशा सकारात्मक है या नहीं?एक गैर-लाइनर फ़ंक्शन f की जांच करने के लिए एक एल्गोरिदम हमेशा सकारात्मक होता है

मुझे लगता है कि वर्तमान में यह विचार है कि फ़ंक्शन की जड़ें (न्यूटन-रैफसन एल्गोरिदम या इसी तरह की तकनीकों का उपयोग करके, http://en.wikipedia.org/wiki/Root-finding_algorithm देखें) और डेरिवेटिव की जांच करें, या न्यूनतम एफ ढूंढें, लेकिन ऐसा नहीं लगता इस समस्या का सबसे अच्छा समाधान होने के लिए, रूट खोज एल्गोरिदम के साथ बहुत सारे अभिसरण मुद्दे भी हैं।

उदाहरण के लिए, मेपल में, फ़ंक्शन सत्यापित करें यह कर सकता है, लेकिन मुझे इसे अपने स्वयं के कार्यक्रम में लागू करने की आवश्यकता है। मेपल सत्यापित करने में सहायता करें: http://www.maplesoft.com/support/help/Maple/view.aspx?path=verify/function_shells मेपल उदाहरण: मान लें (एक्स, 'असली'); सत्यापित करें (x^2 + 1,0, 'big_than'); -> सत्य लौटाता है, क्योंकि प्रत्येक एक्स के लिए हमारे पास x^2 + 1> 0

[संपादित करें] प्रश्न पर कुछ पृष्ठभूमि: फ़ंक्शन $ f $ सर्किट के लिए दायां हाथ-पक्ष अंतर nonlinear मॉडल है । सादगी के लिए संशोधित नोडल विश्लेषण (एमएनए) लागू करके एक गैरलाइन सर्किट को सामान्य अंतर समीकरणों के सेट के रूप में मॉडलिंग किया जा सकता है, आइए केवल 1 आयाम वाले सिस्टम पर विचार करें, इसलिए $ x '= f (x) $ जहां $ f $ वर्णन सर्किट, उदाहरण के लिए $ एफ $ $ एफ (x) = 10x - 100x^2 + 200x^3 - 300x^4 + 100x^5 $ (nonlinear सुरंग-डायोड के लिए एक मॉडल) या $ f = 10 - 2sin हो सकता है (4x) + 3x $ (जोसेफसन जंक्शन के लिए एक मॉडल)।

$ x $ बाध्य है और $ एफ $ केवल आर $ में अंतराल $ [ए, बी] \ में परिभाषित किया गया है। $ एफ $ निरंतर है। मैं यह भी मान सकता हूं कि $ F $ लिप्सचिट्ज़ को एलिप्स 0 के साथ लिप्सचिट्ज है, लेकिन मैं तब तक नहीं चाहता जब तक कि मुझे नहीं करना पड़े।

+0

क्या मैपल का 'सत्यापित' सभी संभावित कार्यों के लिए काम करता है? दस डिग्री बहुपद के बारे में, कैसे कहें? – Kevin

+2

मुझे लगता है कि आपका मतलब ** निरंतर ** है, शायद ** बहुपद ** फ़ंक्शन * (आखिरकार, 'एफ (एक्स) = -1 iff प्रोग्राम एक्स रोकता है अन्यथा + 1' एक मान्य फ़ंक्शन है) *? यदि हां, तो वास्तविक समस्या क्या है? आपने दो समाधानों का उल्लेख किया है: फ़ंक्शन की जड़ों को ढूंढें * (प्रत्येक जड़ों के बीच एक बिंदु पर फ़ंक्शन का मान देखें) * या व्युत्पन्न की जड़ों * (इन बिंदुओं में से प्रत्येक पर फ़ंक्शन का मान देखें) * - इनमें से किसी एक को काम करना चाहिए। –

+0

एक बहुत अच्छा मुद्दा, हाँ, समारोह निरंतर होना चाहिए। रूट-सर्चिंग मेरा प्रारंभिक समाधान था, लेकिन मेरे मामले में, इसके साथ कई अभिसरण मुद्दे हैं। मैं एक बेहतर एल्गोरिदम की तलाश में हूं। –

उत्तर

3

यदि मैं आपकी समस्या को सही ढंग से समझता हूं, तो यह आवश्यक रूप से पहचान किए बिना अंतराल में (असली) जड़ों की संख्या को गिनने के लिए उबलता है। वास्तव में, आपको सटीक संख्या प्राप्त करने की भी आवश्यकता नहीं है, भले ही यह शून्य के बराबर हो या नहीं।

यदि आपका कार्य बहुपद है, तो मुझे लगता है कि Sturm's theorem लागू हो सकता है। विकिपीडिया लेख का दावा है कि दो अन्य प्रक्रियाओं को प्राथमिकता दी जाती है, इसलिए आप उन्हें भी देखना चाहेंगे। मुझे यकीन नहीं है कि Descartes' rule of signs अंतराल पर काम करता है, लेकिन Budan's theorem दिखाई देता है।

संबंधित मुद्दे