• trunc(x) = trunc(Re(x)) + rtrunc(Im(x));
• round(x) = round(Re(x)) + I*round(Im(x));
• frac(x) = frac(Re(x)) + I*frac(Im(x)).
Для введения определения значения floor(x) от комплексного аргумента прежде всего запишем а=Re(x)-floor(Re(x)) и b=Im(x)-floor(Im(x)). Тогда floor(x)=floor(Re(x))+I*floor(Im(x))+X, где
Наконец, функция ceil для комплексного аргумента определяется следующим образом:
ceil(x) = -floor(-х)
Примеры вычисления выражений с данными функциями представлены ниже (файл calcfun):
> [ceil(Pi), trunc(Pi), floor(Pi), frac(Pi), round(Pi)];
> frac(evalf(Pi));
> [ceil(-Pi),trunc(-Pi),floor(-Pi),round(-Pi)];
> trunc(2.6+3.4*I);
> [signum(-Pi),signum(0),signum(Pi)];
Хотя функции этой группы достаточно просты, их нельзя относить к числу элементарных функций. Нередко их применение исключает возможность проведения символьных преобразований или дает их существенное усложнение.
3.2.16. Работа с функциями комплексного аргумента
Для комплексных чисел и данных, помимо упомянутых в предшествующем разделе, определен следующий ряд базовых функций: argument — аргумент комплексного числа; conjugate — комплексно- сопряженное число; Im — мнимая часть комплексного числа; Re — действительная часть комплексного числа; polar — полярное представление комплексного числа (библиотечная функция). Примеры вычисления для этих функций (файл calcfun):
> z:=2+3*I;
> [Re(z),Im(z),abs(z)];
> [argument(z),conjugate(z)];
> readlib(polar);
> polar(z);
> polar(-3.,Pi/2);
В некоторых случаях полезна визуализация операций с комплексными числами. Для этого удобен пакет расширения plots, который позволяет представлять комплексные числа в виде стрелок на комплексной плоскости. Например, для иллюстрации операции умножения двух комплексных чисел
можно использовать следующие графические построения (файл complpot):
> with(plottools):
l1 := arrow([0,0], [1,2], .1, .3, .1, color=green):
l1a := arc([0,0],1.5,0..arctan(2),color=green):
> l2 := arrow([0,0], [1,-8], .1, .3, .1, color=green):
l2a := arc([0,0],.75,0..arctan(.8),color=green):
> l3 := arrow([0,0], [-.6,2.8], .1, .3, .1, color=black):
l3a := arc([0,0],2.5,0..arctan(2.8,-.6),color=black):
> plots[display](l1,l2,l3,l1a,l2a,l3a, axes=normal,view=[- 3..3,0..3],scaling=constrained);
Они создают график (рис. 3.11) наглядно иллюстрирующий операцию перемножения двух комплексных чисел, представленных своими радиус-векторами.
Рис. 3.11. Иллюстрация перемножения двух комплексных чисел
3.2.17. Построение графиков функций в Maplet-окне
При изучении графиков элементарных функций вне особенностей системы Maple полезно Maplet- приложение, окно которого представлено на рис. 3.12. Открывается это окно исполнением команды Tools→Precalcus→Standard Functions… при работе в стандартном интерфейсе Maple 9.5.
Рис. 3.12. Maplet-окно для изучения функций и построения их графиков
В окне в разделе определения функций Define Function имеется список элементарных функций, графики которых можно просматривать. Однако, возможно построение и графиков простых функций более сложного вида, например x*sin(x) вместо sin(x) — это и иллюстрирует график, представленный на рис. 3.12. Maplet-окно генерирует команду на Maple-языке, которая строит график заданной функции.
3.3. Работа со специальными функциями
3.3.1. Обзор специальных математических функций
Специальные математические функции являются решениями дифференциальных уравнений, которые невозможно представить через элементарные функции. Через такие функции нередко представляются и многие интегралы. Наиболее мощные из СКМ, например Maple, широко используют специальные математические функции в ходе символьных преобразований. Рассмотрим наиболее важные специальные математические функции.
Связь между функцией Эйри и модифицированной функцией Бесселя выражается формулой:
где