Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm nghiệm nguyên của phương trình bằng phương thức secant trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm nghiệm nguyên của một phương trình bằng phương pháp secant.

Đối với điều này, chúng tôi sẽ được cung cấp với một phương trình. Nhiệm vụ của chúng tôi là tìm ra gốc của phương trình đó bằng phương pháp lặp đi lặp lại.

Ví dụ

#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;
}

Đầu ra

Root of the given equation=0.682326
No. of iterations = 5