Функции > Решение и оптимизация > Модули поиска корней и решатели систем линейных уравнений > Нахождение корней
  
Нахождение корней
Корнем функции является значение, в котором функция равна нулю.
Функция polyroots(v) — возвращает вектор, содержащий три корня полинома, коэффициенты которого заданы параметром v.
По умолчанию функция polyroots использует метод Лагерра, который путем итераций ищет решение в комплексной плоскости.
Функция root(f(var1, var2, ...), var1, [a, b]) — возвращает значение параметра var1, при котором функция f равна нулю. Если указаны параметры a и b, функция root находит параметр var1 в интервале [a, b]. В противном случае должно быть определено начальное приближение параметра var1 перед вызовом функции root. При использовании начального приближения в функции root используется метод секущих или метод Мюллера. В случае использования интервала в качестве начального приближения корня в функции root используется метод Риддера или Брента.
Аргументы
f — скалярная функция с любым числом переменных.
var1 — скалярная переменная, определяемая с помощью параметра f, переменной, относительно которой ищется корень. Определите комплексное приближение для поиска решения с комплексным корнем.
a, b (необязательные) — вещественные числа, a < b, так что f(a) и f(b) имеют противоположные знаки. Функция root производит поиск корня в интервале a ≤ x ≤ b.
Необходимо определить аргументы диапазона [a, b] при вычислении функции root аналитически.
v - вектор, содержащий коэффициенты полинома, в котором первый элемент - это свободный член, и 2 ≤ length(v) ≤ 99.
Дополнительные сведения
При вставке функции root с ленты ей автоматически присваивается метка Ключевое слово (Keyword).
Функция root может решить только одно уравнение с одним неизвестным. Для решения системы из нескольких уравнений используйте функцию find или minerr.
Функция root зависит от параметра TOL, но не реагирует на значение TOL, большее чем 10-5. Это максимальное значение критерия сходимости. Кроме того, значения TOL, меньшие чем 10-12, вряд ли дадут лучшие результаты, притом что в алгоритме может произойти сбой сходимости.
Для функций с несколькими корнями возвращаемое значение зависит от начального приближения. Если начальное приближение очень близко к минимальному или максимальному значению f, функция root может не сойтись или сойтись при значении корня, довольно далекого от начального приближения. При выборе подходящего начального приближения или интервала в скобках полезно заранее построить график функции.
В случае функций с вариативной высокоскоростной обработкой решатель корня может возвращать малые комплексные части, даже если ожидается вещественный результат.
Чтобы решить уравнение вида f(x) = g(x), используйте выражение, подобное следующему: x0 := root(f(x) − g(x), x).
Для выражения f(x) с известным корнем r решение с получением дополнительных корней f(x) эквивалентно решению с получением корней h(x) = f(x) / (x − r). Сокращение известных корней подобным образом полезно при поиске двух корней, значения которых могут быть близкими друг к другу. Часто бывает легче решить уравнение и найти корни h(x), как здесь определено, чем пытаться найти другие корни для f(x) с различающимися приближениями.
Если f(x) имеет малый наклон вблизи своего корня, то функция root(f(x), x) может сходиться при значении r, относительно далеком от фактического значения корня. В этих случаях, даже если |f(r)|<TOL, r может быть далеко от точки, в которой f(r) = 0. Чтобы найти корень более точно, уменьшите значение TOL. Или попытайтесь найти root(g(x),x), где g(x) = [f(x))]/[(d/dx)*f(x)]).
Функция root может не сойтись или сойтись при неожиданном значении корня, если:
не существует корней для данного выражения;
значения корней слишком далеки от начального приближения;
существует локальное максимальное значение или локальное минимальное значение или нарушение непрерывности между начальным приближением и корнями;
начальное приближение очень близко к минимальному или максимальному значению функции f;
выражение имеет комплексный корень, но начальное приближение вещественное (или наоборот);
существует несколько близко расположенных корней — попытайтесь уменьшить значение TOL, чтобы обособить их;
корни находятся в плоских областях функции — попытайтесь уменьшить значение TOL или найти корень функции f(x), деленной на ее первую производную.