ifourier:: addpattern

Добавьте шаблоны для обратного преобразования Фурье

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

ifourier::addpattern(pat, w, t, res, <vars, <conds>>)

Описание

ifourier::addpattern(pat, w, t, res) учит ifourier возвращать res для выражения pat.

Функция ifourier использует набор шаблонов для вычислительных обратных преобразований Фурье. Можно расширить набор путем добавления собственных шаблонов. Чтобы добавить новый шаблон в сопоставителя, используйте ifourier::addpattern. MuPAD® не сохраняет пользовательские шаблоны постоянно. Новые шаблоны доступны на текущем сеансе MuPAD только.

После вызова ifourier::addpattern(pat, w, t, res) функция ifourier возвращает res для выражения pat. Обратите внимание на то, что обратное преобразование Фурье задано как, где c и s являются параметрами, заданными Pref::fourierParameters. Если вы добавите новый шаблон, и затем измените параметры преобразования Фурье, результат, возвращенный ifourier(pat, w, t), также изменится. Смотрите Пример 2.

Имена переменных, которые вы используете при вызове ifourier::addpattern, могут отличаться от имен, которые вы используете при вызове ifourier. Смотрите Пример 3.

Можно включать список свободных параметров и список условий на этих параметрах. Эти условия и результат защищены от преждевременной оценки. Это означает, что можно использовать  not iszero(a^2-b) вместо hold( _not @ iszero )(a^2-b).

Следующие условия обрабатывают предположения на идентификаторах по-другому:

  • a^2-b <> 0 учитывает предположения на идентификаторах.

  •  not iszero(a^2-b) игнорирует предположения на идентификаторах.

Смотрите пример 4 и пример 5.

Взаимодействия среды

Парный (pat, res) Фурье содержит только для текущих значений параметров преобразования Фурье, заданных Pref::fourierParameters.

Вызов ifourier::addpattern может изменить выражения, возвращенные будущими вызовами fourier и ifourier на текущем сеансе MuPAD.

Примеры

Пример 1

Вычислите обратное преобразование Фурье функционального bar. По умолчанию MuPAD не имеет шаблона для этой функции:

ifourier(bar(w), w, t)

Добавьте шаблон для обратного преобразования Фурье bar с помощью ifourier::addpattern:

ifourier::addpattern(bar(w), w, t, foo(t)):

Теперь ifourier возвращает преобразование Фурье bar:

ifourier(bar(w), w, t)

После того, как вы добавляете, что новое преобразовывает шаблон, MuPAD может использовать тот шаблон косвенно:

ifourier(exp(-a*I*s)*bar(2*s + 10), s, t)

Пример 2

Добавьте этот шаблон для обратного преобразования Фурье функционального bar:

ifourier::addpattern(bar(w), w, t, foo(t)):
ifourier(bar(w), w, t)

Теперь измените параметры преобразования Фурье с помощью Pref::fourierParameters:

Pref::fourierParameters(a, b):

Оцените преобразование с новыми параметрами:

ifourier(bar(w), w, t)

Для дальнейших вычислений восстановите значения по умолчанию параметров преобразования Фурье:

Pref::fourierParameters(NIL):

Пример 3

Задайте обратное преобразование Фурье bar(y) с помощью переменных y и x в качестве параметров:

ifourier::addpattern(bar(y), y, x, foo(x)):

Функция ifourier распознает добавленный шаблон, даже если вы используете другие переменные в качестве параметров:

ifourier(bar(w), w, t)

Пример 4

Используйте предположения при добавлении следующего шаблона для обратного преобразования Фурье:

ifourier::addpattern(bar(x, w), w, t, foo(x, t), [x], [abs(x) < 1]):
ifourier(bar(x, w), w, t) assuming abs(x) < 1/2

Если |x | ≥ 1, вы не можете применить эти шаблоны:

ifourier(bar(x, w), w, t) assuming x < -1

Если MuPAD не может определить, удовлетворены ли условия, он возвращает объект piecewise:

ifourier(bar(x, w), w, t)

Пример 5

Добавьте этот шаблон для обратного преобразования Фурье g:

ifourier::addpattern(g(a, w), w, t, f(a, t)/a):
ifourier(g(a, W), W, T)

Этот шаблон содержит только, когда первый аргумент g является символьным параметром a. Если вы используете значение этого параметра, ifourier игнорирует шаблон:

ifourier(g(b, W), W, T);
ifourier(g(2, W), W, T)

Чтобы использовать шаблон для произвольных значений параметра, объявите параметр a как дополнительная переменная шаблона:

ifourier::addpattern(g(a, w), w, t, f(a, t)/a, [a]):

Теперь ifourier применяет заданный шаблон для произвольного значения a:

ifourier(g(2, W), W, T)

ifourier(g(a^2 + 1, W), W, T)

Обратите внимание на то, что получившийся f(a, t)/a выражения, задающий преобразование Фурье g(a, w) неявно, принимает, что значение a не является нулем. Строгое определение шаблона:

ifourier::addpattern(g(a, w), w, t, f(a, t)/a, [a], [a <> 0]):

Для этого конкретного шаблона можно не использовать определение предположения a <> 0 явным образом. Если a = 0, MuPAD выдает внутреннее “Деление на нуль”. ошибка и игнорирует шаблон:

ifourier(f(0, W), W, T)

Параметры

pat

Арифметическое выражение в переменной w, представляющей шаблон, чтобы соответствовать

w

Идентификатор или индексированный идентификатор, используемый в качестве переменной в шаблоне

t

Идентификатор или индексированный идентификатор, используемый в качестве переменной в результате

res

Арифметическое выражение в переменной t, представляющей шаблон для результата

vars

Список идентификаторов или индексированных идентификаторов, используемых в качестве “переменных шаблона” (заполнители в pat и res). Можно использовать переменные шаблона в качестве заполнителей почти для произвольных выражений MuPAD, не содержащих w или t. Можно ограничить их условиями, данными в дополнительном параметре conds.

conds

Список условий на переменных шаблона

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

Объект типа DOM_NULL