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

द्विभाजन विधि के लिए C++ कार्यक्रम

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

द्विभाजन विधि क्या है?

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

उदाहरण

Quadratic equation F(x) =  - 8
This equation is equals to 0 when the value of x will be 2 i.e.  - 8 = 0
So, root of this quadratic function F(x) will be 2.

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

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

अर्थात। m रूट का मान है जो कई हो सकता है

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

. में संग्रहीत किया जाता है

एम =(ए + बी) / 2

द्विभाजन विधि के लिए C++ कार्यक्रम

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

द्विभाजन विधि के लिए C++ कार्यक्रम

उदाहरण

Input-: x^3 - x^2 + 2 ; a =-500 and b = 100
Output-: The value of root is : -0.991821
Input-: x^3 - x^2 + 2 ; a =-200 and b = 300
Output-: The value of root is : -1.0025

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

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

एल्गोरिदम

Start
Step 1-> In function double solution(double x)
   Return x*x*x - x*x + 2
Step 2-> In function bisection(double a, double b)
   If solution(a) * solution(b) >= 0 then,
      Print "You have not assumed right a and b "
      Return
   End If
   Set c = a
   Loop While (b-a) >= EP
      Set c = (a+b)/2
      If solution(c) == 0.0
         Break
      End If
      Else if solution(c)*solution(a) < 0
         Set b = c
      End Else If
      Else
         Set a = c
      End Else
   End
   Print "The value of root”
Step 3-> In function int main()
   Declare and Initialize inputs  a =-500, b = 100
   Call function bisection(a, b)
Stop

उदाहरण

#include <iostream>
using namespace std;
#define EP 0.01
// An example function whose solution is determined using
// Bisection Method. The function is x^3 - x^2 + 2
double solution(double x) {
   return x*x*x - x*x + 2;
}
// Prints root of solution(x) with error in EPSILON
void bisection(double a, double b) {
   if (solution(a) * solution(b) >= 0) {
      cout << "You have not assumed right a and b\n";
      return;
   }
   double c = a;
   while ((b-a) >= EP) {
      // Find middle point
      c = (a+b)/2;
      // Check if middle point is root
      if (solution(c) == 0.0)
         break;
       // Decide the side to repeat the steps
      else if (solution(c)*solution(a) < 0)
         b = c;
      else
         a = c;
   }
   cout << "The value of root is : " << c;
}
 // main function
int main() {
   double a =-500, b = 100;
   bisection(a, b);
   return 0;
}

आउटपुट

The value of root is : -0.991821

  1. सी++ में ऑक्टाहेड्रोन के भूतल क्षेत्र के लिए कार्यक्रम

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

  1. सी++ में डोडेकाहेड्रॉन के सतह क्षेत्र के लिए कार्यक्रम

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

  1. QuickSort के लिए C++ प्रोग्राम?

    क्विकसॉर्ट एक छँटाई तकनीक है जो एक क्रमबद्ध सूची (सरणी) को क्रमबद्ध करने के लिए तुलना का उपयोग करती है। Quicksort को पार्टीशन एक्सचेंज सॉर्ट के रूप में भी जाना जाता है। यह एक स्थिर प्रकार नहीं है, क्योंकि समान प्रकार की वस्तुओं का सापेक्ष क्रम संरक्षित नहीं है। क्विकसॉर्ट एक सरणी पर काम कर सकता है,