Выберите Simplification Functions

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

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

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

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

Соберите условия с теми же полномочиями

Если математическое выражение содержит условия с теми же степенями заданной переменной или выражения, функция collect реорганизовывает выражение, группирующее такие условия. При вызове collect задайте переменные или выражения, которые функция должна рассмотреть как неизвестные. Функция collect рассматривает исходное выражение как полином в заданных неизвестных и группирует коэффициенты с равными степенями:

collect(x*y^4 + x*z + 2*x^3 + x^2*y*z + 3*x^3*y^4*z^2
        + y*z^2 + 5*x*y*z, x)

collect может рассмотреть выражение как заданное неизвестное. Например, сгруппируйте условия следующего тригонометрического выражения с равными степенями sin(x) и cos(x):

f := cos(x)^4*sin(x) + cos(x)^2*sin(x)^3
     + cos(x)^2*sin(x)^2 - sin(x)^4:
collect(f, sin(x))

collect(f, cos(x))

Функция collect также может принять несколько неизвестных для сбора условий. Если вы имеете несколько неизвестных, передаете их collect как список:

collect(a^2*sin(x) - cos(x)^2*sin(x)^3 + cos(x)^2
        + a - a^2*sin(x)^4, [a, cos(x)])

Объедините условия тех же алгебраических структур

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

combine(2*sin(x)*cos(x), sincos)

Если вы не задаете целевую функцию, combine использует тождества для степеней везде, где эти тождества допустимы:

  • a b  ac = a b + c

  •  bc c a = (ab) c, если c является целым числом

  • (a b) c = a bc, если c является целым числом

Например, по умолчанию функция комбинирует следующие квадратные корни:

combine(sqrt(2)*sqrt(x))

Функция не комбинирует эти квадратные корни, потому что идентичность не допустима для отрицательных величин переменных:

combine(sqrt(x)*sqrt(y))

Чтобы объединить эти квадратные корни, используйте опцию IgnoreAnalyticConstraints:

combine(sqrt(x)*sqrt(y), IgnoreAnalyticConstraints)

Как целевые функции, combine принимает arctan, exp, gamma, ln, sincos и другие функции. Для полного списка целевых функций смотрите страницу справки combine.

Расширьте выражения

Для элементарных выражений функция expand преобразовывает исходное выражение путем умножения сумм продуктов:

expand((x + 1)*(x + 2)*(x + 3))

expand также использует математические тождества между функциями:

expand(sin(5*x))

expand работает рекурсивно на все подвыражения:

expand((sin(3*x) + 1)*(cos(2*x) - 1))

Чтобы предотвратить расширение конкретных подвыражений, передайте эти подвыражения expand в качестве аргументов:

expand((sin(3*x) + 1)*(cos(2*x) - 1), sin(3*x))

Чтобы предотвратить расширение всех тригонометрических подвыражений в этом примере, используйте опцию ArithmeticOnly:

expand((sin(3*x) + 1)*(cos(2*x) - 1), ArithmeticOnly)

Факторные выражения

Чтобы представить выражение как продукт сумм, попробуйте функцию factor. Учтенная форма следующего полинома явно короче, чем исходный. Учтенная форма также показывает, что этот полином имеет только один корневой x = -5:

factor(x^10 + 50*x^9 + 1125*x^8 + 15000*x^7 + 131250*x^6
       + 787500*x^5 + 3281250*x^4 + 9375000*x^3
       + 17578125*x^2 + 19531250*x + 9765625)

За суммы рациональных выражений factor сначала вычисляет общий знаменатель, и затем факторы и числитель и знаменатель:

f := (x^3 + 3*y^2)/(x^2 - y^2) + 3:
f = factor(f)

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

factor((ln(x)^2 - 1)/(cos(x)^2 - sin(x)^2))

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

factor(x^2 - 2)

Чтобы добавить константу в числа, используемые в факторинге, используйте опцию Adjoin:

factor(x^2 - 2, Adjoin = [sqrt(2)])

Вычислите нормальные формы выражений

Функция normal представляет исходное рациональное выражение как один рациональный термин с расширенным числителем и знаменателем. Наибольший общий делитель числителя и знаменатель возвращенного выражения равняются 1:

f := (x^3 + 3*y^2)/(x^2 - y^2) + 3:
f = normal(f)

normal отменяет общие множители, которые появляются в числителе и знаменателе:

f := x^2/(x + y) - y^2/(x + y):
f = normal(f)

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

f := (exp(2*x) - exp(2*y))/(exp(3*x) - exp(3*y)):
f = normal(f)

Вычислите разложения элементарной дроби выражений

Функция partfrac возвращает рациональное выражение в форме суммы полинома и рациональных условий. В каждом рациональном термине степень числителя меньше, чем степень знаменателя. Для некоторых выражений partfrac возвращает явно более простые формы, например:

partfrac((x^6 + 15*x^5 + 94*x^4 + 316*x^3 + 599*x^2
         + 602*x + 247)/(x^6 + 14*x^5 + 80*x^4
         + 238*x^3 + 387*x^2 + 324*x + 108), x)

Знаменатели в рациональных терминах представляют учтенный общий знаменатель исходного выражения:

factor(x^6 + 14*x^5 + 80*x^4 + 238*x^3 + 387*x^2 + 324*x + 108)

Упростите радикалов в арифметических выражениях

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

f := 3*sqrt(7)/(sqrt(7) - 2);
radsimp(f)

Извлеките действительные и мнимые части сложных выражений

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

Re(tan(x)), Im(tan(x))

Используйте функцию rectform, чтобы разделить символьное выражение в его действительные и мнимые части:

y := rectform(tan(x))

Чтобы извлечь действительные и мнимые части y, используйте функции Im и Re:

Re(y); Im(y)

Перепишите выражения с точки зрения других функций

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

sin(x) = rewrite(sin(x), tan);
cos(x) = rewrite(cos(x), tan);
sin(2*x) + cos(3*x)^2 = rewrite(sin(2*x) + cos(3*x)^2, tan)

Используйте rewrite, чтобы выразить тригонометрические и гиперболические функции с точки зрения показательной функции:

sin(x) = rewrite(sin(x), exp);
cos(x) = rewrite(cos(x), exp);
sinh(x) = rewrite(sinh(x), exp);
cosh(x) = rewrite(cosh(x), exp)

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

arcsinh(x) = rewrite(arcsinh(x), ln);
arccosh(x) = rewrite(arccosh(x), ln)

Как целевые функции, rewrite принимает: прямые и обратные тригонометрические функции, прямые и обратные гиперболические функции, diff, D, erf, exp, fact, gamma, harmonic, piecewise и т.д. Смотрите страницу справки rewrite для полного списка целевых функций.