solvelib::conditionalSort

Возможные сортировки списка в зависимости от параметров

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

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

Синтаксис

solvelib::conditionalSort(l)

Описание

solvelib::conditionalSort(l) сортирует список l в порядке возрастания. В отличие от этого, для sort, только обычный порядок на вещественные числа а не внутренний порядок (см. sysorder) используется. solvelib::conditionalSort делает анализ случая, если элементы списка содержат indeterminates.

solvelib::conditionalSort вызывает решатель неравенства, чтобы получить простые условия в анализе случая. Способность solvelib::conditionalSort распознать сортировки невозможными таким образом ограничивается способностью решателя неравенства распознать неравенство неразрешимым. Смотрите Пример 3.

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

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

Обычные упрощения для кусочных заданных объектов применяются, например, равенства, которые могут быть выведены из условия, применяются (заменой) к списку.

Взаимодействия среды

solvelib::conditionalSort учитывает предположения на всех происходящих идентификаторах.

Примеры

Пример 1

В самом простом случае, сортируя двухэлементный список [a,b] только суммы к решению неравенства a<=b w.r.t. все происходящие параметры.

solvelib::conditionalSort([x,x^2])

Пример 2

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

Согласно неявному предположению, что все элементы списка действительны, x mustBeNonnegative.

solvelib::conditionalSort([sqrt(x), -3])

Пример 3

Иногда случаи не распознаны невозможными.

assume(x>5): solvelib::conditionalSort([x,gamma(x)])

Параметры

l

Список арифметических выражений

Возвращаемые значения

Перечислите, если сортировка является тем же самым для всех возможных значений параметров; или объект типа piecewise если некоторый анализ случая необходим.

Алгоритмы

Сложность сортировки списка элементов n составила.

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

Функции MuPAD