我需要在bash脚本中计算arccos()
。
gawk可以计算cos(theta)
和sin(theta)
。
如何在Linux中计算arccos()
?
您可以通过调用perl等语言来实现所需功能:
acos_05=`perl -E 'use Math::Trig; say acos(0.5)'`
bc
并参考Advantage Bash,当$1
为arccos()
函数的第一个参数时,反余弦函数如下所示。arccos ()
{
scale=3
if (( $(echo "$1 == 0" | bc -l) )); then
echo "a(1)*2" | bc -l
elif (( $(echo "(-1 <= $1) && ($1 < 0)" | bc -l) )); then
echo "scale=${scale}; a(1)*4 - a(sqrt((1/($1^2))-1))" | bc -l
elif (( $(echo "(0 < $1) && ($1 <= 1)" | bc -l) )); then
echo "scale=${scale}; a(sqrt((1/($1^2))-1))" | bc -l
else
echo "input out of range"
return 1
fi
}