mapcoeffs
Примените функцию к коэффициентам полинома
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
mapcoeffs(p
,F
, <a1, a2, …
>) mapcoeffs(f
, <vars
>,F
, <a1, a2, …
>)
mapcoeffs(p, F, a1, a2, ...)
применяет функциональный F
к полиномиальному p
, заменяя каждый коэффициент c
в p
F(c, a1, a2, ...)
.
Для полиномиального p
типа DOM_POLY
, сгенерированный poly
, функциональный F
, должен принять аргументы от содействующего звонка p
и должен привести к соответствующим результатам.
Многочленное выражение f
сначала преобразовано в полином с переменными, данными vars
. Если никакие переменные не даны, они разыскиваются в f
. Смотрите poly
о деталях преобразования. FAIL
возвращен, если f
не может быть преобразован в полином. После применения функционального F
результат преобразован в выражение.
mapcoeffs
оценивает свои аргументы. Обратите внимание, однако, что полиномы типа DOM_POLY
не оценивают свои коэффициенты по причинам эффективности. Cf. Пример 4.
Функциональный sin
сопоставлен с коэффициентами многочленного выражения в indeterminates x
и y
:
mapcoeffs(3*x^3 + x^2*y^2 + 2, sin)
Следующий вызов заставляет mapcoeffs
рассматривать это выражение как полином в x
. Следовательно, y
расценивается в качестве параметра, который становится частью коэффициентов:
mapcoeffs(3*x^3 + x^2*y^2 + 2, [x], sin)
Системная функция _plus
добавляет свои аргументы. В следующем вызове это используется, чтобы добавить 2 ко всем коэффициентам путем обеспечения этого сдвига в качестве дополнительного аргумента:
mapcoeffs(c1*x^3 + c2*x^2*y^2 + c3, [x, y], _plus, 2)
Функциональный sin
сопоставлен с коэффициентами полинома в indeterminates x
и y
:
mapcoeffs(poly(3*x^3 + x^2*y^2 + 2, [x, y]), sin)
В следующем вызове полином имеет неопределенный x
. Следовательно, y
расценивается в качестве параметра, который становится частью коэффициентов:
mapcoeffs(poly(3*x^3 + x^2*y^2 + 2, [x]), sin)
Пользовательская функция сопоставлена с полиномом:
F := (c, a1, a2) -> exp(c + a1 + a2): mapcoeffs(poly(x^3 + c*x, [x]), F, a1, a2)
delete F:
Мы рассматриваем полином по целым числам по модулю 7:
p := poly(x^3 + 2*x*y, [x, y], Dom::IntegerMod(7)):
Функция, которая будет применена к коэффициентам, должна произвести значения в содействующем звонке полинома:
mapcoeffs(p, c -> c^2)
Следующий вызов сопоставляет функцию, которая преобразовывает ее аргумент в целое число по модулю 3. Такое возвращаемое значение не является допустимым коэффициентом p
:
mapcoeffs(p, c -> Dom::IntegerMod(3)(expr(c)))
delete p:
Обратите внимание на то, что полиномы типа DOM_POLY
не оценивают свои аргументы:
delete a, x: p := poly(a*x, [x]): a := PI: p
Оценка может быть осуществлена функциональным eval
:
mapcoeffs(p, eval)
Мы сопоставляем синусоидальную функцию с коэффициентами p
. Полином не оценивает свой коэффициент sin(a)
к 0
:
mapcoeffs(p, sin)
Состав sin
и eval
сопоставлен с коэффициентами полинома:
mapcoeffs(p, eval@sin)
delete p, a:
| |
| |
|
Дополнительные параметры для функционального |
| |
|
Список indeterminates полинома: обычно, идентификаторы или индексированные идентификаторы |
fp