poly
Определение полинома через указанные корни или коэффициенты или определение характеристического полинома квадратной матрицы.
Синтаксис
p = poly(vec, vname) p = poly(vec, vname, "roots"|"coeff") Pc = poly(matNN, vname)
Аргументы
- vname
строка: имя символьной переменной полинома. Разрешённые символы те же самые, что и для имён переменных (правила наименования).
- vec
скаляр, вектор или неквадратная матрица вещественных или комплексных чисел.
- флаг "roots" (по умолчанию) | "coeff" (либо "r" | "c")
Указывает какие числа представлены в
vec
."roots"
является значением по умолчанию.Могут быть использованы сокращения:
"r"
для"roots"
, и"c"
для"coeff"
.- p
Полином с указанными корнями или коэффициентами и имя символьной переменной.
- matNN
Квадратная матрица вещественных или комплексных чисел.
- Pc
Характеристический полином указанной квадратной матрицы =
det(x*eye() - matNN)
с символьной переменнойx = poly(0,vname)
.
Описание
- Когда указан вектор или неквадратная матрица
vec
p = poly(vec, "x", "roots")
илиp = poly(vec, "x")
является полиномом, чьи корни являются компонентамиvec
, а"x"
- это имя его переменной.degree(p)==length(vec)
poly()
иroots()
являются обратными функциями друг другу.- Бесконечные корни дают нулевые коэффициенты наивысшей степени.
В этом случае фактическая степень
p
меньше, чемlength(vec)
. Например,poly([-%inf -1 2 %inf ], "x")
даёт(x-2)(x+1)
, чья степень 2.
Простое выражение
x=poly(0,"x")
определяет элементарное выражениеp(x)=x
, которое может быть использовано с обычными операторами +, -, *, / и простые функции типаsum()
.Scilab предоставляет 3 предопределённых элементарных полинома%s
,%z
и$
. Последний полином главным образом используется в качестве символьного значения последнего индекса (в интервале).poly(vec, "x", "coeff")
формирует полином с символом"x"
, чьи коэффициенты в порядке увеличения степени являются компонентамиvec
(vec(1)
- это постоянный член полинома). Нулевые коэффициенты высокого порядка (добавленные к концуvec
) игнорируются.В свою очередь,coeff(p)
возвращает коэффициенты указанного полинома.
- Когда указана квадратная матрица
matNN
poly(matNN, vname)
возвращает её характеристический полином символьной переменнойvname
, т.е.p
установлен вdet(x*eye() - matNN)
сx = poly(0,vname)
.
Примеры
Формирование полинома указанных коэффициентов:
// Прямое формирование: x = poly(0,"x"); p = 1 - x + 2*x^3 // С poly(): p2 = poly([1 -1 0 2], "x", "coeff") // С нулевыми коэффициентами высокого порядка p3 = poly([2 0 -3 zeros(1,8)], "y", "coeff")
--> p = 1 - x + 2*x^3 p = 3 1 -x +2x --> p2 = poly([1 -1 0 2], "x", "coeff") p2 = 3 1 -x +2x --> p3 = poly([2 0 -3 zeros(1,8)], "y", "coeff") p3 = 2 2 -3y
Формирование полинома указанных корней:
// Прямое формирование: x = poly(0,"x"); p = (1-x)^2 * (2+x) // С poly(): p2 = poly([1 1 -2], "x") // С бесконечными корнями p3 = poly([%inf -1 2 %inf -%inf], "x")
--> p = (1-x)^2 * (2+x) p = 3 2 -3x +x --> p2 = poly([1 1 -2], "x") p2 = 3 2 -3x +x --> p3 = poly([%inf -1 2 %inf -%inf], "x") p3 = 2 -2 -x +x
Характеристический полином квадратной матрицы:
A = [1 2 ; 3 -4] poly(A, "x")
--> A = [1 2 ; 3 -4] A = 1. 2. 3. -4. --> poly(A, "x") ans = 2 -10 +3x +x
Смотрите также
- inv_coeff — построение матрицы полиномов по их коэффициентам
- coeff — polynomial coefficients
- roots — roots of a polynomial
- varn — Символические переменных полиномами или рациональные дроби
- horner — evaluates some polynomials or rationals for given values
- %s — A variable used to define polynomials.
- %z — A variable used to define polynomials.
- rational — объекты Scilab, рациональное число в Scilab
- rlist — определение функции рационального деления Scilab
История
Версия | Описание |
5.5.0 | Для третьего аргумента разрешены только значения "roots", "coeff", "c" и "r". |
6.0.0 | Имя символьной переменной больше не ограничено четырьмя символами. Оно может включать в себя некоторые расширенные символы UTF-8. |
6.0.2 | С методом "coeff", нулевые коэффициенты высокого порядка теперь игнорируются. |
Report an issue | ||
<< polfact | Polynomials | polyDisplay >> |