Maple 9.5/10 в математике, физике и образовании
Шрифт:
5.3.6. Разложение полинома по степеням
Для
Функция Afactor(p) выполняет полную факторизацию (разложение) полинома p от нескольких переменных с коэффициентами в виде алгебраических чисел над полем комплексных чисел. При этом справедливо отношение evala(AFactor(p))= factor(p.complex). Таким образом, эта функция является, по существу, избыточной.
В случае одномерного полинома полное разложение на множители является разложением на линейные множители. Функция AFactors аналогична функции Afactor, но создает структуру данных формы [u,[[f[1],e[1]],…,[f[n],e[n]]]] так, что p=u*f[1]^e[1]*…*f[n]^e[n], где каждый f[i] — неприводимый полином.
Ниже даны примеры применения функции Afactor:
Нетрудно заметить, что разложение полинома на множители позволяет оценить наличие у него корней. Однако для этого удобнее воспользоваться специальными функциями, рассмотренными ниже.
5.3.7. Вычисление корней полинома
Для вычисления действительных и комплексных корней полиномов служит уже известная нам функции solve(p, x), возвращающая список корней полинома p одной переменной. Кроме того, имеются следующие функции для вычисления корней полиномов:
Эти функции вычисляют точные корни в рациональной или алгебраической области чисел. Корни возвращаются в виде [[r1,m1], [rn, mn]], где mi — это корень полинома, a mi — порядковый номер полинома. С действиями этих функций можно разобраться с помощью приведенных ниже примеров:
5.3.8. Основные операции с полиномами
С полиномами могут выполняться различные операции. Прежде всего, отметим некоторые функции, которые относятся к одному полиному:
psqrt(p) — возвращает квадрат полинома;
proot(p,n) — возвращает n-ю степень полинома;
realroot(p) — возвращает интервал, в котором находятся действительные корни полинома;
randpoly(vars, eqns) — возвращает случайный полином по переменным vars (список) с максимальной степенью eqns;
discrim(p, var) — вычисление дискриминанта полинома по переменной var;
Primitive(a) mod p — проверка полинома на примитивность (возвращает true, если полином примитивен).
Действие этих функций достаточно очевидно, поэтому ограничимся приведением примеров их использования (файл polop):
Обратите внимание на то, что для использования некоторых из приведенных функций необходим вызов их из стандартной библиотеки. Для функции randpoly приведенные результаты случайны, так что, скорее всего, их повторение невозможно.