Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
MuPAD® обеспечивает много предопределенных областей для большого разнообразия символьных и числовых расчетов. Система также расширяема. Если предопределенные области MuPAD не удовлетворяют вашим потребностям, можно создать операции own domains и define на их элементах. Кроме того, MuPAD позволяет вам изменять существующие области библиотеки, несмотря на то, что этот подход не рекомендуется. Чтобы создать новую область, используйте newDomain
функция. Например, создайте доменный TempF
это представляет шкалу Температуры по Фаренгейту:
TempF := newDomain("TempF"):
В настоящее время новая область не имеет никаких элементов. Чтобы создать элемент области, используйте new
функция. Например, создайте новый элемент x
из доменного TempF
:
x := new(TempF, 15)
Проверять что объект x
принадлежит доменному TempF
, используйте testtype
функция. Можно также использовать domtype
или type
функция:
testtype(x, TempF), domtype(x), type(x)
Проверять внутреннее представление x
, используйте extop
функция:
extop(x)
Предположим, что вы хотите new
метод доменного TempF
проверять, является ли входной параметр допустимым измерением температуры. В этом случае переопределите new
метод для вашего доменного TempF
:
TempF::new := t -> if testtype(t, Type::Real) then if t >= -459.67 then new(dom, t); else error("Temperature is below absolute zero."); end_if; else error("Expecting a real number above absolute zero."); end_if:
Переопределенный метод проверяет, что входной параметр является номером. Это также проверяет, что обеспеченная температура не ниже абсолютного нуля. Абсолютный нуль является нулевыми степенями по шкале температуры Келвина, которая эквивалентна-459.67 градусам по шкале Фаренгейта. Переопределенный метод создает новые элементы в градусах Фаренгейт. Вызовите метод TempF::new
непосредственно или использование более короткий синтаксис TempF(newElement)
:
TempF::new(0), TempF(32)
TempF::new
метод также гарантирует, что все новые элементы представляют допустимые температуры:
TempF(-500)
Error: Temperature is below absolute zero. [TempF::new]
TempF::new
метод требует, чтобы новые элементы были вещественными числами:
TempF(x + 2)
Error: Expecting a real number above absolute zero. [TempF::new]
TempF(1 + 2*I)
Error: Expecting a real number above absolute zero. [TempF::new]
Как следующий шаг, улучшите выходной формат для элементов вашей новой области. Чтобы изменить формат что использование MuPAD для отображения элементов области, переопределите print
метод для той области. Например, при отображении элементов доменного TempF::new
, покажите измерения температуры, сопровождаемые модулями измерений (градусы по Фаренгейту):
TempF::print := proc(TempF) begin expr2text(extop(TempF, 1)).Symbol::deg."F" end_proc:
Теперь MuPAD отображает элементы доменного TempF::new
можно следующим образом:
TempF(32), TempF(72), TempF(90), TempF(104.8)
Предположим, что вы хотите выполнить сложения для элементов новой области. По умолчанию арифметические операции обрабатывают элементы новой области как идентификаторы:
TempF(75) + TempF(10)
Можно реализовать арифметические операции для области. Например, задайте сложение для доменного TempF
. Результат сложения должен также принадлежать доменному TempF
:
TempF::_plus := proc() local elements; begin elements:= map([args()], op, 1); new(TempF, _plus(op(elements))) end_proc:
Система добавляет элементы вашей новой области тот же путь, как это добавляет числа. Система также отображает модуль градусов по Фаренгейту за получившуюся сумму:
TempF(75) + TempF(10)
Для дальнейших расчетов удалите идентификатор x
:
delete x