如何在bc -l或awk中使数学公式正确?

时间:2019-05-09 10:59:26

标签: awk bc

我想在bc -l或awk中求解一个公式。

我有一些可以如下定义的修订号:

A=5.8506
B=200.26323
C=151.3219
D=11.9275
E=0 and 5

我想用下面的数学公式得到答案:

Ei={(B)*(C/(E*D+C))^(1/D)}^(1/3)

我的公式的答案对于E = 0应该为5.7965,对于E = 5应该为5.7965。

请向我建议一种简单的方法来获得上述数学公式的答案。到目前为止,我还没有找到任何代码。

我尝试过的事情:

a=$(echo "$E*$D | bc -l)
echo "$a"
b=$(echo "$a+$C | bc -l)
echo "$b"
d=$(echo "$C/$b" | bc -l)
echo "$d"
E=$(echo "1/$D" | bc -l)
echo "$E"
F=$(echo "$E*$d" | bc -l)
echo "$F"

最后一步应为我的公式( C/(E*D+C) )^(1/D)的这一部分给出答案,当我得到1时应为1.5232201399104。

1 个答案:

答案 0 :(得分:1)

好,现在是awk:

$ awk -v E=5 '
BEGIN{
    A=5.8506
    B=200.26323
    C=151.3219
    D=11.9275
    Ei=((B)*(C/(E*D+C))^(1/D))^(1/3)
    print Ei
}'
5.79653

$ awk -v A=5.8506 -v B=200.26323 -v C=151.3219 -v D=11.9275 -v E=0 '
BEGIN{                        
    Ei=((B)*(C/(E*D+C))^(1/D))^(1/3)
    print Ei
}'
5.8506