coeff

Коэффициенты полинома

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

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

Синтаксис

coeff(p, <All>)
coeff(p, <x>, n, <All>)
coeff(p, <[x, …]>, [n, …], <All>)
coeff(f, <vars>, <All>)
coeff(f, <vars>, <x>, n, <All>)
coeff(f, <vars>, <[x, …]>, [n, …], <All>)

Описание

coeff(p) возвращает последовательность всех ненулевых коэффициентов полиномиального p.

coeff(p, x, n) отношения p как одномерный полином в x и возвращает коэффициент термина x^n.

coeff(p, [x,...], [n,...]) отношения p как многомерный полином в x,... и возвращает коэффициент термина x^n,....

Если первый аргумент f не элемент полиномиальной области, затем coeff преобразует выражение внутренне в полином типа DOM_POLY через poly(f). Если список indeterminates задан, полиномиальный poly(f, vars) рассматривается.

Коэффициенты многочленных выражений f возвращены как арифметические выражения.

Существуют различные способы вызвать coeff с полиномиальным p из типа DOM_POLY:

  • coeff(p) возвращает последовательность всех ненулевых коэффициентов p. Им упорядочивают согласно лексикографическому упорядоченному расположению термина. Порядок в убывании.

    Возвращенные коэффициенты являются элементами содействующего звонка p.

  • coeff(p, x, n) отношения p как одномерный полином в переменной x и возвращает коэффициент термина x^n.

    Для одномерных полиномов возвращенные коэффициенты являются элементами содействующего звонка p.

    Для многомерных полиномов коэффициенты возвращены как полиномы типа DOM_POLY в “остающихся” переменных.

  • coeff(p, n) эквивалентно coeff(p, x, n), где x “основная переменная” p. Эта переменная является первым элементом списка indeterminates op(p, 2).

  • coeff(p, [x1,x2,...], [n1,n2,...]) отношения p как многомерный полином в переменных x1,x2,... и возвращает коэффициент термина x1^n1*x2^n2.... Переменная и списки экспонент должны иметь ту же длину.

    Возвращенные коэффициенты являются любой элементами содействующего звонка p или полиномы типа DOM_POLY в “остающихся” переменных.

  • coeff(p, [n1,n2,...]) эквивалентно coeff(p, [x1,x2,...], [n1,n2,...]), где переменные x1,x2,... “основные переменные” p, т.е. ведущие элементы списка indeterminates op(p, 2).

  • coeff(p, All) возвращает последовательность коэффициентов p включая равных нулю. Функция возвращает результат в возрастающем лексикографическом порядке. Для одномерного полиномиального p, вызов coeff(p, All) эквивалентно coeff(p, i) $ i = 0 .. degree(p).

coeff возвращается 0 или нулевой полином, если полином не содержит термин, соответствующий заданным степеням. В частности, это происходит для одномерного полинома если n больше, чем степень полинома.

coeff возвращает FAIL если выражение не может рассматриваться как полином.

Результат coeff не полностью оценен. Оценка может быть осуществлена функциональным eval. Смотрите пример 5.

Примеры

Пример 1

coeff(f) возвращает последовательность всех ненулевых коэффициентов:

f := 10*x^10 + 5*x^5 + 2*x^2: coeff(f)

coeff(f, i) возвращает один коэффициент:

coeff(f, i) $ i = 0..15

delete f:

Пример 2

Мы демонстрируем, как indeterminates влияют на результат:

f := 3*x^3 + x^2*y^2 + 17*x + 23*y + 2

coeff(f); coeff(f, [x, y]); coeff(f, [y, x])

delete f:

Пример 3

Коэффициенты f выбраны относительно основной переменной x который является первой записью списка indeterminates:

f := 3*x^3 + x^2*y^2 + 2: coeff(f, [x, y], i) $ i = 0..3

Коэффициенты f может быть выбран относительно другой основной переменной (в этом случае, y):

coeff(f, [y, x], i) $ i = 0..2

В качестве варианта:

coeff(f, y, i) $ i = 0..2

Коэффициенты f может также быть выбран относительно многомерного термина:

coeff(f, [x,y], [3,0]),
coeff(f, [x,y], [2,2]),
coeff(f, [x,y], [0,0])

delete f:

Пример 4

Таким же образом, coeff может быть применен к полиномам типа DOM_POLY:

p := poly(3*x^3 + x, [x], Dom::IntegerMod(7)):
coeff(p)

coeff(p, i) $ i = 0..3

Для многомерных полиномов коэффициенты относительно неопределенного являются полиномами в другом indeterminates:

p := poly(3*x^3 + x^2*y^2 + 2, [x, y]):
coeff(p, y, 0), coeff(p, y, 1), coeff(p, y, 2);

coeff(p, x, 0), coeff(p, x, 1), coeff(p, x, 2)

Обратите внимание на то, что indeterminates передал coeff будет использоваться, даже если полином обеспечит различный indeterminates:

coeff(p, z, 0), coeff(p, z, 1), coeff(p, z, 2)

delete p:

Пример 5

Результат coeff не полностью оценен:

p := poly(27*x^2 + a*x, [x]): a := 5:
coeff(p, x, 1), eval(coeff(p, x, 1))

delete p, a:

Пример 6

Чтобы возвратить все коэффициенты полинома, используйте All опция:

p := poly(a*x^3 + b*x^2 + c*x + d, [x, y]):
coefficients := coeff(p, All)

Чтобы вернуться порядок получившейся последовательности, используйте revert функция. Эта функция не работает с последовательностями. Чтобы преобразовать последовательность в список, вызовите revert для этого списка, и преобразуют результат назад в последовательность:

op(revert([coefficients]))

All опция также работает на многочленные выражения:

p_expr := 2*x^5 + 5*x^2 + 10*x + 3:
coeff(p_expr, All)

Можно использовать coeff функция с All опция, чтобы вычислить скалярные произведения полиномов. Например, следующая процедура вычисляет скалярное произведение двух полиномов в ортонормированном базисе. coeff функционируйте извлекает коэффициенты полиномов и возвращает два списка коэффициентов. zip функция умножает записи этих списков попарно и возвращает список. op функциональные доступы записи того списка. Наконец, _plus функция вычисляет сумму всех продуктов:

scalarProduct := proc(p, q)
  local lp, lq;
begin
  lp := [coeff(p, All)];
  lq := [coeff(conjugate(q), All)];
_plus(op(zip(lp, lq, _mult)));
end_proc:

Следующие полиномы являются ортогональными:

scalarProduct(poly(x^2 + 2), poly(x^3 + 2*x^2 - 1))

Пример 7

coeff(p, All) также работает на многомерные полиномы и многочленные выражения:

p := poly(2*x^2*y + PI*x + y^2 - 2, [x, y]):
coeff(p, All)

Для многомерного многочленного или многочленного выражения, порядка, в который coeff возвращается коэффициенты таково, что коэффициент вектора экспоненты [e 1, e 2, …] появляется в положении e 1  d1 + e 2  d2 + … + 1. Например, представляйте коэффициенты, возвращенные для двумерного полинома как матрица:

A := matrix(degree(p, x) + 1, degree(p, y) + 1, [coeff(p, All)])

Параметры

p

Полином типа DOM_POLY

x

Неопределенное

n

Степень: неотрицательное целое число

f

Многочленное выражение

vars

Список indeterminates полинома: обычно, идентификаторы или индексированные идентификаторы

Опции

All

coeff функция с этой опцией возвращает все коэффициенты полинома или многочленного выражения включая равных нулю. Функция возвращает результат в возрастающем лексикографическом порядке. Смотрите Пример 6 и Пример 7.

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

Один или несколько коэффициентов содействующего звонка полинома, или полинома или FAIL.

Перегруженный

fP

Смотрите также

Функции MuPAD