Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम बाईसेक्शन मेथड के लिए


फंक्शन f(x) दिया गया है जिसमें संख्या a और b हैं जहां, f(a) * f(b) > 0 और फंक्शन f(x) a और b के बीच होना चाहिए यानी f(x) = [a, b]। कार्य बाईसेक्शन मेथड का उपयोग करके फंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान खोजना है।

बाईसेक्शन मेथड क्या है?

बाईसेक्शन मेथड का उपयोग फंक्शन f(x) में दिए गए सीमाओं 'a' और 'b' द्वारा परिभाषित रूट के मान को खोजने के लिए किया जाता है। फंक्शन का रूट मान a के रूप में परिभाषित किया जा सकता है जैसे कि f(a) = 0।

उदाहरण

द्विघात समीकरण F(x) = x^2 - 8 यह समीकरण 0 के बराबर होता है जब x का मान 2 होगा यानी 2^2 - 8 = 0 तो, इस द्विघात फंक्शन F(x) का रूट 2 होगा।

अब, यदि फंक्शन f(x) दिए गए अंतराल [a..b] में सतत है और साथ ही, f(a) का चिह्न f(b) के चिह्न के बराबर नहीं है तो एक मान m होगा जो अंतराल a और b से संबंधित है जैसे कि f(m) = 0

मान m [a..b] ऐसा कि f(m) = 0

अर्थात m रूट का मान है जो एकाधिक हो सकता है

नीचे दिया गया आंकड़ा अंतराल f(a) और f(b) को दिखा रहा है। इन अंतरालों के बीच रूट खोजने के लिए सीमा को भागों में विभाजित किया जाता है और वेरिएबल m में संग्रहीत किया जाता है यानी

m = (a + b) / 2

C++ प्रोग्राम बाईसेक्शन मेथड के लिए

सीमाओं के विभाजन के बाद नया अंतराल उत्पन्न होगा जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है

C++ प्रोग्राम बाईसेक्शन मेथड के लिए

उदाहरण

इनपुट-: x^3 - x^2 + 2 ; a =-500 और b = 100 आउटपुट-: रूट का मान है : -0.991821 इनपुट-: x^3 - x^2 + 2 ; a =-200 और b = 300 आउटपुट-: रूट का मान है : -1.0025

 नीचे दिए गए प्रोग्राम में हम जिस दृष्टिकोण का उपयोग कर रहे हैं वह इस प्रकार है −

  • समीकरण और अंतराल a और b का मान इनपुट करें
  • अंतराल को विभाजित करें: m = (a + b) / 2
    • m को रूट के रूप में प्रिंट करें
  • यदि f(m) ≠ 0
    • जांचें यदि f(a) * f(m) < 0
    • तो रूट a और m के बीच होगा
    • जांचें यदि f(b) * f(m) < 0
    • तो रूट b और m के बीच होगा

एल्गोरिदम

शुरुआत चरण 1-> फ़ंक्शन double solution(double x) में    x*x*x - x*x + 2 वापस करें चरण 2-> फ़ंक्शन bisection(double a, double b) में    यदि solution(a) * solution(b) >= 0 तो,       "आपने सही a और b नहीं माना" प्रिंट करें       वापस करें    अंत यदि    c = a सेट करें    लूप जब तक (b-a) >= EP       c = (a+b)/2 सेट करें       यदि solution(c) == 0.0          ब्रेक       अंत यदि       अन्यथा यदि solution(c)*solution(a) < 0          b = c सेट करें       अंत अन्यथा यदि       अन्यथा          a = c सेट करें       अंत अन्यथा    अंत    "रूट का मान" प्रिंट करें चरण 3-> फ़ंक्शन int main() में    इनपुट घोषित करें और आरंभ करें a =-500, b = 100    bisection(a, b) फ़ंक्शन कॉल करें रुकें

उदाहरण

#include <iostream> using namespace std; #define EP 0.01 // एक उदाहरण फंक्शन जिसका समाधान बाईसेक्शन मेथड का उपयोग करके निर्धारित किया जाता है // फंक्शन है x^3 - x^2 + 2 double solution(double x) {    return x*x*x - x*x + 2; } // EPSILON में त्रुटि के साथ solution(x) का रूट प्रिंट करता है void bisection(double a, double b) {    if (solution(a) * solution(b) >= 0) {       cout << "आपने सही a और b नहीं माना\n";       return;    }    double c = a;    while ((b-a) >= EP) {       // मध्य बिंदु खोजें       c = (a+b)/2;       // जांचें कि क्या मध्य बिंदु रूट है       if (solution(c) == 0.0)          break;       // चरण दोहराने के लिए पक्ष तय करें       else if (solution(c)*solution(a) < 0)          b = c;       else          a = c;    }    cout << "रूट का मान है : " << c; }  // मुख्य फ़ंक्शन int main() {    double a =-500, b = 100;    bisection(a, b);    return 0; }

आउटपुट

रूट का मान है : -0.991821

  1. C++ में अष्टफलक का पृष्ठीय क्षेत्रफल C++ में अष्टफलक का पृष्ठीय क्षेत्रफल

    अष्टफलक क्या है?अष्टफलक शब्द ग्रीक शब्दों से लिया गया है जहां, अष्ट का अर्थ आठ है और फलक फेस निर्दिष्ट करता है। ज्यामिति में अष्टफलक एक 3-D प्लेटोनिक या नियमित ठोस है जिसमें आठ फलक होते हैं। अन्य आकृतियों की तरह अष्टफलक के भी गुण हैं जो हैं -6 पॉलीहेड्रॉन शीर्ष12 पॉलीहेड्रॉन किनारे8 समबाहु फलकनीचे अ

  1. C++ में द्वादशफलक का पृष्ठीय क्षेत्रफल C++ में द्वादशफलक का पृष्ठीय क्षेत्रफल

    द्वादशफलक क्या है?द्वादशफलक शब्द ग्रीक शब्दों से लिया गया है जहां, द्वादश का अर्थ बारह है और फलक फेस निर्दिष्ट करता है। ज्यामिति में द्वादशफलक एक 3-D प्लेटोनिक या नियमित ठोस है जिसमें बारह सपाट फलक होते हैं। अन्य आकृतियों की तरह द्वादशफलक के भी गुण हैं जो हैं -20 पॉलीहेड्रॉन शीर्ष30 पॉलीहेड्रॉन किना

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प