Шукати в цьому блозі

пʼятницю, 11 березня 2016 р.

bash та sin, cos, тощо…

Рецепти для bash-а. Може кому знадобиться, от як мені…
function sin(){ echo "scale=10; s($1*a(1)/45);" | bc -l; }
function cos(){ echo "scale=10; c($1*a(1)/45);" | bc -l; }
function tan(){ echo "scale=10; arg=$1*a(1)/45; s(arg)/c(arg);" | bc -l; }
function ln(){ echo "scale=10; l($1);" | bc -l; }
function log(){ echo "scale=10; l($1)/l(10);" | bc -l; }
Правда народ ще більше страждає… ряди розписує:
function sin()
{
  if [ $# != 2 ]
  then
    echo "FAIL" >&2
    return 2
  fi

  result=$1
  x=$1
  n=1
  fact=1
  for k in `seq 2 $2`
  do
    x=$(( $x * $1 * $1 ))
    n=$(( $n + 2 ))
    fact=$(( (-1.0) * $fact * ($n - 1) * $n ))
    result=$(( $result + $x / $fact ))
  done
  echo $result
}

Немає коментарів: