Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
megabayt
1 / 1 / 1
Регистрация: 20.12.2011
Сообщений: 14
#1

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

17.11.2014, 01:58. Просмотров 313. Ответов 4
Метки нет (Все метки)

Задание
http://content-15.foto.my.mail.ru/mail/megabayt_m/_answers/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/mail/megabayt_m/_answers/i-357.jpg
0
Миниатюры
Почему функция atanh работает неправильно?   Почему функция atanh работает неправильно?   Почему функция atanh работает неправильно?  

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 01:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему функция atanh работает неправильно? (C++):

Неправильно работает функция - C++
void FreeTop( Tree *&amp;tree ) { if( tree-&gt;d == NULL )delete tree; else FreeTop( tree-&gt;d ); } это моя функция освобождения...

Неправильно работает функция - C++
Господа, написал следующий код, цель - заполнить имеющийся вектор структур данными из файла + вывести количество символа @ Проблема...

Неправильно работает функция - C++
Проблема заключается в том, что в случае, если пользователь вводит числа от 1 до 9 все работает правильно, а если от 10 и далее, то...

Неправильно работает функция gets( ) - C++
..... char *str = new char; gets( str ); printf( &quot;%s&quot;, str ); .....

Неправильно работает функция - C++
You are given natural number n. Calculate 12+22+...+n2. Example Input Output 2 5 Добавлено через 1 минуту #include &lt;iostream&gt;...

Почему деструктор работает неправильно? - C++
на лабараторной столкнулся в проблемой. деструктор вызывается только один раз. #include &lt;cstring&gt; #include &lt;iostream&gt; using...

4
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
17.11.2014, 09:47 #2
Вы как раз вычисляете правильно (разве что - неэффективно).
А что за функция atanh(X) - непонятно. В стандартной math.h такой функции нет.
Обратная к ней tanh - есть.
Для проверки правильности можете вывести tanh(sum).
Должно получиться X.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3945 / 2169 / 553
Регистрация: 18.10.2014
Сообщений: 3,783
17.11.2014, 09:51 #3
В спецификации 'atanh' сказано, что аргумент должен быть в диапазоне (-1, +1).

http://en.cppreference.com/w/cpp/numeric/math/atanh
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
17.11.2014, 09:57 #4
TheCalligrapher, в какой версии С++ есть atanh?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3945 / 2169 / 553
Регистрация: 18.10.2014
Сообщений: 3,783
17.11.2014, 10:01 #5
Цитата Сообщение от zss Посмотреть сообщение
TheCalligrapher, в какой версии С++ есть atanh?
В С99, и С++11 наследует ее оттуда.
1
17.11.2014, 10:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 10:01
Привет! Вот еще темы с ответами:

Почему программа работает неправильно - C++
не могу понять почему программа работает не правильно # include &lt;stdio.h&gt; # include &lt;conio.h&gt; # include &lt;math.h&gt; float f1(int...

Почему программа неправильно работает - C++
string IntToStr(int a) { if (a == 0) return &quot;0&quot;; string str = &quot;&quot;; int b = a; if (a &lt; 0) a *= -1; while (a &gt; 0) str =...

Функция scanf() неправильно работает - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { unsigned char c1, c2; bool b=true; while (b==true)...

неправильно работает функция replace()? - C++
Нужно написать программу, которая заменяет в строке символ '/' на строку &quot;&quot;. Ниже дан цикл, в котором это происходит. Но замена почему-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru