Чтение онлайн

на главную - закладки

Жанры

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

> irreduc(х^2-1);

false

> irreduc(х^2-2);

true

> Irreduc(2*x^2+6*x+6) mod 7;

false

> Irreduc(x^4+x+1) mod 2;

true

> alias(alpha=RootOf(x^4+x+1)):

> Irreduc(х^4+х+1,alpha) mod 2;

false

5.3.6. Разложение полинома по степеням

Для

разложения полинома р по степеням служат инертные функции AFactor(p) и AFactors(p). Полином может быть представлен в виде зависимости от одной или нескольких переменных.

Функция 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:

> evala(AFactor(2*х^2+4*х-6));

2(x+3)(х-1)

> evala(AFactor(х^2+2*у^2));

(х - RootOf(_Z² + 2)y) (x + RootOf(_Z² + 2)y)

> expand((x-1) * (x-2) * (x-3) * (x-4));

x4– 10 x3 + 35 x2– 50 x + 24

> AFactor(%);

AFactor(x4– 10 x3 + 35 x2 50 x + 24)

> evala(%);

(x-1)(x-2)(x-3)(x-4)

> expand((x-1+I*2)*(x+1-I*2)*(x-3));

x³ - 3x² + 3x - 9 + 4 I x-12 I

> evala(AFactor(%));

(x - 3)(x² + 3 + 4I)

> evala(AFactors(х^2-2*у^2));

[1, [[x - RootOf(_Z² - 2)y, 1], [x + RootOf(_Z² + 2)y, 1]]]

Нетрудно заметить, что разложение полинома на множители позволяет оценить наличие у него корней. Однако для этого удобнее воспользоваться специальными функциями, рассмотренными ниже.

5.3.7. Вычисление корней полинома

Для вычисления действительных и комплексных корней полиномов служит уже известная нам функции solve(p, x), возвращающая список корней полинома p одной переменной. Кроме того, имеются следующие функции для вычисления корней полиномов:

roots(р)

roots(р, K)

roots(р, х)

roots(р, x, K)

Эти функции вычисляют точные корни в рациональной или алгебраической области чисел. Корни возвращаются в виде [[r1,m1], [rn, mn]], где mi — это корень полинома, a mi — порядковый номер полинома. С действиями этих функций можно разобраться с помощью приведенных ниже примеров:

> р:=х^4 1-9*х^3+31*х^2+59*х+60;

р:=х4 + 9х3 + 31х2 + 59 х + 60

> solve(р,х);

– 3, -4, -1 + 2I, -1-2I

> roots(р,х);

[[-4, 1], [-3, 1]]

> roots(х^2-4,х);

[[2, 1], [-2, 1]]

> expend((х-1)*(х-2)*(х-3)*(х-4));

х4– 10х3 +35х2– 50 х + 24

> roots(%,х);

[[1, 1], [2, 1], [3, 1], [4, 1]]

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):

> psqrt(х^2+2*х*у+у^2);

у + x

> proot(х^3+3*х^2+3*х+1, 3);

x+1

> psqrt(x+y);

_NOSQRT

> proot(x+y, 2);

_ NOROOT

> р:=х^3-3*х^2+5*х-10;

p:=x³ - 3x² + 5x - 10

> discrim(p,x);

– 1355

> readlib(realroot):

> realroot(p);

[[0, 4]]

> randpoly([x],degree=10);

63x10 + 57x8– 59x5 + 45x4– 8x3– 93

> randpoly([x],degree=10);

– 5x9 + 99x8– 61x6– 50x5– 12x3– 18x

> randpoly([x],degree=10);

41x9– 58x8– 90x7 + 53x6– x4 + 94x

> Primitive(х^4+х+1) mod 2;

true

Обратите внимание на то, что для использования некоторых из приведенных функций необходим вызов их из стандартной библиотеки. Для функции randpoly приведенные результаты случайны, так что, скорее всего, их повторение невозможно.

Поделиться:
Популярные книги

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Вперед в прошлое 6

Ратманов Денис
6. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 6

Архил...? Книга 2

Кожевников Павел
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...? Книга 2

Чемпион

Демиров Леонид
3. Мания крафта
Фантастика:
фэнтези
рпг
5.38
рейтинг книги
Чемпион

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Я граф. Книга XII

Дрейк Сириус
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я граф. Книга XII

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Титан империи 3

Артемов Александр Александрович
3. Титан Империи
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Титан империи 3

Темный Охотник

Розальев Андрей
1. КО: Темный охотник
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Охотник

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Мастер Разума II

Кронос Александр
2. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.75
рейтинг книги
Мастер Разума II

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII

Большие дела

Ромов Дмитрий
7. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Большие дела

Я тебя верну

Вечная Ольга
2. Сага о подсолнухах
Любовные романы:
современные любовные романы
эро литература
5.50
рейтинг книги
Я тебя верну