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