ďťż

78832_1

Lemur zaprasza

Strona: [  >  ]  z  1     










Autor
Temat: arcsin i arccos











marcin_an

Forumowicz






Typ:
neutral

Postów: 1265

Zarejestrowany: Mar 2004





arcsin i arccos


Czy ktoś wie, jak w VB uzyskać funkcje arcsin i arccos? W MSDN podają jak, ale to zupełnie nie działa (czyżby MS znowu gdzieś się pomylił ).

Podaję tutaj przykład z MSDN:
arcsin(x) = Atn(x / Sqr(-x * x + 1))
arccos(x) = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)

Może to nie problem VB, ale jednocześnie spytam, czy ktoś zna jakiś algorytm wyciągania pierwiastków przy pomocy czterech podstawowych funkcji arytmetycznych (+,-,*,/) i modulo.



_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






28-06-2004 10:14



 
    














bisiek







Typ:
neutral

Postów: 487

Zarejestrowany: Jul 2003







Żeby to zadziałało, należy najpierw zamienić x na zakres liczb 0 - 1, tak jak zwraca sin/cos.

'W pewnych wypadkach występuje pierwiastkowanie liczby ujemnej, a warunki If za funkcjami Arcsin i Arccos usuwają ten błąd.

On Error Resume Next
'Obliczanie promienia
r = Sqr(X1 ^ 2 + Y1 ^ 2)

X1 = X1 / r
Y1 = Y1 / r

'Do funkcji dodałem kilka warunków _
i nie ma już wyjątków w jej działaniu (chyba)
a = Atn(X1 / Sqr(-X1 * X1 + 1))
If Y1 < 0 Then a = pi - a
If X1 = 1 Then a = pi / 2
If X1 = -1 Then a = pi / 2 * 3

b = Atn(-Y2 / Sqr(-Y2 * Y2 + 1)) + 2 * Atn(1)
If X2 < 0 Then b = pi - b - pi
If X2 = 0 And Y2 = -1 Then b = b - pi

Wynik podawany jest w radianach



_____________________________________________
www.mob.abc.pl - moja strona o VB






28-06-2004 11:25



 
        

3380672














marcin_an

Forumowicz






Typ:
neutral

Postów: 1265

Zarejestrowany: Mar 2004







Właściwie dałeś mi ten sam wzór MSDN .

Ale już wiem, gdzie leżał błąd. Częściowo leżał on po mojej stronie. Nie skojarzyłem, że arcsin ma sens tylko dla sinusów kątów od -pi/2 do pi/2. A ja mu dawałem np. kąt 2...
Druga rzecz to niedokładność funkcji sin. Właściwie to nie jej wina, ale gdy da się jej np. kąt pi, to zwraca około 1.12e-16. Blisko zera, ale ponieważ pi nie było równe pi, to i wynik nie będzie równy 0.
Jeśli obydwie sprawy się zsumuje, to nie ma wątpliwości, dlaczego arcsin(sin(2)) wychodził mi ~1.41 .

Dzięki za pomoc.



_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






28-06-2004 12:01



 
    













Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza