Kniga-Online.club
» » » » Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании

Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании

Читать бесплатно Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании. Жанр: Математика издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

> restart;

> р:=а4*х^4+a3*х^3+а2*х^2;

р:=а4 х4 + a3 x3 + а2 х2

> degree(р,х);

4

> ldegree(р,х);

2

> q:=1/х^2+2/х+3+4*х+5*х^2;

> degree(q,х);

2

> ldegree(q,х);

-2

> degree(x*sin(x),x);

FAIL

> zero := y*(x/(x+1)+1/(x+1)-1);

> degree(zero,x);degree(zero, y);

FAIL 1

> degree(collect(zero,x,normal),x);degree(collect(zero,y, normal),y);

-∞ -∞

5.3.5. Контроль полинома на наличие несокращаемых множителей

Для контроля того, имеет ли полином несокращаемые множители, может использоваться функция irreduc(p) и ее вариант в инертной форме lreduc(p,K), где K — RootOf-выражение. Ниже приведены примеры применения этих тестовых функций:

> 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 приведенные результаты случайны, так что, скорее всего, их повторение невозможно.

С полиномами можно выполнять обычные операции, используя для этого соответствующие операторы:

> readlib(psqrt):

> readlib(proot):

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

true

> p1:=a1*x^3+b1*x^2+c1*x+d1: p2:=а2*х^2+b2*х+с2:

> p1+p2;

a1х³ + b1х² + c1x + d1 + a2x² + b2х + с2

> p1*p2;

(a1x³ + b1x² + c1x + d1) + (a2x² + b2х + с2)

> collect(%,х);

a1a2x5 + (b1а2 + а1b2)х4 + (c1a2 + b1b2 + а1с2)х3 + (d1a2 + c1b2 + b1с2)х2 + (d1b2 + c1c2)x + d1c2

> p1/p2;

> expand(%,х);

В целом надо отметить, что аппарат действий с полиномами в Maple хорошо развит и позволяет выполнять с ними практически любые математические операции. В частности, можно вычислять производные от полиномов и интегралы, у которых полиномы являются подынтегральными функциями:

> diff(p1, х);

3а1х² + 2b1х + c1

> diff(p1, x$2);

6a1x + 2b1

> Int(p1,x)=int(p1,x);

> Int(p1,х=0..1)=int(p1,х=0..1);

5.3.9. Операции над степенными многочленами с отрицательными степенями

Хотя в подавляющем большинстве случаев используются степенные многочлены (полиномы) с положительными степенями, Maple не накладывает особых ограничений и на многочлены с отрицательными степенями. Например, можно задать такой степенной многочлен:

> pp:=а*х^(-2)+b*x^(-1)+c*x+d+e*x^2+f*х^3;

Нетрудно показать, что с ним можно выполнять различные операции:

> рр+рр;

> рр-рр;

0

> pp^2

> simplify(%);

> Diff(pp, x)=diff(pp, x)

> Int(pp,x);

> int(рр,х);

Хотя Maple и не накладывает ограничений на применение степенных многочленов (полиномов) с отрицательными степенями свойства таких полиномов заметно отличаются от свойств полиномов с положительными степенями, поэтому при применении первых надо проявлять известную осторожность.

5.4. Работа с ортогональными полиномами

5.4.1. Состав пакета orthopoly

Ортогональные многочлены (полиномы) находят самое широкое применение в различных математических расчетах. В частности они широко используются в алгоритмах интерполяции, экстраполяции и аппроксимации различных функциональных зависимостей, где свойство ортогональности обеспечивает оценку погрешности приближения и сведение ее к минимуму — вплоть до нуля.

В пакете orthopoly системы Maple 9.5 задано 6 функций:

> with(orthopoly);

[G, Н, L, Р, Т, U]

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

Отметим определения указанных функций:

G(n,a,x) — полином Гегенбауэра (из семейства ультрасферических полиномов);

Перейти на страницу:

Владимир Дьяконов читать все книги автора по порядку

Владимир Дьяконов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге Maple 9.5/10 в математике, физике и образовании, автор: Владимир Дьяконов. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*