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