Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - Русский


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

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 24 11:18:32 CEST 2024