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

Затем элементы 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).