Главная /
Программирование /
Функция arctg(x) (ее также обозначают arctan или atan) представляется рядом Тейлора: arctg(x) = x - x3/3 + x5/5 - x7/7 + ... Этот ряд сходится лишь для значений x, по модулю не превосходящих единицы, а эффективно вычислять его можно лишь для x, по модулю
Функция arctg(x)
(ее также обозначают
arctan
или atan
)
представляется рядом Тейлора:
arctg(x) = x - x3/3 + x5/5 - x7/7 + ...
Этот ряд сходится лишь для значений x
, по модулю не превосходящих
единицы, а эффективно вычислять его можно лишь для x
, по модулю
существенно меньших единицы - например, |x|<0.5
.
(Для значений x
, по модулю близких к единице и не превосходящих
единицу, ряд сходится, но очень медленно, а точность вычисления его суммы
невысока.)
Какие способы вычисления функции arctan(x)
для "плохих"
значений x
возможны? Укажите все разумные способы из
числа перечисленных ниже.
(Предполагается, что мы умеем быстро и точно вычислять квадратный корень
sqrt(z)
, а также знаем константу pi
.)
вопрос
Правильный ответ:
Применив формулу
arctg(x) = 2*arctg(y), где y = x/(1 + sqrt(1 + x*x))
один или несколько раз, мы сведем вычисление
arctg(x)
к вычислению arctg(y)
для меньшего по модулю значения y
.
Применив формулу
arctg(x) = arcsin(x / sqrt(1 + x*x)),
мы сведем задачу к вычислению функции
arcsin(x) = x +(1/2)x3/3 + (1/2)(3/4)x5/5 + (1/2)(3/4)(5/6)x7/7 + ...
Для значений
arcsin(y) = pi/2 - arcsin(sqrt(1 - y*y)),
которая сводит задачу к вычислению ряда функции
arcsin(y)
,
где y=x/sqrt(1+x*x)
. Значение arcsin(y)
можно вычислить как сумму ряда, когда |y|
существенно меньше единицы (например, |y|<0.75
):
y
, по модулю близких к единице, этот ряд
сходится очень медленно, поэтому для них можно дополнительно
воспользоваться формулой
arcsin(z)
для значения z=sqrt(1-y*y)
.
Функция
arctg(x) = pi/2 - arctg(1/x),
сведя задачу к суммированию ряда для функции
arctg(x)
нечетная, поэтому
достаточно уметь ее вычислять только для неотрицательных x
.
Для 0 x 1
вычисляется сумма указанного ряда.
Для x>1
применим формулу
arctg(y)
,
где y=1/x
и значение y
меньше единицы.
Сложность вопроса
93
Сложность курса: Программирование
84
Оценить вопрос
Комментарии:
Аноним
Зачёт в студне отлично. Лечу кутить отмечать 5 в зачётке по тесту
04 янв 2018
Аноним
Если бы не эти ответы - я бы не смог решить c этими тестами intuit.
29 сен 2016
Другие ответы на вопросы из темы программирование интуит.
- # Чему равно значение целочисленной переменной x в результате выполнения приведенного ниже фрагмента программы? int x = 64; while (x*x > 100) { x = -(x / 2); }
- # Рассмотрим реализацию матрицы целых чисел, размеры которой определяются в процессе работы программы, через массив указателей на начало строк, захватываемый в динамической памяти. Каждая строка также представляет собой отдельный массив в динамической памяти: typedef int* intptr; int m, n; // Размеры матрицы: число строк, столбцов . . . intptr* a = new intptr[m]; for (int i = 0; i < m; ++i) { a[i] = new int[n]; } // a[i][j] -- элемент i-й строки и j-го столбца Сколько памяти требуется для хранения прямоугольной матрицы размером в 10 строк и 20 столбцов в 64-разрядной архитектуре (без учета памяти, используемой под описатели фрагментов кучи; предполагаем, что размер элемента типа int равен 4)?
- # Постановка задачи: в файле записана последовательность чисел неизвестной длины (возможно пустая). Между числами стоит разделитель - пробел. Требуется за один просмотр файла и без запомнинания последовательности чисел в массиве определить требуюмую характеристику последовательности. Программа должна содержать функцию, которая получает в качестве параметра имя файла и возвращает требуемое значение в файл (output.txt). Функция main открывает необходимые файлы, проверяет успешность открытия, обращается к функции для вычисления результата и выводит результат в соответствующий файл. Задание: посчитать среднее геометрическое чисел из последовательности.
- # Укажите, чему будет равно значение переменной n в результате выполнения следующего фрагмента программы: double *p = 1000; p += 1000; int n = (int) p;
- # Алгоритм быстрой сортировки упорядочивает случайный массив из 128 элементов в среднем за 0.0001 секунду. За какое примерно время тот же алгоритм упорядочит случайный массив из 1024 элементов?