ट्रैपेज़ॉइडल नियम की तरह, सिम्पसन के 1/3 नियम का भी उपयोग a से b की श्रेणी से अभिन्न मान ज्ञात करने के लिए किया जाता है। ट्रेपेज़ॉइडल और सिम्पसन के 1/3 नियम के बीच मुख्य अंतर है, ट्रेपोज़ाइडल नियम में, पूरे खंड को कुछ ट्रेपोज़ॉइड में विभाजित किया जाता है, लेकिन इस मामले में, प्रत्येक ट्रेपोज़ॉइड को भी दो भागों में विभाजित किया जाता है।
इस नियम के लिए, हम इस सूत्र का पालन करेंगे:
यहाँ h अंतराल की चौड़ाई है, और n अंतरालों की संख्या है। हम
. का उपयोग करके h का पता लगा सकते हैं
इनपुट और आउटपुट
Input: The function f(x): (x+(1/x). The lower and upper limit: 1, 2. The number of intervals: 20. Output: The answer is: 2.19315
एल्गोरिदम
integrateSimpson(a, b, n)
इनपुट - समाकल की निचली और ऊपरी सीमा और अंतरालों की संख्या n.
आउटपुट - एकीकरण के बाद का परिणाम।
Begin h := (b - a)/n res := f(a) + f(b) lim := n/2 for i := 1 to lim, do oddSum := oddSum + f(a + (2i - 1)h) done oddSum := oddSum * 4 for i := 1 to lim-1, do evenSum := evenSum + f(a + 2ih) done evenSum := evenSum * 2 res := res + oddSum + evenSum res := res * (h/3) return res End
उदाहरण
#include<iostream> #include<cmath> using namespace std; float mathFunc(float x) { return (x+(1/x)); //function 1 + 1/x } float integrate(float a, float b, int n) { float h, res = 0.0, oddSum = 0.0, evenSum = 0.0, lim; int i; h = (b-a)/n; //calculate the distance between two interval res = (mathFunc(a)+mathFunc(b)); //initial sum using f(a) and f(b) lim = n/2; for(i = 1; i<=lim; i++) oddSum += mathFunc(a+(2*i-1)*h); //sum of numbers, placed at odd number oddSum *= 4; //odd sum are multiplied by 4 for(i = 1; i<lim; i++) evenSum += mathFunc(a+(2*i)*h); //sum of numbers, placed at even number evenSum *= 2; //even sum are multiplied by 2 res += oddSum+evenSum; res *= (h/3); return res; //The result of integration } main() { float result, lowLim, upLim; int interval; cout << "Enter Lower Limit, Upper Limit and interval: "; cin >>lowLim >>upLim >>interval; result = integrate(lowLim, upLim, interval); cout << "The answer is: " << result; }
आउटपुट
Enter Lower Limit, Upper Limit and interval: 1 2 20 The answer is: 2.19315