Задача. Численно убедиться в справедливости равенства, для чего для заданного значения аргумента [latex]x[/latex] вычислить левую его часть и разложение, стоящее в правой части, с заданной погрешностью [latex]e[/latex]. Испытать разложение на сходимость при разных значениях аргумента, оценить скорость сходимости, для чего вывести число итераций [latex]n[/latex](слагаемых или сомножителей), необходимых для достижения заданной точности.
[latex]\frac {{e}^{x}-{e}^{-x}}{2} =x+\frac {{x}^{3}}{3!}+\frac {{x}^{5}}{5!} +…+\frac {{x}^{2n-1}}{(2n-1)!} +…[/latex]x | e | результат | Комментарий |
5 | 0.01 | 0.002312 | Работает |
3.14 | 0.999 | 0.686728 | Работает |
4 | 0 | Эквивалентно | Работает |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <iostream> #include <cmath> int main() { double dif, le, pr = 0, u, x, e; int n = 0; scanf("%lg %lg", &x, &e); u = x; // 1 шаг цикла таким образом включит первое слагаемое le = (pow (M_E, x) - pow (M_E, -x)) / 2; // вычисляем левую часть if (e == 0){ // частный случай printf("Эквивалентно"); } else{ do{ // вычисляем правую часть n ++; pr += u; u *= x * x / ((2 * n + 1) * 2 * n); // считаю следущее слагаемое dif = le - pr; } while(dif > fabs(e)); printf("Разница = %lf", dif); // вывод } return 0; } |
Вывод: Задача решена.