arcsin(x)=sqrt((315-55*x^2-sqrt(99225-97650*x^2-2435*x^4))*(78*x^2+900))/(26*x^2+300), где sqrt()- корень квадратный, а ^-знак степени, данная формула в интервале 0<x<1 , даёт ошибку не более 1%,
arccos(x)=sqrt(84+6*x-6*sqrt(106+118*x+x^2))/3, данная формула в интервале 0<x<1 даёт ошибку менее 0,1%
arctg(x)=sqrt(6)*sqrt((150+163*x^2)*(315+260*x^2-sqrt(99225+100800*x^2-860*x^4)))/(326*x^2+300), даёт на интервале 0<x<5 , ошибку менее 1%,а на интервале 0<x<2.5 ошибку менее 0,1%
Understanding Digital
Signal Processing
Richard G. Lyons
p. 539
X = Re + j Im
Q - аргумент комплексного числа Х в радианах, используя апроксимацию в радианах
arctg ( Im/Re) = Q = (Im/Re) / [1+0.28125(Im/Re)^2]
Q лежит в пределах от -45 до 45 градусов, -1 < Im/Re < 1 ( max ошибка 0,26 градуса)
вычисление sqrt алгоритм основаный на итерационной формуле Герона.
Xn+1 = (A/Xn + Xn)*1/2
arccos(x)=sqrt(84+6*x-6*sqrt(106+118*x+x^2))/3, данная формула в интервале 0<x<1 даёт ошибку менее 0,1%
arctg(x)=sqrt(6)*sqrt((150+163*x^2)*(315+260*x^2-sqrt(99225+100800*x^2-860*x^4)))/(326*x^2+300), даёт на интервале 0<x<5 , ошибку менее 1%,а на интервале 0<x<2.5 ошибку менее 0,1%
Understanding Digital
Signal Processing
Richard G. Lyons
p. 539
X = Re + j Im
Q - аргумент комплексного числа Х в радианах, используя апроксимацию в радианах
arctg ( Im/Re) = Q = (Im/Re) / [1+0.28125(Im/Re)^2]
Q лежит в пределах от -45 до 45 градусов, -1 < Im/Re < 1 ( max ошибка 0,26 градуса)
вычисление sqrt алгоритм основаный на итерационной формуле Герона.
Xn+1 = (A/Xn + Xn)*1/2
unsigned int root1(unsigned int a){ unsigned int x; x = (a/0x3f + 0x3f)>>1; x = (a/x + x)>>1; x = (a/x + x)>>1; return(x); }
еще один алгоритм
unsigned int isqrt(unsigned int x){ unsigned int m, y, b; m = 0x4000; y = 0; while (m != 0){ b = y | m; y = y >> 1; if (x >= b) { x = x - b; y = y | m; } m = m >> 2; } return y;}
Комментариев нет:
Отправить комментарий