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)
игнорирует предположения на идентификаторах.
Парный (pat, res)
Фурье содержит только для текущих значений параметров преобразования Фурье, заданных Pref::fourierParameters
.
Вызов ifourier::addpattern
может изменить выражения, возвращенные будущими вызовами fourier
и ifourier
на текущем сеансе MuPAD.
Вычислите обратное преобразование Фурье функционального 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)
Добавьте этот шаблон для обратного преобразования Фурье функционального 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):
Задайте обратное преобразование Фурье bar(y)
с помощью переменных y
и x
в качестве параметров:
ifourier::addpattern(bar(y), y, x, foo(x)):
Функция ifourier
распознает добавленный шаблон, даже если вы используете другие переменные в качестве параметров:
ifourier(bar(w), w, t)
Используйте предположения при добавлении следующего шаблона для обратного преобразования Фурье:
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)
Добавьте этот шаблон для обратного преобразования Фурье 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)
|
Арифметическое выражение в переменной |
|
Идентификатор или индексированный идентификатор, используемый в качестве переменной в шаблоне |
|
Идентификатор или индексированный идентификатор, используемый в качестве переменной в результате |
|
Арифметическое выражение в переменной |
|
Список идентификаторов или индексированных идентификаторов, используемых в качестве “переменных шаблона” (заполнители в |
|
Список условий на переменных шаблона |
Объект типа DOM_NULL