iztrans:: addpatternДобавьте, что шаблоны для инверсии Z преобразовывают
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
iztrans::addpattern(pat, z, k, res, <vars, <conds>>)
iztrans::addpattern(pat, z, k, res) учит iztrans возвращать iztrans (pat, z, k) = res.
Функция iztrans использует набор шаблонов для вычислительной инверсии Z, преобразовывает. Можно расширить набор путем добавления собственных шаблонов. Чтобы добавить новый шаблон в сопоставителя, используйте iztrans::addpattern. MuPAD® не сохраняет пользовательские шаблоны постоянно. Новые шаблоны доступны на текущем сеансе MuPAD только.
Имена переменных, которые вы используете при вызове iztrans::addpattern, могут отличаться от имен, которые вы используете при вызове iztrans. Смотрите Пример 2.
Можно включать список свободных параметров и список условий на этих параметрах. Эти условия и результат защищены от преждевременной оценки. Это означает, что можно использовать not iszero(a^2 - b) вместо hold( _not @ iszero )(a^2 - b).
Следующие условия обрабатывают предположения на идентификаторах по-другому:
a^2 - b <> 0 учитывает предположения на идентификаторах.
not iszero(a^2 - b) игнорирует предположения на идентификаторах.
Смотрите пример 3.
Вызов iztrans::addpattern изменяет выражения, возвращенные будущими вызовами iztrans.
Вычислите инверсию Z преобразование функционального bar. По умолчанию MuPAD не имеет шаблона для этой функции:
iztrans(bar(z), z, k)
![]()
Добавьте шаблон для инверсии Z преобразование bar с помощью iztrans::addpattern:
iztrans::addpattern(bar(z), z, k, foo(k)):
Теперь iztrans возвращает инверсию Z преобразование bar:
iztrans(bar(z), z, k)
![]()
Задайте инверсию Z преобразование bar(y) с помощью переменных x и y в качестве параметров:
iztrans::addpattern(bar(y), y, x, foo(x))
Функция iztrans распознает добавленный шаблон, даже если вы используете другие переменные в качестве параметров:
iztrans(bar(z), z, k)
![]()
Используйте предположения при добавлении, что этот шаблон для инверсии Z преобразовывает:
iztrans::addpattern(BAR(x*z), z, k, FOO(k/(x - 1/2))*sin(x),
[x], [abs(x) < 1]):
iztrans(BAR(x*z), z, k) assuming -1 < x < 1
Если |x | ≥ 1, вы не можете применить этот шаблон:
iztrans(BAR(x*z), z, k) assuming x >= 1
![]()
Если MuPAD не может определить, удовлетворены ли условия, он возвращает объект piecewise:
iztrans(BAR(x*z), z, k)
![]()
Обратите внимание на то, что получившееся выражение, задающее инверсию Z преобразование BAR(x*z) неявно, принимает, что значение x не является 1/2. Строгое определение шаблона:
ztrans::addpattern(BAR(x*z), z, k, FOO(k/(x - 1/2))*sin(x),
[x], [abs(x) < 1, x <> 1/2]):Если или условия не удовлетворены или замена значениями в результат, дает ошибку, iztrans игнорирует шаблон. Для этого конкретного шаблона можно не использовать определение предположения x <> 1/2. Если x = 1/2, MuPAD выдает внутреннее “Деление на нуль”. ошибка и игнорирует шаблон:
iztrans(BAR(z/2), z, k)
![]()
|
Арифметическое выражение в переменной |
|
Идентификатор, используемый в качестве переменной в шаблоне |
|
Идентификатор, используемый в качестве переменной в результате |
|
Арифметическое выражение в переменной |
|
Список идентификаторов или индексированных идентификаторов, используемых в качестве “переменных шаблона” (заполнители в |
|
Список условий на переменных шаблона |
Объект типа DOM_NULL