Форум программистов, компьютерный форум CyberForum.ru

Почему функция atanh работает неправильно? - C++

Восстановить пароль Регистрация
 
megabayt
1 / 1 / 1
Регистрация: 20.12.2011
Сообщений: 14
17.11.2014, 01:58     Почему функция atanh работает неправильно? #1
Задание
http://content-15.foto.my.mail.ru/ma...wers/i-359.jpg
Кусок кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (double X = Xn; X <= Xk; X += dX)
    {
        n = 0;
        sum = 0;
        y = 0;
        do {
            y = 1 / ((2 * n + 1)*pow(X, (2 * n + 1)));
            sum += y;
            n++;
        } while (abs(y)>e);
        //tab = (log((1 + X) / (1 - X)))/2;
        tab = atanh(X);
        cout << "\n arth(x) = arth(" << X << ")\t otvet= " << sum << "\t\t" << n << "\t" << tab;
    }
Результат
http://content-12.foto.my.mail.ru/ma...wers/i-357.jpg
Миниатюры
Почему функция atanh работает неправильно?   Почему функция atanh работает неправильно?   Почему функция atanh работает неправильно?  

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
17.11.2014, 09:47     Почему функция atanh работает неправильно? #2
Вы как раз вычисляете правильно (разве что - неэффективно).
А что за функция atanh(X) - непонятно. В стандартной math.h такой функции нет.
Обратная к ней tanh - есть.
Для проверки правильности можете вывести tanh(sum).
Должно получиться X.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,639
17.11.2014, 09:51     Почему функция atanh работает неправильно? #3
В спецификации 'atanh' сказано, что аргумент должен быть в диапазоне (-1, +1).

http://en.cppreference.com/w/cpp/numeric/math/atanh
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
17.11.2014, 09:57     Почему функция atanh работает неправильно? #4
TheCalligrapher, в какой версии С++ есть atanh?
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,639
17.11.2014, 10:01     Почему функция atanh работает неправильно? #5
Цитата Сообщение от zss Посмотреть сообщение
TheCalligrapher, в какой версии С++ есть atanh?
В С99, и С++11 наследует ее оттуда.
Yandex
Объявления
17.11.2014, 10:01     Почему функция atanh работает неправильно?
Ответ Создать тему
Опции темы

Текущее время: 13:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru