Dom:: MultivariatePolynomial

Области многомерных полиномов

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

Доменное создание

Dom::MultivariatePolynomial(<Vars, <R, <Order>>>)

Создание элемента

Dom::MultivariatePolynomial(Vars, R, Order)(p)
Dom::MultivariatePolynomial(Vars, R, Order)(lm)

Описание

Dom::MultivariatePolynomial(Vars, R, ..) создает область многомерных полиномов в списке переменных Vars по коммутативному кольцевому R в распределенном представлении.

Dom::MultivariatePolynomial представляет многомерные полиномы по произвольным коммутативным звонкам.

Все обычные алгебраические и арифметические полиномиальные операции реализованы, включая базисное вычисление Gröbner и некоторые классические инструменты конструкции, используемые в инвариантной теории.

Примечание

Это, настоятельно рекомендуют использовать только содействующие звонки с уникальным нулевым представлением. В противном случае это может произойти, который, например, не отключит полиномиальное деление, или будет возвращена неправильная степень.

Dom::MultivariatePolynomial(Vars, R, Order) создает область многомерных полиномов в списке переменных Vars по доменному R категории Cat::CommutativeRing в разреженном распределенном представлении относительно одночлена, заказывая Order.

Dom::MultivariatePolynomial() создает полиномиальную область в списке переменных [x,y,z] по доменному Dom::ExpressionField (normal) относительно лексикографического одночленного упорядоченного расположения.

Dom::MultivariatePolynomial(Vars) генерирует полиномиальную область в списке переменных, Vars по доменному Dom::ExpressionField(normal) относительно лексикографического одночленного упорядоченного расположения создается.

Примечание

Только коммутативные содействующие звонки типа DOM_DOMAIN, которые наследовались Dom::BaseDomain, позволены. Если R будет иметь тип DOM_DOMAIN, но не наследуется Dom::BaseDomain, доменный Dom::ExpressionField, ТО (normal) будет использоваться вместо этого.

В отличие от доменного Dom::DistributedPolynomial, Dom::MultivariatePolynomial принимает только идентификаторы (DOM_IDENT) как indeterminates. Это ограничение включает некоторые дальнейшие методы, описанные ниже.

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

Суперобласть

Dom::DistributedPolynomial

Аксиомы

Если R имеет Ax::normalRep, то Ax::normalRep.

Если R имеет Ax::canonicalRep, то Ax::canonicalRep.

Категории

Если Vars имеет одну переменную, то Cat::UnivariatePolynomial (R), еще Cat::Polynomial (R).

Примеры

Пример 1

Чтобы создать звонок многомерных полиномов в x, y и z по rationals, можно задать

MP := Dom::MultivariatePolynomial([x, y, z], Dom::Rational)

Элементарные симметричные полиномы этой области

s1 := MP(x + y + z)

s2 := MP(x*y + x*z + y*z)

s3:=MP(x*y*z)

Полином называется симметричный, если это остается неизменным при каждой возможной перестановке переменных как, например:

s3=s3(MP(y), MP(z), MP(x))

Эти полиномы возникают естественно в изучении корней полинома. Чтобы показать это, мы сначала должны создать одномерный полином, например, в U по MP, и сгенерировать полином в U с корнями в x, y и z.

UP:=Dom::UnivariatePolynomial(U, MP)

f := UP((U - x)*(U - y)*(U - z))

UP(U^3)-s1*UP(U^2)+s2*UP(U)+(-1)^3*s3

Это иллюстрирует это, коэффициенты f являются (элементарными) симметричными полиномами в его корнях.

От основной теоремы симметричных полиномов мы знаем, что каждый симметричный полином может быть записан исключительно как полином в элементарных симметричных полиномах. Таким образом мы можем переписать следующий симметричный полиномиальный s в элементарных симметричных полиномах s1, s2 и s3,

s:=MP(x^3*y+x^3*z+x*y^3+x*z^3+y^3*z+y*z^3)

S:=MP::rewritePoly(s,[s1=S1,s2=S2,s3=S3])

где эти полиномы представлены тремя новыми переменными S1, S2 и S3 соответственно. Чтобы видеть, что этот новый полиномиальный S в новых переменных действительно представляет старый исходный полиномиальный s, мы просто должны включить три элементарных симметричных полинома в S:

poly(S, Expr)(s1,s2,s3)

Когда у каждого есть данный список полиномов, например, как:

l:=[3*s1,2*s1,s1,s3]

и каждый хочет отсортировать их в соответствующем порядке, можно использовать один из следующих двух методов.

MP::sortList(l,Dom::MonomOrdering(DegLex(3)))

MP::stableSort(l,Dom::MonomOrdering(DegLex(3)))

В первом отсортированном списке изменился порядок трех полиномов той же степени, в то время как со вторым методом этот порядок остается стабильным.

Пример 2

Позвольте быть конечной (матричной) подгруппой полной линейной группы. Затем полином называется инвариантом underG, если для всего AG

где. Симметричные полиномы s1, s2 и s3 от предыдущего примера являются инвариантами под симметричной группой S 3. На самом деле эти три основных инварианта все же генерируют целый звонок инвариантов S 3.

Теперь давайте исследуем инварианты известной двадцатигранной группы. Можно найти представление этой группы на странице 73 Х. Ф. Блихфелдта: Конечные группы коллинеации, Нажатие Чикагского университета, 1917.

Группа сгенерирована из этих трех матриц, имеет 120 элементов и является таким образом конечной подгруппой, даже специальной линейной группы SL (2, (ε)). Это также известно это

основной инвариант степени 12 из этой группы. Чтобы объявить i 1 в MuPAD®, нужно сначала задать полиномиальную область.

MP:=Dom::MultivariatePolynomial([x1,x2],Dom::Rational)

i1:=MP(x1*x2^(11)-11*x1^6*x2^6-x1^(11)*x2)

От инвариантного i 1 можно вычислить дальнейший основной инвариантный i 2 с

i2:=MP::hessianDet(i1)

Но получить более простые коэффициенты мы выбираем i 2 как

i2:=-1/121*MP::hessianDet(i1)

вместо этого. Подобный мы получаем третий основной инвариантный i 3 с

i3:=1/20*MP::jacobianDet([i1,i2])

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

MP::rewritePoly(i3^2,[i1=I1,i2=I2,i3=I3])

MP::rewritePoly(i3^2,[i1=I1,i2=I2,i3=I3],Unsorted)

И следовательно мы получаем сизигию:

MP::rewritePoly(i3^2,[i1=I1,i2=I2,i3=I3],Unsorted)-
MP::rewritePoly(i3^2,[i1=I1,i2=I2,i3=I3]) = 0

Параметры

Vars

Список indeterminates. Значение по умолчанию: x, y, z .

R

Коммутативный звонок, т.е. область категории Cat::CommutativeRing. Значение по умолчанию: Dom::ExpressionField(normal).

Order

Одночленное упорядоченное расположение, т.е. одно из предопределенных упорядоченных расположений LexOrder, DegreeOrder, или DegInvLexOrder или любой объект типа Dom::MonomOrdering. Значение по умолчанию: LexOrder.

p

Полином или многочленное выражение.

lm

Список одночленов, которые представлены как списки, содержащие коэффициенты вместе с векторами экспоненты или экспонентами.

Записи

"характеристика"

Характеристика этой области.

"coeffRing"

Содействующий звонок этой области, как задано параметром R.

"ключ"

Имя области создается.

"один"

Нейтральный элемент w.r.t. "_mult".

"упорядоченное расположение"

Упорядоченное расположение одночлена, заданное параметром Order.

Переменные

Список переменных, заданных параметром Vars.

"нуль"

Нейтральный элемент w.r.t. плюс.

Методы

развернуть все

Математические методы

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::IntegralDomain.

borderedHessianDet(a, b, <v>)

borderedHessianMat(a, b, <v>)

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

degLex(a, b)

degRevLex(a, b)

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::IntegralDomain.

Наследованный от Dom::BaseDomain.

Наследованный от Cat::BaseCategory.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

hessianDet(a, <v>)

hessianMat(a, <v>)

homogeneousComponents(a)

Наследованный от Cat::EuclideanDomain.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::FactorialDomain.

isHomogeneous(a)

Наследованный от Cat::Polynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

jacobianDet(ais, <v>)

jacobianMat(ais, <v>)

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::Polynomial.

Наследованный от Cat::EuclideanDomain.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::EuclideanDomain.

Наследованный от Dom::DistributedPolynomial.

rewriteHomPoly(a, ais, v)

Все полиномы a и ais должны быть гомогенными.

Переменные v должны быть новыми переменными.

rewritePoly(a, [ai = vi], <Unsorted>)

Этот метод может использоваться для представления полинома относительно данного полиномиального основания.

Когда опция, которую Unsorted дан, список [ai=vi], не сортируется. В противном случае на шаге перед вычислением этот список будет отсортирован в w.r.t. ai градуируемый лексикографический порядок ("degLex").

Отметьте: алгоритм зависит от порядка Vars и ais.

Все полиномы ai должны быть гомогенными.

Переменные vi должны быть новыми переменными.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Cat::Polynomial.

Наследованный от Cat::Polynomial.

Методы доступа

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

order(a, b, o)

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

Наследованный от Dom::DistributedPolynomial.

sortList(ais, o)

Этот метод сортировки может быть не стабильным, если o не является общим порядком.

stableSort(ais, o)

Этот метод сортировки стабилен, даже если o не является общим порядком.

Наследованный от Dom::BaseDomain.

Наследованный от Dom::BaseDomain.

Наследованный от Dom::DistributedPolynomial.

Ссылки

[1] Winfried Fakler. “Algorithmen zur symbolischen Lösung homogener linearer Differentialgleichungen”. Diplomarbeit, Universität Карлсруэ, 1994.

Смотрите также

Области MuPAD

Для просмотра документации необходимо авторизоваться на сайте