2012-11-12 11 views
12

में वक्र के नीचे सटीक क्षेत्र की गणना करें क्या कोई ऐसा तरीका है जो ऐसा करता है? मेरे पास एक ऐसा एप्लीकेशन है जहां मुझे वक्र के नीचे क्षेत्र की आवश्यकता है, और मुझे फॉर्मूला दिया गया है, इसलिए यदि मैं हाथ पर एकीकरण कर सकता हूं, तो मुझे इसे प्रोग्रामिक रूप से करने में सक्षम होना चाहिए? मुझे जिस विधि का जिक्र है, उसका नाम नहीं मिल रहा है, लेकिन यह छवि इसे प्रदर्शित करती है: http://www.mathwords.com/a/a_assets/area%20under%20curve%20ex1work.gifजावा

संपादित करें: सभी को उत्तर देने के लिए, मैंने पहले से ही आयताकार, ट्रैपेज़ॉयडल और सिम्पसन के नियम को लागू किया है। हालांकि, वे सटीक होने के लिए 10k + धारियों की तरह लेते हैं, और क्या मुझे प्रोग्राम के रूप में एक फ़ंक्शन के एकीकृत संस्करण को नहीं ढूंढना चाहिए? यदि नहीं, तो इसके लिए एक खूनी अच्छा कारण होना चाहिए।

+3

'खूनी अच्छा कारण' है कि यह अक्सर है 'खूनी कठिन' है। –

+0

अगर किसी ने पहले कभी ऐसा किया है, तो हम उसके कार्यान्वयन का उपयोग करने में सक्षम होना चाहिए और एकीकरण "आयात xxx; xxx.integrate (fctn);" के रूप में छोटा होगा, या क्या मुझे यहां कुछ याद आ रही है? –

+0

यह बहुत सच है। मुझे यकीन नहीं है कि किसी ने जावा के लिए यह किया है।शायद एक और सवाल –

उत्तर

4

संख्यात्मक एकीकरण
कई विधियां हैं जिनका उपयोग किया जा सकता है। विवरण के लिए, Numerical Recipes: The Art of Scientific Computing में एक नज़र डालें।
जावा के लिए एपेस कॉमन्स लाइब्रेरी है, जिसका उपयोग किया जा सकता है। एकीकरण दिनचर्या Numerical Analysis अनुभाग में हैं।

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

0

मैं सिम्पसंस नियम या ट्रैपेज़ियम नियम का उपयोग करने की अनुशंसा करता हूं, क्योंकि यह हर प्रकार के ग्राफ को एकीकृत करने के लिए अत्यधिक जटिल हो सकता है।

0

Numerical analysis विशेष रूप से संख्यात्मक एकीकरण देखें। Riemann sum विधि का उपयोग करने के बारे में कैसे?

1

इसे गणना करने के लिए, आपको computer algebra system लाइब्रेरी को प्रतीकात्मक हेरफेर करने के लिए कुछ प्रकार की आवश्यकता होगी। इस तरह के सिस्टम लागू करने के लिए जटिल हैं, और मैं जावा के लिए किसी भी उच्च गुणवत्ता, मुक्त स्रोत पुस्तकालयों से परिचित नहीं हूं। एक विकल्प, हालांकि, यह मानते हुए कि यह आपकी आवश्यकताओं को पूरा करता है, trapezoidal rule का उपयोग कर वक्र के तहत क्षेत्र का अनुमान लगाएगा। इस पर निर्भर करते हुए कि आपको अपने परिणाम की कितनी सटीक आवश्यकता है, आप तदनुसार उपविभागों के आकार को बदल सकते हैं।

0

आप कुछ नियमों का उपयोग करके numerical integration का उपयोग कर सकते हैं, जैसे पहले से ही सिम्पसंस, ट्रैपेज़ॉयडल, या Monte-Carlo simulation। यह छद्म यादृच्छिक जनरेटर का उपयोग करता है।

आप प्रतीकात्मक एकीकरण के लिए कुछ पुस्तकालयों को आजमा सकते हैं, लेकिन मुझे यकीन नहीं है कि आप प्रत्येक अभिन्न के प्रतीकात्मक प्रतिनिधित्व प्राप्त कर सकते हैं।

0

संख्यात्मक एकीकरण के सबसे लोकप्रिय रूपों में से एक रनगे-कुट्टा ऑर्डर 4 (आरके 4) तकनीक है। यह कार्यान्वयन के रूप में निम्नानुसार है:

double dx, //step size 
     y ; //initial value 
for(i=0;i<number_of_iterations;i++){ 
    double k1=f(y); 
    double k2=f(y+dx/2*k1); 
    double k3=f(y+dx/2*k2); 
    double k4=f(y+dx*k3); 
    y+= dx/6*(k1+2*k2+2*k3+k4); 
} 

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