Awk 내부함수중에 코사인(cos)의 역함수(arccos)는 없는지요?

mack97의 이미지

안녕하세요.

Awk내에서 코사인의 역함수를 쓸려구 하는데, 찾을수 없네요.

인터넷 찾아봐도, 간단한 수학함수만 있구..

역함수 자체가 존재하지 않는지도 모르겠군요.

내부함수 정리한 문서나 관련정보 부탁드립니다.

그럼 좋은 하루 되세요.

cinsk의 이미지

제가 수학에 약해서 잘은 모르지만, arcsine (inverse sine)의 경우 arctangent (inverse tangent)를 써서 만들 수 있을 겁니다. 여기 참조

그리고 gawk에서 atan2라는 arctangent 함수를 제공합니다.

mack97의 이미지

근데 저도 봐서 모르겠네요. 아무리 돌려봐도, 아크탄젠트로부터

아크 사인은 만들수가 없네요.

왜 atan2에는 파라메타가 두개 들어가는지.. 참 이상하네요.

그리고 왜 다른 아크 족(?-sin, cos)은 안 만들었을까?

참 뭔가 심오한 진리가 있을듯 싶네요.

sunyzero의 이미지

심오한 진리라고 할것까지는 없지만, 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.

mack97의 이미지

두분 모두 감사합니다.

예전에 배운기억이 없지만,,

매스월드 홈피를 다시 보니 거기에 나와있네요.

좋은 하루 되세요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.