Shell-Script

Shell Scripting:以實數為指數計算數字的冪

  • January 31, 2018

我正在使用 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選項呼叫時,具有函式ele分別計算底數和自然對數,所以為了計算a^b你只需要寫e(l(a)*b)

例如,對於 2 0.5(2 的平方根):

$ echo 'e(l(2)*0.5)' | bc -l
1.41421356237309504878

引用自:https://unix.stackexchange.com/questions/258644