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. Это ограничение включает некоторые дальнейшие методы, описанные ниже.
Отметьте: Для КПД не все методы проверяют свои аргументы, даже на интерактивном уровне. В частности это верно для многих методов доступа, преобразовывая методы и технические методы. Это может вызвать странные сообщения об ошибке.
Если R
имеет Ax::normalRep
, затем Ax::normalRep
.
Если R
имеет Ax::canonicalRep
, затем Ax::canonicalRep
.
Если Vars
имеет одну переменную, затем Cat::UnivariatePolynomial
(R)
, еще Cat::Polynomial
(R)
.
Создать звонок многомерных полиномов в 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)))
В первом отсортированном списке изменился порядок трех полиномов той же степени, в то время как со вторым методом этот порядок остается устойчивым.
Позвольте быть конечной (матричной) подгруппой полной линейной группы. Затем полином называется инвариантом underG, если для всего A ∈ G
где. Симметричные полиномы 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
|
Список indeterminates. Значение по умолчанию: |
|
Коммутативный звонок, т.е. область категории |
|
Одночленное упорядоченное расположение, т.е. одно из предопределенных упорядоченных расположений |
|
Полином или многочленное выражение. |
|
Список одночленов, которые представлены как списки, содержащие коэффициенты вместе с векторами экспоненты или экспонентами. |
"характеристика" | Характеристика этой области. |
"coeffRing" | Содействующий звонок этой области, как задано параметром |
"ключ" | Имя области создается. |
"один" | Нейтральный элемент w.r.t. |
"упорядоченное расположение" | Упорядоченное расположение одночлена, заданное параметром |
Переменные | Список переменных, заданных параметром |
"нуль" | Нейтральный элемент w.r.t. |
[1] Winfried Fakler. “Algorithmen zur symbolischen Lösung homogener linearer Differentialgleichungen”. Diplomarbeit, Universität Карлсруэ, 1994.