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.

Примеры

Пример 1

Функциональный 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)

Пример 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:

Пример 3

Мы рассматриваем полином по целым числам по модулю 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:

Пример 4

Обратите внимание на то, что полиномы типа 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:

Параметры

p

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

F

Процедура

a1, a2, …

Дополнительные параметры для функционального F

f

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

vars

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

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

Полином типа DOM_POLY, или многочленное выражение или FAIL.

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

fp

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

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте