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.
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:
Мы демонстрируем, как 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:
Коэффициенты 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:
Таким же образом 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:
Результат coeff не полностью оценен:
p := poly(27*x^2 + a*x, [x]): a := 5: coeff(p, x, 1), eval(coeff(p, x, 1))
![]()
delete p, a:
Чтобы возвратить все коэффициенты полинома, используйте опцию 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))
![]()
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)])

| |
|
Неопределенное |
|
Степень: неотрицательное целое число |
| |
|
Список indeterminates полинома: обычно, идентификаторы или индексированные идентификаторы |
|
Функция |
Один или несколько коэффициентов содействующего звонка полинома, или полинома или FAIL.
fp