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

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

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Найти ошибку в ф-ии, вычисляющей arctg(x) через разложение в ряд - C++

14.10.2012, 14:30. Просмотров 987. Ответов 2
Метки нет (Все метки)

Доброго времени суток.
Нужно вычислить arctg(x) при x>1.
Вот код
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<cmath>
#include<conio.h>
using namespace std;
void atan_x(double x, double eps);
int main()
{
    atan_x(22,1);
    getch();
    return 0;
}
 
void atan_x(double x, double eps)
{
    double sum=3.14/2;
    double ch_i=-1/x;
    for(int i=0; abs(ch_i)>eps && i<500; i++)
    {
        sum+=ch_i;
        ch_i*=-(2*i+1)/x*x*(2*i+3);
    }
    printf("atan(%g)=%g\n",x,sum);
}
Ф-ия выдаёт неправильный рез-т или вообще зацикливается, если убрать условие i<500. Подскажите, что не так? Спасибо.
0
Миниатюры
Найти ошибку в ф-ии, вычисляющей arctg(x) через разложение в ряд  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в ф-ии, вычисляющей arctg(x) через разложение в ряд (C++):

Разложение в ряд arctg(x) - C++
Ввести вещественное число X и целое число N &gt; 0. Найти значение выражения X – X3/(3) + X5/(5) – X7/(7) + ..., которое является...

Найти значение функции через разложение в ряд - C++
Найти значение функции у(х) в произвольной точке через разложение в ряд. Проверить корректность входных данных. Выполнить проверку решения....

Рекурсия. Найти значение функции через разложение в ряд Тейлора - C++
Собственно, сабж. Есть функция cos^2(x), которую я хочу разложить в ряд Тейлора. Вот отрывок кода с функцией: double func(double...

Вычисление функции через разложение в ряд (Ряд Тейлора) - C++
Привет всем. Задание такого плана: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора,...

Вычислить значение е^х через разложение в ряд - C++
Задали задачку....вот немогу реить,неполучается с условием пишет ошибку Вычеслить значение е (в степени) х ,используя ряд...

Не могу найти ошибку в программе, вычисляющей определенный интеграл по методу трапеций - C++
Написал программу для вычисления интеграла от x^(1/3) в пределах от -1 до 8. На выходе выдает нули и бесконечности:( Подскажите плиз в чем...

2
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
14.10.2012, 15:44 #2
C++
1
2
3
4
5
6
7
8
9
10
11
void atan_x(double x, double eps)
{
    double sum=3.14/2;
    double ch_i=-1/x;
    for(int i=0; abs(ch_i)>eps && i<500; i++)
    {
        sum+=ch_i;
        ch_i*=-1/(x*x*(2*i+3)/(2*i+1));
    }
    cout << "arctg(" << x << ") = " << sum << endl;
}
1
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
14.10.2012, 15:50 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
int main(void)
{
 const double pi=3.14;
 double x,e,s1;
 std::cout<<"eps, x (x>1): ";
 std::cin>>e>>x;
 int n=1;
 double s=-1/x,arc=-1/x;
 do 
 {
  s1=s;
  s=pow(-1.,n+1)/((2*n+1)*pow(x,2*n+1));
  arc+=s;
  n++;
 }
 while (fabs(s1-s)<e);
 std::cout<<"y = "<<arc+pi/2<<std::endl; 
 system("PAUSE");
 return 0;
}
Добавлено через 2 минуты
PG94, у меня Ваш код всегда одно и то же выдает, вне зависимости от введенного значения.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 15:50
Привет! Вот еще темы с ответами:

Итеративный и рекурсивный методом вычисления ln 1 + x, через разложение в ряд - C++
Добрый день, друзья. Помогите мне пожалуйста с прогой. Уже мучаюсь очень долго время, не могу найти выхода. Суть задания: ...

Вычислить значение arcsin x через разложение в ряд Тейлора - C++
памагите ктони буть код проги есть на скрине только не выводит до конца результат тоже есть на скрине формула каторую надо использовать...

Вычислить и вывести значение функции через разложение в ряд Тейлора - C++
Здравствуйте, совсем не понимаю принцип условия данной задачи, прошу помощи! Требуется написать программу, которая вычисляет значение по...

Найти разложение в ряд arcsin(x) - C++
Здравствуйте, помогите, пожалуйста,решить задачу в С++ arcsin(x)=x+1/2*x^3/3+1*3/2*4*x^5/5.....при R=1


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

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

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