Algorytm (?) wyliczania funkcji trygonometrycznych

Algorytm (?) wyliczania funkcji trygonometrycznych
ShookTea
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 629
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.

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2520
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

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

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

fld x
fsincos

sin i cos naraz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.