Еще об элементарных функциях
В данном разделе будут рассмотрены тригонометрические функции, использующие входные значения в градусах, логарифмические функции, а также специальные матричные операции.
Тригонометрические функции, такие как sin и cos, принимают на вход значение в радианах. Их аналоги, предназначенные для работы с аргументами, выраженными в градусах, отличаются наличием буквы "d" в конце имени (например, sind, cosd). Математически пары таких функций связаны соотношениями вида sind x = sinxπ180 . Однако ввиду особенностей компьютерной арифметики результаты выполнения функций для математически эквивалентных аргументов могут различаться. Например, следующий фрагмент демонстрирует вычисление значений sin π и sind 180:
-->sin(%pi)
ans =
1 .225D-16
-->sind(180)
ans =
0.
Тот факт, что вычисленное значение sin π не равно в точности 0, связан с ограниченной точностью представления действительных чисел в памяти компьютера. Действительно, количество разрядов в двоичном представлении числа π функции оказывается приближенным. В то же время число 180 представляется точно, поскольку является целым. Поэтому значение sind(180) вычисляется точно.
Функция log вычисляет натуральный алгоритм числа - функцию, обратную экспоненте ехр= еx, где e называется основанием натурального логарифма или константой Эйлера. Для вычисления логарифма по основаниям 10 и 2 можно использовать функции log10 и log2 соответственно. В следующем примере мы вычислим значения log, log10 и log2 для набора заданных значений х:
-->х =[ехр(1) ехр(2) 1 10 2^1 2^10]
х =
2.7182818 7.3890561 1. 10. 2. 1024.
-->[х' log(x') log10(x') log2(x')]
ans =
2.7182818 1. 0.4342945 1.442695
7.3890561 2. 0.8685890 2.8853901
1. 0. 0. 0.
10. 2.3025851 1. 3.3219281
2. 0.6931472 0.30103 1.
1024. 6.9314718 3.0103 10.
В первом столбце отображены исходные значения х, второй столбец содержит значения log(x), третий и четвертый, соответственно, значения log10(x) и log2(x).
Большинство функций являются поэлементными, т.е., получив на вход матрицу, воздействуют на каждый ее элемент независимо. Вместе с тем, некоторые функции имеют специальное значение в линейной алгебре. Так, например, матричная экспонента определена как ex=k=0∞1k!xk. Для расчета матричной экспоненты в Scilab применяется функция expm. Вполне очевидно, что применение обычной функции ехр дает совершенно иной результат. Имена функций, имеющих специальное значение применительно к матрицам, в Scilab оканчиваются буквой "m", например, expm, sinm и др. Следующий фрагмент демонстрирует воздействие функций sin и sinm на матрицу А размером 2 х 2, содержащую кратные π/2 значения:
-->А = [%pi/2 %pi; 2*%pi 3*%pi/2]
А =
1.5707963 3.1415927 6.2831853 4.712389
-->sin(А)
ans =
1. 1.225D-16
- 2.449D-16 - 1.
- -->sinm(А)
ans =
-0.3333333 0.6666667
1.3333333 0.3333333