Dom:: Product

Гомогенные прямые продукты

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

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

Синтаксис

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

Dom::Product(Set, <n>)
Dom::ProductSetn(e1, e2, …, en)
Dom::ProductSetn(List)

Описание

Dom::Product(Set, n) является n - сворачивают прямой продукт доменного Set.

Dom::Product(Set, n)(e1, e2, ..., en) создает n - кортеж (e 1, e 2, …, e n).

Объекты e1, e2..., en должен быть конвертируем в элементы доменного Set, в противном случае сообщение об ошибке выпущено.

Dom::Product(Set, n)(List) создает n - кортеж (l 1, l 2, …, l n).

Элементы n l, i List должен быть конвертируем в элементы доменного Set, в противном случае сообщение об ошибке, выпущены.

Список должен состоять из точно элементов n, в противном случае сообщение об ошибке выпущено.

Следующие к определению прямого продукта многие методы, такие как "D" и "_negate" только сопоставляют операцию со всеми компонентами кортежа.

Большая часть n-ary методы как "_plus" и "_mult" применяет операцию покомпонентно к кортежам.

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

Dom::BaseDomain

Аксиомы

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

Если Set имеет Cat::AbelianMonoid, то Ax::normalRep.

Категории

Cat::HomogeneousFiniteProduct (Set)

Примеры

Пример 1

Задайте 3-кратный прямой продукт рациональных чисел:

P3 := Dom::Product(Dom::Rational, 3)

и создайте элементы:

a := P3([1, 2/3, 0])

b := P3(2/3, 4, 1/2)

Мы используем стандартные арифметические операторы, чтобы вычислить с такими кортежами:

a + b, a*b, 2*a

Некоторые системные функции были перегружены для таких элементов, таких как diff, map или zip (см. описание соответствующих методов "diff", "map" и "zip" выше).

Например, чтобы разделить каждый компонент a 2 мы входим:

map(a, `/`, 2)

Заключенный в кавычки символьный `/` является другим обозначением для функционального _divide, функциональной формы оператора деления /.

Будьте осторожны, что функция отображения возвращает элементы области, продукт задан. Это не проверяется функциональным map (по причинам эффективности) и может привести к “недопустимым” кортежам. Например:

b := map(a, sin); domtype(b)

Но компоненты b являются более не рациональными числами!

Параметры

Set

Произвольная область элементов, т.е. область категории Cat::BaseCategory

n

Размерность продукта (положительное целое число); значением по умолчанию является 1

e1e2, en, …

Элементы Set или объектов, конвертируемых в такой

List

Список элементов n Set или объектов, конвертируемых в такой

Записи

"dimen"

размерность Dom::Product(Set, n), который равен n.

"coeffRing"

доменный S.

"один"

n - кортеж (Set::one, Set::one, ..., Set::one). Эта запись только существует, если Set является моноидом, т.е. областью категории Cat::Monoid.

"нуль"

n - кортеж (Set::zero, Set::zero, ..., Set::zero). Эта запись только существует, если Set является Абелева группа, т.е. область категории Cat::AbelianGroup.

Методы

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

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

_divide(x, y)

Этот метод только существует, если Set является (мультипликативной) группой, т.е. областью категории Cat::Group.

Этот метод перегружает функциональный _divide для n - кортежи, т.е. можно использовать его в форме x / y, или в функциональном обозначении: _divide(x, y).

_invert(x)

Этот метод только существует, если Set является (мультипликативной) группой, т.е. областью категории Cat::Group.

Этот метод перегружает функциональный _invert для n - кортежи, т.е. можно использовать его в форме 1/x или x^(-1), или в функциональном обозначении: _inverse(x).

_less(x, y)

Реализация обеспечивается, только если Set является упорядоченным множеством, т.е. областью категории Cat::OrderedSet.

Этот метод перегружает функциональный _less для n - кортежи, т.е. можно использовать его в форме x < y, или в функциональном обозначении: _less(x, y).

_mult(x, y, …)

Если x не имеет типа Dom::Product(Set,n), это рассматривается как скаляр, который умножается к каждому компоненту n - кортеж y (и наоборот).

Этот метод только существует, если Set является полугруппой, т.е. областью категории Cat::SemiGroup.

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

Этот метод перегружает функциональный _mult для n - кортежи, т.е. можно использовать его в форме x * y, или в функциональном обозначении: _mult(x, y).

_negate(x)

Этот метод перегружает функциональный _negate для n - кортежи, т.е. можно использовать его в форме -x, или в функциональном обозначении: _negate(x).

_power(x, i)

Реализация обеспечивается, только если Set является полугруппой, т.е. областью категории Cat::SemiGroup.

Этот метод перегружает функциональный _power для n - кортежи, т.е. можно использовать его в форме x^i, или в функциональном обозначении: _power(x, i).

_plus(x, y, …)

Сумма двух n - кортежи x и y задана покомпонентно как (x 1 + y 1, …, x n + y n).

Этот метод перегружает функциональный _plus для n - кортежи, т.е. можно использовать его в форме x + y, или в функциональном обозначении: _plus(x, y).

D(x)

Реализация обеспечивается, только если Set является звонком частного дифференциала, т.е. областью категории Cat::PartialDifferentialRing.

Этот метод перегружает оператор D для n - кортежи, т.е. можно использовать его в форме D(x).

diff(a, x)

Этот метод перегружает функциональный diff для n - кортежи, т.е. можно использовать его в форме diff(a, x).

Реализация обеспечивается, только если Set является звонком частного дифференциала, т.е. областью категории Cat::PartialDifferentialRing.

equal(x, y)

intmult(x, k)

Реализация обеспечивается, только если Set является Абелевой полугруппой, т.е. областью категории Cat::AbelianSemiGroup.

iszero(x)

Обратите внимание на то, что может быть больше чем одно представление нулевого n - кортеж, если R не имеет Ax::canonicalRep.

Этот метод перегружает функциональный iszero для n - кортежи, т.е. можно использовать его в форме iszero(x).

random()

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

_index(x, i)

См. также метод "op".

Этот метод перегружает функциональный _index для n - кортежи, т.е. можно использовать его в форме x[i], или в функциональном обозначении: _index(x, i).

map(x, func, <expr, …>)

Примечание

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

Этот метод перегружает функциональный map для n - кортежи, т.е. можно использовать его в форме map(x, func, ...).

mapCanFail(x, func, <expr, …>)

op(x, i)

op(x)

См. также метод "_index".

Этот метод перегружает функциональный op для n - кортежи, т.е. можно использовать его в форме op(x, i).

Возвращает последовательность всех компонентов x.

set_index(x, i, e)

См. также метод "subsop".

Примечание

Этот метод не проверяет, имеет ли e правильный тип.

Этот метод перегружает индексируемое присвоение _assign для n - кортежи, т.е. можно использовать его в форме x[i] := e, или в функциональном обозначении: _assign(x[i], e).

sort(x)

Этот метод перегружается, функционируют sort для кортежей, т.е. можно использовать его в форме sort(x).

subs(x, …)

Примечание

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

Этот метод перегружает функциональный subs для n - кортежи, т.е. можно использовать его в форме subs(x, ...). Смотрите subs для деталей и вызывающих последовательностей.

testEach(x, func, <expr, …>)

func должен возвратить или TRUE или FALSE, в противном случае ошибка периода выполнения повышена.

testOne(x, func, <expr, …>)

func должен возвратить или TRUE или FALSE, в противном случае ошибка периода выполнения повышена.

zip(x, y, func, <expr, …>)

Примечание

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

Этот метод перегружает функциональный zip для n - кортежи, т.е. можно использовать его в форме zip(x, y, func, ...).

zipCanFail(x, y, func, <expr, …>)

Методы преобразования

convert(List)

convert(e1, <e2, …>)

FAIL возвращен, если это преобразование перестало работать.

Попытки преобразовать аргументы в элемент доменного Dom::Product(Set, n). Это может быть сделано, если точно аргументы n даны, где каждый аргумент может быть преобразован в элемент доменного Set.

FAIL возвращен, если это преобразование перестало работать.

expr(x)

Этот метод перегружает функциональный expr для n - кортежи, т.е. можно использовать его в форме expr(x).

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