Dom:: Multiset

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

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

Синтаксис

Dom::Multiset(<s1, s2, …>)

Описание

Dom::Multiset является областью мультимножеств, т.е. устанавливает возможно с несколькими идентичными элементами.

Мультимножество представлено набором списков формы [s, m], где s является элементом мультимножества и m его кратность.

Мультимножества могут быть возвращены системным решателем solve. Например, вход solve(x^3 - 4*x^2 + 5*x - 2, x, Multiple) дает все корни полиномиального x 3 - 4 x2 + 5 x - 2 в форме мультимножества {[1, 2], [2, 1]}.

Операции стандартного набора, такие как объединение, пересечение и вычитание наборов были расширены, чтобы иметь дело с мультимножествами.

Эти операции могут обработать различные типы наборов, такие как наборы типа DOM_SET и мультимножества. Можно, например, вычислить объединение мультимножества {[a, 2], [b, 1]} и набор {c}, который приводит к мультимножеству {[a, 2], [b, 1], [c, 1]}.

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

Dom::Multiset(s1, s2, ...) создает мультимножество, состоящее из элементов s1, s2, ...

Несколько идентичных элементов в s1, s2... собраны. Например, вызов Dom::Multiset(a, b, a, c) создает мультимножество с элементами a, b, c. Элемент a имеет кратность два, другие два элемента b и c оба, имеет кратность один.

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

Dom::BaseDomain

Категории

Cat::Set

Примеры

Пример 1

Мультимножество {a, a, b} состоят из двух различных элементов a и b, где a имеет кратность два, и b имеет кратность один:

delete a, b, c:
set1 := Dom::Multiset(a, a, b)

Мы создаем другое мультимножество:

set2 := Dom::Multiset(a, c, c)

Операции стандартного набора, такие как дизъюнктное объединение, пересечение или вычитание реализованы для мультимножеств и могут быть выполнены с помощью операторов стандартного набора MuPAD®:

set1 union set2

set1 intersect set2

contains(set1, a), contains(set1, d)

Пример 2

Некоторые системные функции были перегружены для мультимножеств, таких как expand, normal или split.

Если мы применяем expand к мультимножеству, например, мы получаем последовательность выражения всех элементов мультимножества (появляющийся в соответствии к их кратности):

delete a, b, c, d, e:
set := Dom::Multiset(a, b, c, a, c, d, c, e, c)

expand(set)

Если вы хотите преобразовать мультимножество в обычный набор доменного типа DOM_SET, используйте coerce:

coerce(set, DOM_SET)

Примечание: системная функция coerce использует методы "convert" и "convert_to" доменного Dom::Multiset.

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

expr(set)

Результатом является набор доменного типа DOM_SET, состоя из списков доменного типа DOM_LIST с двумя записями, элементом мультимножества и соответствующей кратностью того элемента.

Параметры

s1, s2, …

Объекты любого типа

Записи

isfinite

TRUE, потому что Dom::Multiset представляет конечные множества.

"inhomog_intersect"

таблица формы T = Proc(multiset, setoftypeT). Эта запись используется внутренне реализацией, и таким образом не должна быть затронута.

"inhomog_union"

таблица формы T = Proc(multiset, setoftypeT). Эта запись используется внутренне реализацией, и таким образом не должна быть затронута.

Методы

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

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

normal(set)

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

powerset(set)

Степенное множество set возвращено как набор мультимножеств.

random()

Созданное число элементов, включая их кратность, ограничивается 20.

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

_index(set, i)

См. метод "op".

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

contains(set, s)

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

equal(set1, set2)

Системная функция _equal используется для теста.

expand(set)

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

getElement(set)

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

Этот метод перегружает функциональный solvelib::getElement, т.е. можно использовать его в форме solvelib::getElement(set).

has(set, expr)

Чтобы проверять, содержится ли expr как элемент set и не как подвыражение элементов set, функциональный contains должен использоваться.

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

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

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

multiplicity(set, s)

Элементы, которые не содержатся в set, имеют нуль кратности.

card(set)

Этот метод перегружает функциональный card.

nops(set)

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

op(set)

op(set, i)

Возвращает i-th элемент s мультимножества set и его кратность m в форме списка [s, m].

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

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

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

select(set, func, <expr, …>)

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

split(set, func, <expr, …>)

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

subs(set, …)

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

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

convert(x)

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

В настоящее время только наборы типа DOM_SET могут быть преобразованы в мультимножества.

convert_to(set, T)

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

В настоящее время T может или быть DOM_SET, чтобы преобразовать мультимножество set в набор (освобождающий кратность и порядок элементов set), или DOM_EXPR или "_exprseq", чтобы преобразовать set в последовательность выражения (см. метод "expand" для деталей).

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

expr(set)

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

sort(set)

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

Технические методы

bin_intersect(set1, set2)

Этот метод называется от стандартных программ, заданных в категории Cat::Set, который реализует среди других перегрузку функционального intersect для мультимножеств. Можно пересечь два мультимножества непосредственно set1 intersect set2, или в функциональном обозначении _intersect(set1, set2).

bin_minus(set1, set2)

Этот метод называется от стандартных программ, заданных в категории Cat::Set, который реализует среди других перегрузку функционального minus для мультимножеств. Можно вычесть два мультимножества непосредственно set1 minus set2, или в функциональном обозначении _minus(set1, set2).

homog_union(set, …)

Этот метод называется от стандартных программ, заданных в категории Cat::Set, который реализует среди других перегрузку функционального union для мультимножеств. Можно вычислить объединение двух мультимножеств непосредственно set1 union set2, или в функциональном обозначении _union(set1, set2).

nested_union(setofsets)

Этот метод называется от стандартных программ, заданных в категории Cat::Set, который реализует среди других перегрузку функционального union для мультимножеств и наборов. Можно вычислить объединение мультимножеств и наборов непосредственно set1 union set2, или в функциональном обозначении _union(set1, set2).

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

Области MuPAD