В универе дали следующее задание:
Написать консольную программу для табулирования функции (например, sin(x)) на отрезке [a,b] с шагом h=(b-a)/1000000 с хранением значений таблицы в массиве. Проанализировать скорость работы программы при выводе на экран каждого элемента массива, каждого сотого, каждого десятитысячного.
Собственно у меня получился следующий код:
#!/bin/bash
a=$1
b=$2
h=$(echo "("$2"-"$1")/1000000" | bc -lq)
x=$a
i=0
while (($x >= $h)); do
x=$(echo "s("$x")" | bc -lq)
mas[$i]=$x
echo ${mas[$i]}
i=$((i+1))
done
При выполнении получаю следующую ошибку:
dim@home-pc:~$ bash prog.sh 1 2
prog.sh: строка 9: ((: 1 >= .00000100000000000000: ошибка синтаксиса: ожидается операнд (error token is ".00000100000000000000")
Как я понял проблема в программе bc, так как она возвращает значение вида .xxx, хотя может быть ошибаюсь. Какие могут быть способы для решения этой проблемы? Или может быть стоит стоит воспользоваться какой-нибудь другой программой для расчета?
Заранее спасибо за помощь!