#include #include using namespace std; double funkcja_matematyczna1(double x) { return (pow(x, 3) - (3 * pow(x, 2)) + ((2 * x) - 6)); } double funkcja_matematyczna2(double x) { return (pow(x, 3) - (3 * pow(x, 2)) + ((3 * x) - 7)); } double funkcja_matematyczna3(double x) { return (pow(x, 3) - (6 * pow(x, 2)) + ((8 * x) - 2)); } double algorytm_polwienia(double(*fun)(double), double a, double b, double epsilon) { double c; while (fabs(a - b) > epsilon) { c = ((a + b) / 2.0); if (fabs(fun(c)) < epsilon) { break; } if (fun(a) * fun(c) < 0) { b = c; } else { a = c; } } return c; } double regula_falsi(double(*fun)(double), double a, double b, double epsilon) { double long c; while (fabs(a - b) > epsilon) { c= ((a*fun(b) - b*fun(a)) / (fun(b) - fun(a))); if (fabs(fun(c)) < epsilon) { break; } if (fun(a) * fun(c) < 0) { b = c; } else { a = c; } } return (double)c; } int main() { double a; double b; double epsilon; cout << ("Sugierowany przedzial dla moich funkcji to <-18;18>") << endl; cout << ("Wprowadz poczatek przedzialu: "); cin >> a; cout << ("Wprowadz koniec przedzialu: "); cin >> b; cout << ("Wprowadz epsilon"); cin >> epsilon; double(*wsk_fun)(double) = funkcja_matematyczna1; cout << ("pow(x, 3) - (3 * pow(x, 2)) + ((2 * x) - 6)") << endl; cout << ("Miejsce zerowe funckji (polowienie) : ") << algorytm_polwienia(wsk_fun, a, b, epsilon)<