Program to find root of an equations using secant method in C++

C++Server Side ProgrammingProgramming

In this tutorial, we will be discussing a program to find the root of an equation using secant method.

For this we will be provided with an equation. Our task is to find the roots of that equation using the iterative secant method.

Example

 Live Demo

#include <bits/stdc++.h>
using namespace std;
float f(float x) {
   float f = pow(x, 3) + x - 1;
   return f;
}
void secant(float x1, float x2, float E) {
   float n = 0, xm, x0, c;
   if (f(x1) * f(x2) < 0) {
      do {
         //calculating the intermediate value
         x0 = (x1 * f(x2) - x2 * f(x1)) / (f(x2) - f(x1));
         c = f(x1) * f(x0);
         x1 = x2;
         x2 = x0;
         n++;
         if (c == 0)
         break;
         xm = (x1 * f(x2) - x2 * f(x1)) / (f(x2) - f(x1));
      } while (fabs(xm - x0) >= E);
      cout << "Root of the given equation=" << x0 << endl;
      cout << "No. of iterations = " << n << endl;
   } else
   cout << "Can not find a root in the given inteval";
}
int main() {
   // initializing the values
   float x1 = 0, x2 = 1, E = 0.0001;
   secant(x1, x2, E);
   return 0;
}

Output

Root of the given equation=0.682326
No. of iterations = 5
raja
Published on 19-May-2020 15:19:57
Advertisements