Если вы хотите упростить результаты далее

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Увеличьте число шагов упрощения

При упрощении сложного выражения MuPAD® может возвратить результаты, которые извлекли бы выгоду из дальнейших упрощений. Предположим, что вы хотите упростить следующее выражение:

f := (-(4*PI*3^(1/2))/3 + PI*(-1)^(3/4)*2^(1/2)*3^(1/2)
      *(- (2*I)/3 - 2/3))*(cos(3*arccos(x)))

Во-первых, попытайтесь вызвать общий simplifier simplify:

simplify(f)

Возвращенное выражение имеет еще более короткое представление. Чтобы упростить этот результат далее, вызовите команду Simplify:

Simplify(f)

Можно упростить результат еще больше путем увеличения числа шагов:

Simplify(f, Steps = 150)

Примените несколько функций упрощения

Чтобы преобразовать очень сложное выражение или выражение, которое должно появиться в конкретной форме, вы можете должны быть применить несколько функций упрощения. То, когда вы преобразовываете выражение к конкретной форме при помощи специальной функции преобразования, функция может возвратиться, может возвратить результаты, которые не полностью упрощены. Предположим, что вы хотите переписать тригонометрическое выражение с точки зрения показательных функций. Команда rewrite заменяет sin и функции cos показательными функциями, но не упрощает результат:

f := rewrite(sin(x)/cos(x), exp)

Чтобы упростить получившееся выражение, вызовите команду simplify:

simplify(f)

Более мощная функция Simplify преобразовывает это выражение назад в его тригонометрическую форму:

Simplify(f)

Используйте опции

При преобразовании выражений MuPAD simplifiers применяет правила, допустимые для целой комплексной плоскости. Например, попытайтесь упростить это выражение, содержащее логарифмы:

h := ln(x + 1)/2 - ln(1 - 1/x)/2 - ln(1 - x)/2 + ln(1/x + 1)/2

По умолчанию simplifier не комбинирует логарифмы, потому что эта операция только допустима для конкретных вещественных чисел. Для комплексных чисел объединение логарифмов не обычно допустимо:

Simplify(h)

Если вы решаете проблему, которая не требует приложения строгих математических правил, пытается использовать опцию IgnoreAnalyticConstraints. При использовании этой опции simplifier использует набор математических правил, которые не обычно правильны. Например, если вы используете опцию IgnoreAnalyticConstraints, simplifier возвращается:

Simplify(h, IgnoreAnalyticConstraints)

Результаты, полученные с опцией IgnoreAnalyticConstraints, являются самыми полезными для многих в проблемах разработки и физики. Обратите внимание на то, что, когда вы используете эту опцию, simplifiers не гарантируют эквивалентности исходных и упрощенных выражений для целой комплексной плоскости.

Используйте предположения

При преобразовании выражения функции упрощения применяют правила, допустимые для целой плоскости комплексных чисел. По умолчанию MuPAD не принимает дополнительных математических свойств на идентификаторах. Например, идентичность не обычно допустима для всех комплексных чисел:

simplify(ln(exp(x)))

Когда вы работаете с вещественными числами, функции упрощения могут также использовать правила, допустимые для вещественных чисел. Используйте assume или команду assuming, чтобы указать, что переменная x представляет вещественное число. Команда assume создает постоянное предположение. Команда assuming создает временное предположение, которое допустимо во время одной команды. simplifier применяет соответствующее правило и возвращает ожидаемый результат:

simplify(ln(exp(x))) assuming x in R_

Когда вы упрощаете следующее выражение, возвращенное выражение короче, чем исходное. Однако можно далее упростить возвращенное выражение:

f := ln(- 2*sin(-(sin(x)*I)/2)^2 + sin(-sin(x)*I)*I + 1);
Simplify(f)

Увеличение числа шагов упрощает выражение далее:

Simplify(f, Steps = 300)

Если вы хотите получить упрощенный результат для действительного x, принять, что x действителен:

assume(x, Type::Real);
Simplify(f, Steps = 300)

Чтобы удалить предположение, используйте команду unassume:

unassume(x);
is(x, Type::Real)

При принятии любого дополнительного математического свойства для переменной (такой как предположение, что x действителен), убедитесь, что проблема не требует решений быть допустимой для всех комплексных чисел. Будьте особенно осторожны, если ваше начальное выражение содержит комплексные числа.

Для получения дополнительной информации о предположениях, смотрите Свойства и Предположения.