Как я могу сделать мою математическую формулу правильной в bc -l или awk? - PullRequest
0 голосов
/ 09 мая 2019

Здесь я хочу решить формулу в 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)

Ответ по моей формуле должен быть 5,7965 для E = 0 и 5,7965 для E = 5.

Пожалуйста, предложите мне простой способ получить ответ дляупомянутая математическая формула.Пока я не нашел ни одного кода, если он уже доступен.

То, что я пробовал:

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.5232201399104, пока я получаю 1.

1 Ответ

1 голос
/ 09 мая 2019

Ну, теперь это 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
...