числовой::

Числовые корни системы полиномиальных уравнений

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

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

Синтаксис

numeric::polysysroots(eqs, <NoWarning>)
numeric::polysysroots(eqs, vars, <NoWarning>)

Описание

numeric::polysysroots(eqs, ...) возвращает числовые приближения всех действительных и комплексных корней полиномиальной системы уравнений eqs.

Коэффициенты полиномов могут содержать символьные параметры.

Если никакие неизвестные не заданы vars, thennumeric::indets(eqs) используется вместо vars.

В большинстве случаев решение возвращено как набор списков решенных уравнений формы

,

где x 1, x 2, … является неизвестными. Эти упрощенные уравнения должны рассматриваться как ограничения на неизвестные. Например, если неизвестный x 1, скажем, не поднимает в форме x 1 = … в решении, то нет никакого ограничения на это неизвестное, и это - произвольный параметр. Это сохраняется в целом для всех неизвестных, которые не поднимаются на левой стороне решенных уравнений. Cf. Пример 2.

Если никакие явные решения не могут быть вычислены, выражения формы (x1,x2,)S может быть возвращен, где S является набором решения.

Упорядоченное расположение неизвестных в vars определяет упорядоченное расположение решенных уравнений. Если setvars используется, то внутреннее упорядоченное расположение используется.

Примечание

Если набор решения eqs не конечен, то numeric::polysysroots может возвратить решения с некоторыми неизвестными, остающимися как свободные параметры. В этом случае представление решения зависит от упорядоченного расположения неизвестных! Cf. Пример 3. Далее, если более высокие полиномы степени включены, то numeric::polysysroots может не вычислить корни. Cf. Пример 5. То же самое может произойти, когда eqs содержит символьные параметры.

Можно попробовать numeric::fsolve, чтобы вычислить один числовой корень, если numeric::polysysroots не может вычислить все корни системы. Обратите внимание, однако, что numeric::fsolve не принимает символьные параметры в уравнениях.

Мы рекомендуем использовать numeric::polyroots, чтобы вычислить все корни одного одномерного полинома с числовыми коэффициентами.

numeric::polysysroots является гибридной стандартной программой: это вызывает символьный решатель solve(eqs, vars, BackSubstitution = FALSE) и обрабатывает его символьный результат численно. Cf. Пример 4.

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

Функция чувствительна к переменной окружения DIGITS, который определяет числовую рабочую точность.

Примеры

Пример 1

Уравнения, выражения, а также объекты DOM_POLY могут использоваться, чтобы задать полиномы:

numeric::polysysroots(x^2 = PI^2, x)

numeric::polysysroots({x^2 + y^2 - 1, x^2 - y^2 = 1/2}, [x, y])

numeric::polysysroots({poly(x^2 + y + 1), y^2 + x = 1}, [x, y])

Приняты символьные параметры:

numeric::polysysroots(x^2 + y + exp(z), [x, y])

Пример 2

Возвращенные решения могут содержать некоторые неизвестные, остающиеся как свободные параметры:

numeric::polysysroots({x^2 + y^2 = z}, [x, y, z])

Пример 3

Упорядоченное расположение неизвестных определяет представление решения, если набор решения не конечен. Во-первых, следующее уравнение решено для x, оставив y как свободный параметр:

numeric::polysysroots({x^3 = y^2}, [x, y])

Переупорядочение неизвестных приводит к представлению с x как свободный параметр:

numeric::polysysroots({x^3 = y^2}, [y, x])

Пример 4

Символьный решатель производит решение RootOf следующей системы:

eqs := {y^2 - y = x, x^3 = y^3 + x}:
solve(eqs, BackSubstitution = FALSE)

Внутренне, numeric::polysysroots вызывает solve и обрабатывает этот результат численно:

numeric::polysysroots(eqs, [x, y])

delete eqs:

Пример 5

Следующее уравнение решено для первых из заданных неизвестных:

eqs := y^5 - PI*y = x:
solve(eqs, [x, y])

numeric::polysysroots обрабатывает этот вывод численно:

numeric::polysysroots(eqs, [x, y])

Уравнение решено для y, когда неизвестные переупорядочиваются. Однако никакое простое представление решения не существует, таким образом, объект RootOf возвращен:

solve(eqs, [y, x])

Корни, представленные выражением RootOf, не могут быть вычислены численно, потому что символьный параметр x включен:

numeric::polysysroots(eqs, [y, x])

delete eqs:

Параметры

eqs

Полиномиальное уравнение или список, набор, array или matrix (Cat::Matrix) таких уравнений. Также выражения и полиномы доменного типа, DOM_POLY принят везде, где уравнение ожидается. Они интерпретированы как однородные уравнения.

vars

Неизвестное или список или набор неизвестных. Неизвестные могут быть идентификаторами или индексированными идентификаторами.

Опции

NoWarning

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

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

Набор списков уравнений или выражения формы (x1,x2,)S, где x 1, x 2, … является неизвестными, и S является набором решения.

Набор {[]} содержащий пустой список возвращен, если никакие решения не могут быть вычислены.