УДК 681.325
Совершенствование полиномиальных методов воспроизведения тригонометрических функций в информационно-вычислительных системах
Пантелеев И.В., Чекушкин В.В. Аннотация: Проведено исследование способов вычисления функций арктангенса, арксинуса и тангенса в соответствии с задачей оптимизации критериев вычислительного процесса: точностных характеристик, быстродействия и программно-аппаратных затрат. Предложены эффективные вычислительные алгоритмы с устранением избыточной точности, обеспечением дискретного приращения точности не менее 1..3 значащих двоичных цифр при последовательном возрастании сложности вычислительного алгоритма не более чем на 1..2 вычислительных операции в диапазоне представления результата 1..30 двоичными разрядами.
Ключевые слова: тригонометрические функции, полиномы наилучшего приближения, аппроксимация, специализированные вычислители.
Development of polynomial methods of goniometric functions display in information computation system
Panteleev I.V., Chekushkin V.V. Abstract: Number of admissible alternative of antitangent, antisine and tangent functions evaluation analysis is conducted in accordance with the defined objective optimisation function of computation process criteria i.e. precision characteristics, performance and hardware-software expenditures. Efficient computing algorithms are put forward. They provide redundant accuracy elimination by discrete increment of not more than 1..3 significant binary numeral when compilation of computing algorithm is sequentially increasing by not more then 1..2 computing operations providing if the result is represented in the range of 1..30 binary digit bits.
Key words: goniometric functions, polynomial of best approximation, approximation, special-purpose calculator.
Введение
В специализированных вычислителях технических систем при различных условиях применения и, как следствие, различных значениях погрешностей вычислений следует использовать наиболее рациональные методы и вычислительные алгоритмы с целью сокращения программно-аппаратных затрат и времени вычислений. Особенно актуально этот вопрос стоит при реализации трудоемких, часто повторяющихся операций.
Целью данной статьи является сравнительный анализ и улучшение быстродействующих методов и алгоритмов воспроизведения функций арктангенса, арксинуса и тангенса в специализированных вычислителях технических систем при исключении невостребованной избыточной точности с формированием от 1 до 30 значащих двоичных разрядов в формате с фиксированной запятой перед старшим разрядом. Например,
такой диапазон представления результата соответствует приведенной относительной погрешности измерений от 50% до 10-6%. Исследованы методы обеспечения максимального приращения числа значащих цифр представления результата при соответствующем ему минимальном увеличении числа вычислительных операций и обращений к памяти.
Аппроксимация функций arctg(x), arcsin(x) и tg(x) рядом Тейлора
При аппроксимации функций применяются ряды Тейлора [1]:
arctg( х) = X ^^ х 2"-1, (1) 2п -1
arcsin(х) = V (-1)п •(2п -1)! • (2)
П=0 2п! 2п +1' и
¥ /-ч 2п 2п 1\
*(х) = V 2 (2 ! -1) Вп х2п-1, (3)
п=1 2п!
где Вп - числа Бернулли.
Для более наглядной иллюстрации на рис.1 представлены графики аппроксимации функции агС^(х) рядом Тейлора с использованием пяти членов аппроксимирующего полинома:
3 5 7 9 , v X X X X
Тtan(x) = X--+---+- .
3 5 7 9
(4)
Текущее значение погрешности рассчитывается по формуле 5(х)= агс^(х) - Рп(х), где Рп(х) аппроксимирующий полином.
Применение ряда Тейлора в соответствии с (1) для аппроксимации функции арктангенс неэффективно даже для значений аргумента на интервале х 6 [-1; 1], т.е. для значений функции [-45°;45°] (таблица 1).
Таблица 1. Погрешности ряда Тейлора
для функции агС^(х) на интервале х
Количество Максимальная
членов погрешность, 5м
1 0.2146
2 0.1187
3 0.0813
4 0.0616
5 0.0495
6 0.0414
7 0.0355
8 0.0311
-1;1]
Анализ выражений (1)-(3) и таблицы 1 показывает, что при повышении степени по-
линома не обеспечивается эффективное снижение погрешности. В связи с этим рассмотрим методы аппроксимации функций с помощью полиномов Чебышева, которые при заданном числе членов полинома п в общем случае обеспечивают уменьшение погрешно-
Ш2п+1
раз.
Аппроксимация функций агС^(х), агс8ш(х) и tg(x) полиномами наилучшего приближения
В общем случае оценка максимальной погрешности интерполяции для полинома Чебышева Рп(х) степени п на интервале х е [а, Ь] имеет вид [2]
/ [п+1](х)(Ь - а)п+1
|f(x)-Pn(x)|
<-
(5)
(п + 1)!-22п+1 Таким образом, теоретически при переходе от аппроксимирующего полинома, например, первой степени к полиному второй степени уменьшение значения погрешности будет равно
12 / [п+1]( х) (Ь - а)/[п+2](х) . ( )
В тоже время формулы (5) и (6) дают лишь общее представление о возможностях уменьшения погрешностей вычисления функций. В связи с вышеизложенным было
е
1.2 Y . teilorfx) 0.06 5
0.8 arctg(x) 0.04
0.6
0.4 0.02
0.2 X X
-1.2 -1 -0.8 -0.6 -0.4 -0.2 'А /-0.2 / -0.4 yS -0.6 -0.8 -1 -1.2 0.2 0.4 0.6 0.8 1 1.2 -1.2 -1 -И^-М -0.4 -0.2 0 -0.02 -0.04 -0.06 0.2 0.4 0.6 0.8 1 1.2
Рис. 1. Аппроксимация функции агС^(х) рядом Тейлора (4) на интервале х е [-1;1]. а. Графики функций 1аЛог(х) - аппроксимирующая функция (4), аг^(х) - функции арктангенса. б. Погрешность аппроксимации функции рядом Тейлора (2)
проведено моделирование с поиском полиномов наилучшего приближения [3-5].
В таблицах 2, 3 представлены полиномы наилучшего приближения (1-8)-й степеней функции агС£(х) с разложением как по всем, так и только по нечётным степеням аргумента, соответствующие им количества операций вычисления полиномов и максимальные значения погрешностей приближения 5м. Число операций вычисления функций включает выборку констант полинома из памяти. Максимальное значение погрешности приближения было рассчитано путём моделирования, в ходе оптимизации коэффициентов
полинома наилучшего приближения.
Поскольку функция агС§(х) является нечётной, то общепринято при аппроксимации использовать только члены полинома с нечётными степенями. В то же время, интересно отметить, что для полинома Р(х) = х(1.054-0.265х) со всеми членами при меньшем числе вычислительных операций получаем и меньшее максимальное значение погрешности, чем для полинома Р(х)=х(0.972-0.192х2) с нечётными членами. В общем же случае таблицы 2 и 3 взаимодополняются, так как для диапазона максимальных значении погрешностей
п
Таблица 2. Полиномы наилучшего приближения Р(х) = Vа{х' для функции аг^(х) на
1=1
интервале х е [0;1]
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-0.834 0.047 2
2 х(1.054-0.265-х) 3.5-10-3 5
3 х(1.0268+ х(-0.1649-0.0779-х) 1.3-10-3 8
4 х(1.00241+х(-0.01306+х(-0.34523+0.14142-х))) 1.110-4 11
5 х(0.998738+ х(0.020667+ х(-0.443762+ х(0.256253-0.046466х)))) 2.45-10-5 14
6 х(0.9995838+ х(0.0079233+ х(-0.3820937+ +х(0.1271356+х(0.0754526-0.0426139-х))))) 6.97-10-6 17
7 х(0.99998793+х(-0.00001226+х(-0.3301835+ х(-0.02895429+ +х(0.31265385+х(-0.21985323+ 0.05176037-х)))))) 3.93-10-' 20
8 х(1.000022228+х(-0.000769736+ х(-0.324236385+х(-0.051718998+ +х(0.36007999+х(-0.274793092+х(0.085018495-0.008203966х))))))) 2-10-/ 23
п
Таблица 3. Полиномы наилучшего приближения Р(х) = V а'Х2'-1 для функции аг^(х) на
1=1
инте рвале х е [-1;1].
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-0.834 0.047 2
2 х(0.972-0.192-х2) 5-10-3 6
3 х(0.9954+ х2(-0.2892+0.0799-х2) 6.2-10-4 9
4 х(0.999236-х2(-0.321411+х2(0.146855-0.039391-х2))) 8.2-10-5 12
5 х(0.999871+ х2(-0.3303845+ х2(0.1805071+ х2(-0.0857019+ +0.0211243-х2)))) 1.15-10-5 15
6 х(0.9999781+ х2(-0.3326466+ х2(0.1936986+ х2(-0.116845+ +х2(0.0531233-0.0119132-х2))))) 1.7-10-6 18
7 х(0.9999963+х2(-0.3331802+х2(0.19813889+ х2(-0.13257127+ +х2(0.08006986+х2(-0.03400133+ 0.00694645-х2)))))) 2.5-10-7 21
8 х(0.999999373+х2(-0.333300284+ х2(0.199486432+х2(--0.139198059+ х2(0.096726827+х2(-0.056353225+ +х2(0.022185025-0.004148023-х2))))))) 4.72-10-8 24
5 е [0.05;10- ] именно совместное применение этих таблиц обеспечивает последовательное дискретное уменьшение значений погрешностей при минимальном увеличении числа операций реализации алгоритма на интервале приближения х е [0;1]. В тоже время для диапазона значений аргумента х е [-1;1], более эффективным является применение таблицы 3, поскольку нет необходимости при расчёте в диапазоне х е [-1;0] выносить знак аргумента за пределы расчётной формулы.
Значительное приращение числа двоичных цифр результата обеспечивается при небольших показателях степени полинома. Так, например, при переходе от полинома первой степени к полиному второй степени в таблице 2 значение погрешности уменьшается в 0.047/0.0035=13.43>23 раза. Таким образом, при снижении погрешности в 2 раза, трудоёмкость алгоритма возрастает на одну операцию.
В таблицах 4 и 5 представлены полиномы
Таблица 4. Полиномы наилучшего приближения Р(х) = V ах , для функции агс8т(х) на
1=1
инте рвале х е [0;1]
№ Полином наилучшего приближения Максимальная погрешность метода, 5М Число операций
1 х-1,32 0,15 2
2 х(0,5109+0,8995-х) 0,07 5
3 х(1,52051+ х(-2,02192+1,94891 -х) 0,038 8
4 х(0,444857+х(3,800455+х(-7,281616+4,502597-х))) 0,025 11
Таблица 5. Полиномы наилучшего приближения Р(х) = V а^ъ 1 для функции агс8т(х)
1=1
на интервале х е [-1;1]
n
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-1,32 0,15 2
2 х(0,7874+0,64-х2) 0,055 6
3 х(1,15769+ х2(-0,64722+0,95122 -х2) 0,028 9
4 х(0,879164+х2(1,301897+х2(-2,612226+1,910224-х2))) 0,016 12
5 х(1,09381374+ х2(-1,23638881+ х2(5,75364955+ х2(--8,51732252+ 4,39618825-х2)))) 0,0098 15
6 х(0,926753473+ х2(1,767161444+ х2(-9,727379332+ +х2(24,598911932 +х2(-26,981376982+10,913583649-х2))))) 0,0064 18
7 х(1,0579689753+х2(-1,57769702352+х2(15,0759124072+ +х2(-55,286062117+х2(99,3798849288+х2(-85,8070907866+ +28,6603577583-х2)))))) 0,0043 21
8 х(0,9551837201812+х2(1,946005961419+ +х2(-20,36360308296+х2(103,5972196121+х2(-269,4685089713+ +х2(376,021768337+ х2(-267,5469679664+ +76,3667294364-х2))))))) 0,0029 24
9 х(1,035769580471+х2(-1,6438568878023+ х2(26,803532167611+ +х2(-177,15480932225+х2( 623,23355084447 + +х2(-1243,9652167295 + х2( 1415,2688012570 + +х2(-855,19405562135 +213,12774055835-х2)))))))) 0,0020 27
10 х(0,97107232433653+х2(1,98461942745568 + +х2(-33,4386882490092 +х2(280,910258484893 + +х2(-1275,23753931948 +х2(3402,37729226286 + + х2(-5488,50301303657 + х2(5264,51536008975+ +х2( -2763,43795053178 +611,373213266646-х2))))))))) 0,0015 30
наилучшего приближения функции агс8т(х) на интервалах аппроксимации х е [0;1] и хе [-1;1].
Анализ таблиц 4 и 5 показывает, что не обеспечивается эффективное приращение числа точности при увеличении степени полинома. В связи с этим в таблице 6 представлены полиномы наилучшего приближения функции агс8т(х) в более коротком интервале х е [-п/4; п/4].
Анализ таблиц 4-6 показывает, что при
использовании более короткого интервала обеспечивается значительное уменьшение числа вычислительных операций. Для вычисления функции агс8т(х) для углов от 00 до 3600 используются формулы приведения [2].
В таблицах 7 и 8 представлены полиномы наилучшего приближения функции tg(х) на интервалах аппроксимации х е [00;450] и х е [-450;450].
п
Таблица 6. Полиномы наилучшего приближения Р(х) = ^а^х2'-1 для функции агс8т(х)
1=1
на интервале х е [-п/4; п/4].
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-1,11 3.3-10-2 2
2 х(0,9805+0,268-х2) 3.5-10-3 6
3 х(1,00387+ х2(0,12417+0,18158-х2) 4.8-10-4 9
4 х(0,999192+х2(0,181881+х2(0,000473+0,164049-х2))) 7.7-10-5 12
5 х(1,0001725+ х2(0,1616865+ х2(0,114457+ + х2(-0,0763212+0,1699353-х2)))) 1.3-10-5 15
6 х(0,99996253+ х2(0,16820399+ х2(0,0571849+ +х2(0,13061714+х2(-0,15886787+0,19067892-х2))))) 2.4-10-6 18
7 х( 1,000008226+х2(0,16621109+х2(0,082242644+ +х2(-0,00524535+х2(0,200829931+х2(-0,267965322+ +0,225508979-х2)))))) 4.5-10-' 21
8 х(0,999998175755703+х2(0,166797736094472+ + х2( 0,0722673808257795 +х2(0,0699301326410651+ +х2(-0,0911306446595088+х2(0,341115553929443+ +х2(-0,423128091151469+ 0,276835665574784-х2))))))) 8.8-10-8 24
9 х(1,00000040392959+х2(0,166630088546954+ +х2(0,0759680334332324 +х2(0,0330906893209471+ +х2( 0,104018877018068+х2(-0,24691286989878+ +х2( 0,588212971288448+ х2(-0,647766631483066 + +0,348584856276148-х2)))))))) 1.8-10-8 27
10 х(0,999999908754265+х2(0,166676820244922+ +х2(0,0746680428380795 +х2(0,0495909267573078+ +х2(-0,0097634273521462+х2(0,21509898176976+ +х2(-0,547878015992813 + х2(1,01519345935287+ +х2(-0,984435029706507+0,450436702384308-х2))))))))) 3.6-10-9 30
п
Таблица 7. Полиномы наилучшего приближения Р(х) = ^ а{х' для функции tg(х) на ин-
1=1
тервале х е [0°;45°].
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-1,205 4,5-10-2 2
2 х(0,848+0,52-х) 1,3-10-2 5
3 х( 1,036+ х(-0,225+0,667-х) 2-10-3 8
п
Таблица 8. Полиномы наилучшего приближения Р(х) = ^ а1х2'-1, для функции tg(x) на
1=1
интервале х е [-450;450]
№ Полином наилучшего приближения Максимальная погрешность метода, 5м Число операций
1 х-1,205 4,5-10-2 2
2 х(0,975+0,474-х2) 4,6-10-3 6
3 х(1,00251+ х2(0,30334+0,21876-х2) 3-10-4 9
4 х(0,999766-х2(0,338081+х2(0,107793+0,101761-х2))) 2,2-10-5 12
5 х(1,0000206+ х2(0,3326967+ х2(0,1387736+ х2(0,0354876+ +0,0473773-х2)))) 1,6-10-6 15
6 х(0,99999824+ х2(0,33340977+ х2(0,13238827+ +х2(0,05890532+х2(0,00972059+0,02205418-х2))))) 1,2-10-/ 18
7 х(1,000000145+х2(0,333324818+х2(0,133476584+ +х2( 0,052914669 +х2(0,025780731+х2(0,00135914+ +0,01026748-х2)))))) 8,8-10-9 21
8 х(0,999999988112048+х2(0,333334229624309+ +х2( 0,133313675274316+х2(0,0541607513201892+ +х2( 0,0208801006700207+х2(0,0116934536634131+ +х2(-0,000841269428722426+ 0,00478009964527882-х2))))))) 5,6-10-10 24
9 х(1,00000000095242+х2(0,333333243258169+ +х2(0,133335828124423+х2(0,0539369659232132+ +х2( 0,0220805955851977+х2(0,00803622883067087+ +х2( 0,00550957611000872+ х2(-0,001075766869434 + +0,00222457656354926-х2)))))))) 4-10-11 27
10 х(0,999999999924211+х2(0,33333334211685+ +х2( 0,133333033888051 +х2(0,0539729222711873+ +х2( 0,021829671973606+х2(0,009065809805989 + +х2( 0,00295434684158796+ х2(0,00269528924018823+ +х2(-0,000820554113069624+0,00103578669945504-х2))))))))) 2,9-10-12 30
Анализ таблиц 7 и 8 показывает, что при аппроксимации функции tg(x) более эффективным является применение полиномов с нечётными степенями.
Заключение
Проведено исследование способов вычисления функций тангенс, арктангенс и арксинус в соответствии с задачей оптимизации критериев вычислительного процесса: точностных характеристик, быстродействия и программно-аппаратных затрат. Предложены эффективные вычислительные алгоритмы с устранением избыточной точности, обеспечено последовательное дискретное приращение точности не менее 1..3 значащих двоичных цифр при последовательном возрастании сложности вычислительного алгоритма не более чем на 1..2 вычислительных опера-
ции в диапазоне представления результата измерений 1..30 двоичными разрядами.
Разработанные алгоритмы вычисления предложенных функций целесообразно использовать как на уровне аппаратной реализации специализированных вычислительных устройств измерительных систем, так и на уровне макрорасширений команд микропроцессора.
Литература
1. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся вузов. М.: Наука, 1986. 544 с.
2. Чекушкин В.В., Булкин В.В. Вычислительные процессы в информационно -измерительных системах: учебное пособие. Муром: Изд. - полиграфический центр МИ ВлГУ, 2009. 120 с.
3. Пантелеев И.В., Чекушкин В.В. Моделирование поиска полиномов наилучшего приближения // Вопросы радиоэлектроники. 2011, №1. С.119-125.
4. Чекушкин В.В., Пантелеев И.В., Богатое А .Д. Способ калибровки измерительных систем. Патент №2476896 от 28.02.2012г. №6.
5. Пантелеев И.В., Сарибжанов Р.В., Чекушкин В.В. Совершенствование методов поиска полиномов наилучшего приближения для воспроизведения функциональных зависимостей в измерительных системах // Радиотехнические и телекоммуникационные системы. 2012. №2. С.49-52.
References
1. Bronstein I.N., Semendyaev K.A. Spravochnik po matematike dlya inzenerov i uchashihsya vuzov. M.: Nauka, 1986. 544 p.
Поступила 11 февраля 2013 г.
2. Chekushkin V.V. Vichislitelnie procesi v in-formaciono-izmeritelnih sistemah: uchebnoe posobie/ V.V. Chekushkin, V.V. Bulkin. Murom: Izd.-poligaficheskii centr MIVlGU. 2009. 120s.
3. Panteleev I.V, Chekushkin V.V. Voprosi radi-oelektroniki. 2011. №1. pp.119-125.
4. Chekushkin V.V, Panteleev I.V., Bogatov A.D. Sposob kalibrovki izmeritelnih system. Patent №2476896 ot 28.02.2012g. B №6.
5. Panteleev I.V., Saribzhanov I.R., Chekushkin V.V. Radiotehnicheskie i telekomunikacionnie sis-temi. 2012, №2, pp.49-52.
Информация об авторах
Пантелеев Илья Владимирович - аспирант Муромского института (филиала) ФГБОУ ВПО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых».
E-mail: [email protected].
Чекушкин Всеволод Викторович - доктор технических наук, профессор Муромского института (филиала) ФГБОУ ВПО «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых».
E-mail: [email protected].
Адрес: 602264 Муром, ул. Орловская, д. 23.
Panteleev Ilya Vladimirovich - graduate student Murom institute (branch) «Vladimir state university named after Alexander and Nickolay Stoletovs».
Chekushkin Vsevolod Viktorovich - the Doctor of Engineering, the professor Murom institute (branch) «Vladimir state university named after Alexander and Nickolay Stoletovs».
Address: 602264 Murom, st. Orlovskaya, h. 23.