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