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

Неправильно считается десятичный логарифм - C++

Восстановить пароль Регистрация
 
ТОрчОК
Заблокирован
11.10.2011, 17:51     Неправильно считается десятичный логарифм #1
не верно считается десятичный логарифм(z), почему? заранее спс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
extern float pow ( float, int );
int main()
{
 
int n;
double x,y,z;
cin>>x;
z=0.5*log10((x+1)/(x-1));
for(n=0;n<30;n++)
{
    y+=1/((2*n+1)*pow(x,2*n+1));
}
cout<<y<<"\n"<<z;
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 18:01     Неправильно считается десятичный логарифм #2
z считается правильно, неправильно считается сумма ряда
и, кстати, забыли сделать y=0; до цикла
ТОрчОК
Заблокирован
11.10.2011, 23:23  [ТС]     Неправильно считается десятичный логарифм #3
вроде как раз наоборот я проверял калькулятором
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 23:32     Неправильно считается десятичный логарифм #4
при х=2 значение z должно быть 0.23856062
Именно это оно и выводит
Если выложишь формулу ряда, постараюсь подсказать, что исправить
ТОрчОК
Заблокирован
12.10.2011, 02:35  [ТС]     Неправильно считается десятичный логарифм #5
действительно, видимо ряд считает натуральный логарифм?
вот сам ряд - 1/x+....+ 1/(2n+1)*x^(2n+1)
та часть лабы которую я накодил говорит, что нужно найти ряд и истинное значение функции:
функция=arcth(x) (как я понял гиперболический арккотангенс)
ограничение агрумента- |x|>1
ряд и функция не совпадают тогда чтоле??? или ошибка в коде, скорее всего?

Добавлено через 42 минуты
все нашел ошибку, спасибо))))))))))))))
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
12.10.2011, 02:38     Неправильно считается десятичный логарифм #6
для арктангенса гиперболического x^(2n+1) находится в числителе, а не в знаменателе, т.е. ряд имеет вид
http://www.cyberforum.ru/cgi-bin/latex.cgi?x+\frac{{x}^{3}}{3}+\frac{{x}^{5}}{5}+...

поскольку в С++ нет встроенной функции arctanh(x), то он выражен через НАТУРАЛЬНЫЙ логарифм, а не десятичный, так что в z исправляете логарифм и исправляете вычисление ряда
Yandex
Объявления
12.10.2011, 02:38     Неправильно считается десятичный логарифм
Ответ Создать тему
Опции темы

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