Algorytm (?) wyliczania funkcji trygonometrycznych

0

W jaki sposób działają takie funkcje, jak np. Math.sin(x) w Javie? Rozumiem, że wyliczają wartość funkcji trygonometrycznej, ale w jaki sposób wylicza się tą wartość na podstawie tylko i wyłącznie wymiarów kąta?

Wydaje mi się raczej mało prawdopodobne, by gdzieś była przechowywana tablica z kątami i funkcjami.

2

http://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora
a = 0
sin(a) = 0
sin(1)(a) = cos(a) = 1
sin(2)(a) = -sin(a) = 0
sin(3)(a) = -cos(a) = -1
sin(4)(a) = sin(a) = 0
...
i podstaw do wzoru, zakoncz liczenie na np. 10 wyrazie i masz juz dosc dobre przyblizenie.

Nawet na wiki jest rozpisane:
http://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora#Funkcje_trygonometryczne_i_cyklometryczne

0

Java korzysta z tej biblioteki: http://www.netlib.org/fdlibm/. Przyjemnej lektury.

1
krwq napisał(a):

http://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora
a = 0
sin(a) = 0
sin(1)(a) = cos(a) = 1
sin(2)(a) = -sin(a) = 0
sin(3)(a) = -cos(a) = -1
sin(4)(a) = sin(a) = 0
...
i podstaw do wzoru, zakoncz liczenie na np. 10 wyrazie i masz juz dosc dobre przyblizenie.

Nawet na wiki jest rozpisane:
http://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora#Funkcje_trygonometryczne_i_cyklometryczne

Tego tak nie obliczamy... te szeregi są zbyt wolno zbieżne.

0

używasz instrukcji FPU i masz gotowe - do 19 cyfr.

fld x
fsincos

sin i cos naraz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1