IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Вычисление арксинуса с высокой точностью
snav
26.7.2012, 18:43
Сообщение #1


Kорифей
****

Группа: Модераторы
Сообщений: 4 135
Регистрация: 13.4.2008
Из: Россия
Пользователь №: 7 457



Ребят, возникла такая задача на работе: нужно научиться вычислять тригонометрические функции с высокой точностью. В стандартном 8-байтном типе double слишком мало разрядов, поэтому библиотечные функции не годятся. Хочу использовать 16-байтный тип decimal в .NET. Функции Sin, Cos, Tan, Atan уже написал, используя разложение в степенные ряды. Осталось придумать, как запрограммировать арксинус и арккосинус.

Стандартный степенной ряд arcsin(x) = x + 1/6 * x^3 + 3/40 * x^5 +...
сходится более менее быстро только при |x| < 1/2. А при |x| > 1/2 скорость сходимости резко падает. Сейчас вычисляю арксинус через численное решение уравнения sin(x)=a, но это очень медленно.
Чтобы придумать для быстрого вычисления в диапазоне |x| > 1/2?

Может быть, выполнить какое-то математическое преобразование, чтобы от вычисления арксинуса в области |x| > 1/2 перейти к вычислению арксинуса в области |x| < 1/2. Но преобразование не должно приводить к существенной потере точности.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщения в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



- Упрощённая версия Сейчас: 19.7.2025, 4:11
Яндекс.Метрика