DiscontinuitySearch

Полусимвольный поиск разрывов

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

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

Сводные данные значения

НаследованныйFALSE или TRUE

Графические примитивы

ОбъектыЗначения по умолчанию DiscontinuitySearch
plot::Curve2d, plot::Curve3d, plot::Function2d, plot::Polar, plot::SweepTRUE

Описание

DiscontinuitySearch = TRUE по сравнению с DiscontinuitySearch = FALSE определяет, проверяется ли графический объект (полу-) символически для разрывов и особенностей.

Определенные графические объекты, такие как функциональные графики или параметризованные кривые могут иметь особенности. Это может создать графические артефакты, такие как побочные строки между числовыми точками выборки, которые заключают особенность. С DiscontinuitySearch = TRUE, объект предварительно обрабатывается, чтобы найти потенциальные особенности. Если особые точки найдены, объект разделен в несколько непересекающихся подобъектов (“ответвления”), каждое из которых сглаженно.

Примечание

DiscontinuitySearch только доступен для объектов линии (2D функциональные графики и параметризованные кривые в 2D и 3D). Это не доступно для объектов подложки, таких как 3D функциональные графики и параметризованные поверхности!

Разрывы будут только обнаружены, если они будут вызваны системными функциями, которые реализованы как функциональная среда с соответствующим слотом "realDiscont" или "numericDiscont".

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

По причинам эффективности рекомендуется отключить поиск разрывов с DiscontinuitySearch = FALSE, когда известно, что графический объект непрерывен.

Примеры

Пример 1

Следующий график содержит полюса первого порядка. Когда поиск разрыва отключен, побочные вертикальные строки происходят, соединяя точки выборки слева от полюса с соседними точками выборки справа от полюса. Далее, окружение полюсов плохо выбирается:

plot(plot::Function2d(tan(x^2), x=-3..3, 
                      ViewingBoxYRange = -10..10,
                      DiscontinuitySearch = FALSE)):

Без спецификации DiscontinuitySearch настройка по умолчанию используется DiscontinuitySearch = TRUE. Побочные строки исчезают. С VerticalAsymptotesVisible = TRUE по умолчанию они заменяются пунктирными вертикальными асимптотами, указывающими на полюса. Также обратите внимание, что числовая выборка около полюсов лучше, потому что существование особенностей и их положений известно, прежде чем численная оценка функционального графика запускается:

plot(plot::Function2d(tan(x^2), x=-3..3, 
                      ViewingBoxYRange = -10..10)):

Пример 2

Функция Heaviside имеет разрыв скачка. Без поиска разрыва появляется побочная строка, соединяющая левые и правые предельные точки скачка:

plot(plot::Function2d(heaviside(x-1), x = -1..3,
                      DiscontinuitySearch = FALSE)):

Эта побочная строка исчезает с настройкой по умолчанию DiscontinuitySearch = TRUE:

plot(plot::Function2d(heaviside(x-1), x = -1..3),
                      VerticalAsymptotesVisible = FALSE):

Пример 3

Без поиска разрыва полюса следующей сингулярной 3D кривой плохо представлены графически:

plot(plot::Curve3d([cos(u), sin(u), tan(2*u)],  u = 0..2*PI, 
                      ViewingBox = [-1..1, -1..1, -10..10],
                      DiscontinuitySearch = FALSE)):

Настройка по умолчанию DiscontinuitySearch = TRUE производит лучшее графическое представление:

plot(plot::Curve3d([cos(u), sin(u), tan(2*u)],  u = 0..2*PI, 
                      ViewingBox = [-1..1, -1..1, -10..10])):