Shell-Script
Shell Scripting:以實數為指數計算數字的冪
我正在使用 shell 腳本,並且正在使用以下表達式:
A=`echo "(( (($a / $b) ^ 0.3) -1 ))" |bc -l`
我想要一個實數作為指數。我注意到如果我放置 0.3,它會四捨五入為整數並取零的冪。同樣,如果我在上述表達式中使用 5.5 或 5.9 代替 0.3,我會得到相同的答案。
如何計算指數為實數而不是整數的數字的冪
為什麼不能使用 awk 或 perl 單線器來處理呢?
echo "$a $b" | awk '{ print ((($1/$2)^0.3) -1); }'
您不能直接使用
^
運算符來提高到非整數指數,但是,您可以使用恆等式a b = e ln(a) × b
以
e
自然對數為底。bc
,當使用-l
選項呼叫時,具有函式e
和l
來e
分別計算底數和自然對數,所以為了計算a^b
你只需要寫e(l(a)*b)
。例如,對於 2 0.5(2 的平方根):
$ echo 'e(l(2)*0.5)' | bc -l 1.41421356237309504878