[問題] 用shell scripts計算反三角函數(附上解法)
我現在寫一個腳本 想要算出反三角函數的值
我有一個資料檔data裡面有我的數據
如下
#!/bin/bash
cat data |awk '
NR>=1{
b = acos($1)
x = 2*b*cos($3*0.01745)*sin($1/2*0.01745)/sin(b*0.01745)
y = b*sin($3*0.01745)/sin(b*0.01745)
printf"%8.6f, %1s, %8.6f\n" ,x, $2, y}'$dataname-input
現在就是b = 那個地方
無論我用acos還是arccos 好像都沒辦法算出反三角數
完全沒頭緒..有甚麼辦法可以去計算反三角函數嗎?
終點機顯示:
awk: cmd. line:2: (FILENAME=- FNR=1) fatal: function `acos' not defined
如果是這樣 是要我自己定義acos的意思嗎?
要怎麼去定義??
跪求相關想法 麻煩了
解答:
我查詢了awk的功能 發現他只有支援arctan 寫成atan2(y,x)
先找出cos(a)=b 因為我們已經有b值
已經知道cos(a)=b/1(斜邊分之臨邊) 表示對邊邊就是sqrt(1-b^2)
這樣可以找出sqrt的值以後 對邊跟b在用atan2即可以找出a角度為多少
很感謝大家的解答 雖然有看沒有懂 囧
補上自己比較笨的作法 希望可以幫助到有需要的人
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.50.52.49
※ 編輯: danny6430 來自: 123.50.52.49 (08/05 17:32)
→
08/05 17:41, , 1F
08/05 17:41, 1F
推
08/05 17:49, , 2F
08/05 17:49, 2F
→
08/05 17:51, , 3F
08/05 17:51, 3F
→
08/05 17:54, , 4F
08/05 17:54, 4F
→
08/05 20:24, , 5F
08/05 20:24, 5F
→
08/05 20:24, , 6F
08/05 20:24, 6F
→
08/05 20:25, , 7F
08/05 20:25, 7F
推
08/05 20:58, , 8F
08/05 20:58, 8F
※ 編輯: danny6430 來自: 123.50.52.49 (08/05 21:40)
→
08/06 08:02, , 9F
08/06 08:02, 9F