Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstddef>
- #include <math.h>
- #include <iomanip>
- //poznaz v 13
- double EPSILON = 1 * 10e-15;
- double actg(double x) {
- if (fabs(x) > 1.0) return 0.;
- double part = -x;
- double n = 1.;
- double sum = M_PI / 2.;
- double delta = part;
- while (fabs(delta) > EPSILON) {
- delta = sum;
- sum += part / n;
- delta -= sum;
- part *= x * x * -1.;
- n += 2.;
- }
- return sum;
- }
- int main() {
- int k;
- std::cout << "beware! k > 9 requires a lot of time." << std::endl;
- std::cout << "k = ";
- std::cin >> k;
- EPSILON = pow(10, -k);
- double step;
- std::cout << "step = ";
- std::cin >> step;
- double x = -1;
- while (fabs(x) <= 1) {
- double r = actg(x);
- double e = M_PI / 2. - atan(x);
- std::cout << std::setprecision(k) << r << " " << e << " " << fabs(e - r) << std::endl;
- x += step;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement