Untitled
unknown
plain_text
2 years ago
1.2 kB
4
Indexable
#include <stdio.h> #include <math.h> #define EPSILON 0.000001 // Error tolerance // Function representing the cubic equation: f(x) = a2*x^3 + a1*x^2 + a0 double cubicEquation(double x, double a2, double a1, double a0) { return a2 * x * x * x + a1 * x * x + a0; } // Secant method function to find root of the cubic equation double secantMethod(double a2, double a1, double a0) { double x0 = 0.0, x1 = 1.0; // Initial guesses double fx0, fx1, x2; do { fx0 = cubicEquation(x0, a2, a1, a0); fx1 = cubicEquation(x1, a2, a1, a0); // Secant formula to find the next approximation x2 = x1 - ((fx1 * (x1 - x0)) / (fx1 - fx0)); x0 = x1; x1 = x2; } while (fabs(x1 - x0) >= EPSILON); return x1; } int main() { double a2, a1, a0; printf("Enter the coefficients of the cubic equation (a2*x^3 + a1*x^2 + a0): \n"); printf("Enter a2: "); scanf("%lf", &a2); printf("Enter a1: "); scanf("%lf", &a1); printf("Enter a0: "); scanf("%lf", &a0); double root = secantMethod(a2, a1, a0); printf("Root of the equation: %lf\n", root); return 0; }
Editor is loading...
Leave a Comment