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 >> |