Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Для многих стандартных процедур MuPAD® можно использовать различные варианты. Если процедура MuPAD принимает опции, она имеет встроенный механизм для сбора и проверки этих опций. Например, функция solve
принимает опцию Real
. Опция указывает, что решатель должен возвратить только действительные решения и принимает значения TRUE
и FALSE
. Если опция принимает только TRUE
и значения FALSE
, можно обеспечить имя опции, не задавая его значение:
solve(x^4 - 1 = 0, x, Real)
Если вы не задаете опцию Real
, решатель использует значение опции по умолчанию FALSE
и возвращает все сложные решения уравнения:
solve(x^4 - 1 = 0, x)
Можно явным образом задать пару значения опции, например, Real = TRUE
или Real = FALSE
:
solve(x^4 - 1 = 0, x, Real = TRUE); solve(x^4 - 1 = 0, x, Real = FALSE)
Если вы предоставляете неожиданную возможность (например, если вы записываете имя опции неправильно), MuPAD выдает ошибку, указывая на неправильную опцию. Если существует несколько неправильных опций, MuPAD указывает на первую неправильную опцию:
solve(x^4 - 1 = 0, x, Rea, Rel)
Error: Invalid argument number 3. Evaluating: solvelib::getOptions
Можно встроить ту же опцию, проверяющую механизм в собственные процедуры. Для этой задачи MuPAD обеспечивает функцию prog::getOptions
, которая собирает и проверяет опции, используемые во время вызова процедуры. Когда пользователь вызывает вашу процедуру, prog::getOptions
сканирует все аргументы и возвращает таблицу, которая содержит все ожидаемые опции и их значения. Это также возвращает список всех неожиданных опций.
Когда вы передадите аргументы prog::getOptions
, всегда используйте следующий заказ. Первый аргумент prog::getOptions
является номером n + 1
, где n
является количеством необходимых (обязательных) аргументов процедуры. Затем необходимо предоставить список всех действительных аргументов, сопровождаемых таблицей всех приемлемых опций и их значений по умолчанию. Чтобы получить доступ к последовательности всех аргументов вызова процедуры, включая обязательные аргументы и опции, используют функцию args
.
Следующий пример демонстрирует процедуру, которая принимает числовые коэффициенты a
, b
и c
и решает квадратное уравнение a x2 + b x + c = 0 использований этих коэффициентов. Процедура solveQuadraticEqn
требует, чтобы пользователь обеспечил три числовых значения. Поэтому, если вы встраиваете prog::getOptions
в эту процедуру, первый параметр prog::getOptions
должен быть номером 4. Процедура также принимает дополнительный аргумент PositiveOnly
. Если значением PositiveOnly
является TRUE
, процедура возвращает только положительные решения квадратного уравнения. Если значением является FALSE
, процедура возвращает все решения. Следующий вызов функции к prog::getOptions
устанавливает значение опции по умолчанию PositiveOnly = FALSE
:
solveQuadraticEqn := proc(a:Type::Numeric, b:Type::Numeric, c:Type::Numeric) local options, S; begin options := prog::getOptions(4, [args()], table(PositiveOnly = FALSE)); S := solve(a*x^2 + b*x + c = 0, x); if options[1][PositiveOnly] = TRUE then S := select(S, testtype, Type::Positive) end_if: return(S) end_proc:
Если вы вызываете solveQuadraticEqn
без опции PositiveOnly
, процедура возвращает все решения квадратного уравнения:
solveQuadraticEqn(2, 3, -9)
Если вы используете опцию PositiveOnly
, процедура возвращает только положительные решения:
solveQuadraticEqn(2, 3, -9, PositiveOnly)
По умолчанию prog::getOptions
не делает ошибки, когда это находит неожиданную опцию (опция, которая не перечислена в таблице из принятых опций). Вместо этого это собирает все неожиданные опции и возвращает их в отдельном списке. Таким образом, процедура, solveQuadraticEqn
не выдает ошибку, когда вы записываете имя опции неправильно:
solveQuadraticEqn(2, 3, -9, Positive)
Функция prog::getOptions
может выдать ошибку, когда она находит неожиданную опцию. В вызове функции к prog::getOptions
четвертый аргумент указывает, должен ли prog::getOptions
тихо собрать неожиданные опции или выдать ошибку. Этот аргумент является дополнительным. По умолчанию это установлено в FALSE
. Чтобы выдать ошибку вместо того, чтобы перечислить неожиданные аргументы, используйте TRUE
в качестве четвертого аргумента prog::getOptions
:
solveQuadraticEqn := proc(a:Type::Numeric, b:Type::Numeric, c:Type::Numeric) local options, S; begin options := prog::getOptions(4, [args()], table(PositiveOnly = FALSE), TRUE); S := solve(a*x^2 + b*x + c = 0, x); if options[1][PositiveOnly] = TRUE then S := select(S, testtype, Type::Positive) end_if: return(S) end_proc:
Теперь, процедура solveQuadraticEqn
выдает ошибку. Сообщение об ошибке указывает на неправильную опцию:
solveQuadraticEqn(2, 3, -9, Positive)
Error: Invalid argument number 4. Evaluating: solveQuadraticEqn