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
учитывает предположения на всех происходящих идентификаторах.
В самом простом случае сортируя двухэлементный список [a,b]
только составляет решение неравенства a<=b
w.r.t. все происходящие параметры.
solvelib::conditionalSort([x,x^2])
Если неявными или явными предположениями на параметрах никакие различные сортировки не могут произойти, результатом является только список.
Согласно неявному предположению, что все элементы списка действительны, x
должен быть неотрицательным.
solvelib::conditionalSort([sqrt(x), -3])
Иногда случаи не распознаны невозможными.
assume(x>5): solvelib::conditionalSort([x,gamma(x)])
|
Список арифметических выражений |
Перечислите, если сортировка является тем же самым для всех возможных значений параметров; или объект типа piecewise
, если некоторый анализ случая необходим.
Сложность сортировки списка элементов n составила.