Proc44. Описать функцию Arctg1(x, $$\epsilon$$) вещественного типа (параметры $$x$$, $$\epsilon$$ — вещественные, $$|x| < 1, \epsilon > 0$$), находящую приближенное значение функции $$arctg(x)$$: $$arctg(x) = x — x^3/3 + x^5/5 — … + (-1)^n*x^{2*n+1}/(2*n+1) + …$$ . В сумме учитывать все слагаемые, модуль которых больше $$\epsilon$$. С помощью Arctg1 найти приближенное значение $$arctg(x)$$ для данного $$x$$ при шести данных $$\epsilon$$.
Решение от Дмитрия:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# include <iostream> # include <windows.h> # include <cmath> # include <iomanip> # include <fstream> using namespace std; double Arctg1(double x, double e); int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); ifstream in ("Proc44.txt"); double x, e; double answer; // приближенное значение функции arctg(x) cout << "Введите число x (|x|<1): "; cin >> x; cout << '\t' << "Стандартное значение фунцкции arctg(x): " << atan(x) << endl; for (int i=1; i < 7; ++i) { cout << "Число e (e>0): "; in >> e; cout << e << " "; answer = 0; answer = Arctg1(x, e); cout << '\t' << "Приближенное значение функции arctg(x): " << answer << endl; } system ("pause"); return 0; } double Arctg1( double x, double e) { int i; double sum,Step; Step = x; sum = x; i = 1; while (abs(Step*x * x / -(i*2+1)) >= e){ Step *= -(x * x); sum += Step / (i*2+1); i++; } return sum; } |
Файл Proc44.txt:
1 |
0.01 0.001 0.0001 0.00001 0.0000015 0.0003 |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: