Блокноты 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