Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/64: Рейтинг темы: голосов - 64, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 06.04.2020
Сообщений: 24
1

Вычисление значения функции atan(x) заданной разложением в ряд Тейлора

01.07.2021, 20:17. Показов 11913. Ответов 4

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Решил самостоятельно реализовать алгоритм вычисления арктангенса.
Алгоритм состоит из нескольких частей:
1. Сокращение области определения (-∞;+∞) ––> [0;+∞).
2. Сокращение области определения [0;+∞) ––> (0;+∞).
3. Сокращение области определения (0;+∞) ––> (0;1].
4. Сокращение области определения (0;1] ––> (0;1).
5. Сокращение области определения (0;1) ––> (0;arctg(π/12)].
Делается это по математической формуле: arctg(x) = π/6 + arctg( (x*sqrt(3)-1)/(x+sqrt(3)) ).
Примечание 1: sqrt() у меня определена и работает хорошо.
6. Расчёт арктангенса для x ∈ (0;arctg(π/12)] по ряду Маклорена (ряд Тейлора в окрестности нуля).

Вот код реализации:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
double arctg(double x, int k = default_prec){
    if(x<0.0){return -arctg(-x, k);}
    
    if(x==0.0){return x;}
    
    if(x>1.0){return _pi/2.0 - arctg(1.0/x, k);}
    
    if(x==1.0){return _pi/4.0;}
    
    double z = 0.0;
    double t;
    if(x<0.26795){
        t = x;
        for(int i=1;i<=k;i++){
            z += t/(2.0*i-1.0);
            t *= -x*x;
        }
    }
    else{
        t = (x*sqrt(3.0)-1.0)/(x+sqrt(3.0));
        z += _pi/2.0 + arctg(t, k);
    }
    
    cout.precision(k);
    return z;
}
Однако, результаты работы не верны.
Помогите, пожалуйста, найти ошибку. Заранее спасибо.
Примечание 2: работаю в namespace std с подлюченным iostream.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2021, 20:17
Ответы с готовыми решениями:

Вычислить значение функции atan(x) заданной разложением в ряд Тейлора
Через оператора while Вычислить с помощью разложения в ряд Тейлора значение функции с точностью...

Вычислить значение функции atan(x) заданной разложением в ряд Тейлора
добрый день, нужна помощь в написании программы для вычисления суммы ряда, условия прикрепляю во...

Вычисление значения функции заданной разложением в ряд Тейлора
Напишите программу для вычисления значения выражения ...

Вычисление значения функции заданной разложением в ряд Тейлора
Вычислить с точностью сумму бесконечного ряда и указать количество учтенных слагаемых

4
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
01.07.2021, 20:30 2
Цитата Сообщение от Newbie_cpp Посмотреть сообщение
Делается это по математической формуле: arctg(x) = π/6 + arctg( (x*sqrt(3)-1)/(x+sqrt(3)) ).
Тогда почему у вас тут PI/2, а не PI/6?
Цитата Сообщение от Newbie_cpp Посмотреть сообщение
z += _pi/2.0 + arctg(t, k);
0
Заблокирован
01.07.2021, 22:26 3
Цитата Сообщение от Newbie_cpp Посмотреть сообщение
Однако, результаты работы не верны.
Помогите, пожалуйста, найти ошибку. Заранее спасибо.
Слыш, я тебе логарифм запилил уже.
Теперь тебе арктангенс надо.
Мож сразу всё вывалишь, чтоп мы не мучались?

0
1 / 1 / 0
Регистрация: 06.04.2020
Сообщений: 24
02.07.2021, 12:09  [ТС] 4
DrOffset, хороший вопрос
Надо бы поправить...

Добавлено через 3 минуты
Verevkin
Мож сразу всё вывалишь, чтоп мы не мучались?
Спасибо за отзывчивость! Но остальное либо работает (как кв. корень и экспонента), либо не работает из-за натурального логарифма (лог. a по основанию b или a^x, гда a>0).
0
Заблокирован
02.07.2021, 12:16 5
Цитата Сообщение от Newbie_cpp Посмотреть сообщение
Спасибо за отзывчивость!
Ты не путай отзывчивость с сарказмом.
0
02.07.2021, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2021, 12:16
Помогаю со студенческими работами здесь

Вычисление значения функции заданной разложением в ряд Тейлора
Доброго времени суток. Помогите пожалуйста найти ошибки в данной программе. У меня она будто не...

Вычисление значения функции заданной разложением в ряд Тейлора
Дано задание (прикрепил фото). Написал такой код. Но при компиляции вместо результата появляется...

Вычисление значения функции заданной разложением в ряд Тейлора
Приветствую! Имеется задача-https://i m g u r . c o m /a/YyFxa9h (На E не обращайте внимание)...

Вычисление значения функции заданной разложением в ряд Тейлора
Проблема такая: ввожу погрешность до которой она должна считать. Ввожу 0,1 0,001 - ответ тот же...

Вычисление значения функции заданной разложением в ряд Тейлора
Очень много времени ломаю голову, пока кое-как получилось вот такое: double i,j,n, x, ...

Вычисление значения функции заданной разложением e^x в ряд Тейлора
Можете пожалуйста написать комментарии к коду и объяснить программу #include &lt;iostream&gt; using...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru