안녕하세요.
Awk내에서 코사인의 역함수를 쓸려구 하는데, 찾을수 없네요.
인터넷 찾아봐도, 간단한 수학함수만 있구..
역함수 자체가 존재하지 않는지도 모르겠군요.
내부함수 정리한 문서나 관련정보 부탁드립니다.
그럼 좋은 하루 되세요.
제가 수학에 약해서 잘은 모르지만, arcsine (inverse sine)의 경우 arctangent (inverse tangent)를 써서 만들 수 있을 겁니다. 여기 참조
그리고 gawk에서 atan2라는 arctangent 함수를 제공합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
근데 저도 봐서 모르겠네요. 아무리 돌려봐도, 아크탄젠트로부터
아크 사인은 만들수가 없네요.
왜 atan2에는 파라메타가 두개 들어가는지.. 참 이상하네요.
그리고 왜 다른 아크 족(?-sin, cos)은 안 만들었을까?
참 뭔가 심오한 진리가 있을듯 싶네요.
심오한 진리라고 할것까지는 없지만, arctan 로 arcsin, arccos 은 구할 수 있기 때문에 굳이 구현하지 않았나 싶습니다.
그리고 atan2()에 파라메터가 두개인 것은 역삼각형 함수중에 그냥 atan 은 4분구간을 알려줄 수 없기때문에 인수를 보고 어떤 구간에 속하는지 알려면 atan2()가 유리합니다. 좀더 효율성이 높다고 봐야겠죠.
C언어에서는 두개의 atan, atan2 를 모두 지원하지만, 굳이 awk 와 같은 언어에는 한개만 지원하는게 더 좋을테고, 그럴바엔 atan2가 낫겠죠?
그리고 tan-1 값을 아신다면 다른 역함수는 구할 수 있습니다. asin(x) = atan(x/ sqrt(1 - x^2)) 으로 구할 수 있기 때문에
awk를 기준으로 푼다면, asin(3/5)를 구하신다면
awk '{ print atan2(0.6, sqrt(1 - 0.6 * 0.6)); }'
로 구하시면 됩니다.
삼각함수의 주기는 2*PI 죠. 그중에서 여기서 관심을 두는 삼각형은 PI/2 의 범위를 가지기 때문에 acos 은 PI/2 - asin(x) 으로 간단하게 구할 수 있습니다.
======================================== * The truth will set you free.
두분 모두 감사합니다.
예전에 배운기억이 없지만,,
매스월드 홈피를 다시 보니 거기에 나와있네요.
좋은 하루 되세요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
제가 수학에 약해서 잘은 모르지만, arcsine (inverse sin
제가 수학에 약해서 잘은 모르지만, arcsine (inverse sine)의 경우 arctangent (inverse tangent)를 써서 만들 수 있을 겁니다. 여기 참조
그리고 gawk에서 atan2라는 arctangent 함수를 제공합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
앗 감사합니다.
근데 저도 봐서 모르겠네요. 아무리 돌려봐도, 아크탄젠트로부터
아크 사인은 만들수가 없네요.
왜 atan2에는 파라메타가 두개 들어가는지.. 참 이상하네요.
그리고 왜 다른 아크 족(?-sin, cos)은 안 만들었을까?
참 뭔가 심오한 진리가 있을듯 싶네요.
간단한 역삼각함수 계산법.
심오한 진리라고 할것까지는 없지만, arctan 로 arcsin, arccos 은 구할 수 있기 때문에 굳이 구현하지 않았나 싶습니다.
그리고 atan2()에 파라메터가 두개인 것은 역삼각형 함수중에 그냥 atan 은 4분구간을 알려줄 수 없기때문에 인수를 보고 어떤 구간에 속하는지 알려면 atan2()가 유리합니다. 좀더 효율성이 높다고 봐야겠죠.
C언어에서는 두개의 atan, atan2 를 모두 지원하지만, 굳이 awk 와 같은 언어에는 한개만 지원하는게 더 좋을테고, 그럴바엔 atan2가 낫겠죠?
그리고 tan-1 값을 아신다면 다른 역함수는 구할 수 있습니다.
asin(x) = atan(x/ sqrt(1 - x^2)) 으로 구할 수 있기 때문에
awk를 기준으로 푼다면, asin(3/5)를 구하신다면
로 구하시면 됩니다.
삼각함수의 주기는 2*PI 죠. 그중에서 여기서 관심을 두는 삼각형은 PI/2 의 범위를 가지기 때문에 acos 은 PI/2 - asin(x) 으로 간단하게 구할 수 있습니다.
========================================
* The truth will set you free.
두분 모두 감사합니다. 예전에 배운기억이 없지만,,매스월드
두분 모두 감사합니다.
예전에 배운기억이 없지만,,
매스월드 홈피를 다시 보니 거기에 나와있네요.
좋은 하루 되세요.
댓글 달기