числовой::
Изолированные интервалы, содержащие действительные корни одномерной функции
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
numeric::realroots(f(x
), <x = a .. b
>, <eps
>, <Merge = c
>)
numeric::realroots(f(x), x = a..b)
ищет действительные корни f (x) в интервале. Это возвращает список подынтервалов, в которых могут существовать действительные корни f (x). Гарантируется, что нет никаких действительных корней в интервале, лежащем вне объединения возвращенных подынтервалов.
С Merge = FALSE
все интервалы, возвращенные numeric::realroots
, имеют длину b i - a i <eps со значением по умолчанию eps = 0.01. Абсолютная точность корневой изоляции может быть переопределена с помощью дополнительного параметра eps
.
Интервалы, возвращенные numeric::realroots
, задают подмножество этого, может содержать действительные корни. Для многочленных выражений f (x) каждый из подынтервалов возвращенных numeric::realroots
, как гарантируют, будет содержать точно один корень. Для немногочленных выражений f (x), однако, некоторые подынтервалы не могут содержать корень! Cf. Пример 6.
В любом случае дополнение подынтервалов, возвращенных numeric::realroots
, как гарантируют, не будет содержать действительных корней. В частности, от возвращаемого значения [], можно положительно прийти к заключению, что никакой корень не существует в поисковом интервале. Cf. Пример 2.
Символьные параметры в f (x) не позволены: float(f(x))
должен оценить к числу с плавающей точкой для всего x от интервала.
Интервалы Бога формы x = -infinity..b
не усовершенствованы если b ≤ - 105.
Интервалы Бога формы x = a..infinity
не усовершенствованы если a ≥ 105.
Такие интервалы возвращены непосредственно, если numeric::realroots
думает, что они могут содержать корни. Cf. Пример 5.
f (x) может содержать сложные выражения. Только поисковый параметр x принят, чтобы быть действительным. Для сложных выражений f(x)
возвращены интервалы, где и действительное и мнимая часть выражения исчезают одновременно.
Выражение f(x)
должно подойти для арифметики интервала. In particular, MuPAD® должен смочь оценить f(a...b)
. Обратите внимание на то, что не все функции MuPAD поддерживают этот вид арифметики.
В настоящее время следующие специальные функции поддерживают арифметику интервала: abs
, arccos
, arccosh
, arccoth
, arccot
, arccsc
, arccsch
, arcsec
, arcsech
, arcsin
, arcsinh
, arctan
, arctanh
, arg
, beta
, ceil
, cos
, cosh
, cot
, coth
, csc
, csch
, dirac
, exp
, floor
, gamma
, Im
, ln
, Re
, round
, sec
, sech
, sin
, sinh
, sqrt
, tan
, tanh
, trunc
. Действительные корни могут искаться любое выражение, которое создается из этих функций с помощью стандартных арифметических операций +
, -
, *
, /
, ^
.
Значением по умолчанию является eps = 0.01. Определяемые пользователем цели точности должны удовлетворить.
Функция чувствительна к переменной окружения DIGITS
, который определяет числовую рабочую точность.
Следующее выражение имеет целочисленные нули. Решения в заданном интервале аппроксимированы к точности по умолчанию 0.01:
numeric::realroots(sin(PI*x), x = -2..sqrt(2))
Следующее уравнение решено с абсолютной точностью 7 цифр:
numeric::realroots(x*sin(x) = exp(-x), x = -1..1, 10^(-7))
Следующее выражение не имеет действительного корня:
numeric::realroots(exp(x) + x^2, x = -100..100)
Мы демонстрируем опцию Merge
. Если арифметика интервала не может изолировать корни к желаемой точности eps (значение по умолчанию 0.01), то смежные интервалы производятся, каждая длина, меньшая, чем eps. Это происходит в следующем примере:
numeric::realroots(ln(x^2 -2*x + 2) = 0, x = -10..10, Merge = FALSE)
С Merge = TRUE
эти интервалы объединены к одному большему интервалу. Поскольку Merge = TRUE
является настройкой по умолчанию для неполиномиальных функций, это достаточно, чтобы не использовать опцию Merge = FALSE
:
numeric::realroots(ln(x^2 -2*x + 2) = 0, x = -10..10)
Следующее выражение имеет бесконечно много решений с n = 1, 2, … в поисковом интервале [0, 1]:
numeric::realroots(sin(PI/x), x = 0..1, 0.1, Merge = FALSE)
При исключении Merge = FALSE
смежные интервалы объединены к большим интервалам. Первый из следующих интервалов содержит бесконечно много корней:
numeric::realroots(sin(PI/x), x = 0..1, 0.1)
Если никакой поисковый интервал не задан, целая действительная строка рассматривается:
numeric::realroots(x^3 = exp(x))
Кроме двух конечных интервалов, numeric::realroots
говорит нам, что может быть корень близко к бесконечности (но что нет положительно никакого корня близко к - бесконечность). Аналитически, ясно, что подынтервал не может содержать корень, поскольку становится намного быстрее, чем x 3, когда x переходит к бесконечности. Если конечный верхний предел для поискового интервала задан, этот факт обнаруживается:
numeric::realroots(x^3 = exp(x), x = -infinity .. 10^100)
Мы изолируем два конечных корня более тесно путем определения цели точности:
numeric::realroots(x^3 = exp(x), x = -infinity .. 10^100, 10^(-DIGITS))
Следующее уравнение не имеет никакого корня близко к 0. Однако арифметика интервала не производит реалистические значения для маленьких интервалов, содержащих x = 0, таким образом, интервал изоляции приблизительно 0 возвращены:
numeric::realroots(sin(PI*x)/x = 0, x = -1..1.2)
Подобное явление происходит с в районе x = 0. Интервал изоляции приблизительно 0 возвращены, несмотря на то, что никакое решение не существует там:
numeric::realroots(x^x*cos(PI*x) = tan(x), x = 0..1)
Это не может быть исправлено путем увеличения цели точности:
numeric::realroots(x^x*cos(PI*x) = tan(x), x = 0..1, 10^(-DIGITS))
|
Выражение в одном неопределенном |
| |
|
Вещественные числа или числовые выражения, удовлетворяющие a <b. Также |
|
(Маленькое) положительное действительное численное значение, задающее цель точности. Значение по умолчанию 0.01. |
|
Опция, заданная как
Настройкой по умолчанию является
С С Настройкой по умолчанию является |
Список [[a 1, b 1], [a 2, b 2], …] непересекающихся интервалов с плавающей точкой, которые могут содержать корни f (x). Пустой список возвращен, если никакой корень не существует в поисковом интервале [a, b].
Позвольте X быть подмножеством вещественных чисел. Арифметика интервала производит набор F (X), таким образом, что набор значений изображений содержится в F (X). Область MuPAD DOM_INTERVAL
упрощает этот вид арифметики. Стандартный numeric::realroots
вычисляет для различных подынтервалов. Если F не содержит нуль, то этот подынтервал устраняется из поискового интервала. В противном случае подынтервал возвращен как кандидат на содержание нулей f (x). Однако нельзя прийти к заключению, что F действительно содержит по крайней мере один нуль, поскольку F обычно больше, чем истинный набор изображений ('переоценка').
Для полиномов f (x) называется стандартный polylib::realroots
. Его результаты пересечены с поисковым интервалом. Никакая арифметика интервала не используется для многочленных выражений. Для полиномиальных уравнений каждый интервал изоляции, возвращенный numeric::realroots
, как гарантируют, будет содержать по крайней мере один корень, если Merge = TRUE
будет задан. С настройкой по умолчанию Merge = FALSE
для полиномов каждый интервал изоляции, как гарантируют, будет содержать точно один корень.