упрощение

Упростите выражение

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

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

Синтаксис

simplify(f, <target>, options)
simplify(L, <target>, options)

Описание

simplify (f) пытается упростить выражение f путем применения правил перезаписи термина.

simplify (f, target) ограничивает упрощение, чтобы назвать правила перезаписи применимыми к одной или нескольким целевым функциям.

Примечание

cos, sin, exp, ln и цели sqrt были удалены. Используйте вызовы функции simplify без этих целей. Также используйте radsimp вместо simplify с целью sqrt.

Функция simplify выполняет последовательные упрощения. Это применяет определенный набор переписывающих термин правил к исходному выражению, переписывает выражение согласно этим правилам, берет результат и применяет следующий набор переписывающих термин правил. Функция simplify принимает, что вывод каждого правила “более прост”, чем вход без дальнейших проверок. Обычно этот метод быстрее, но менее надежен и управляем, чем алгоритм, используемый Simplify.

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

Вызов simplify(L, target ) применяет упрощения в операндах объекта L.

Если вы задаете цель logic, функция simplify упрощает Булевы выражения. С целью logic simplify не использует свойства и предположения, заданные для условий Булевых выражений.

Если вы задаете цель condition, функция simplify упрощает Булевы выражения. С целью condition simplify использует свойства и предположения, заданные для условий Булевых выражений.

Взаимодействия среды

simplify реагирует на свойства идентификаторов.

Примеры

Пример 1

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

simplify(exp(x)-exp(x/2)^2)

f := ln(x) + ln(3) - ln(3*x) + (exp(x) - 1)/(exp(x/2) + 1):
simplify(f)

Пример 2

Чтобы упростить Булевы выражения, используйте цель logic:

simplify((a and b) or (a and (not b)), logic)

Пример 3

Также, чтобы упростить Булевы выражения, используйте цель condition. С целью condition simplify использует свойства и предположения, заданные для условий Булевых выражений. С целью logic simplify игнорирует те свойства и предположения:

simplify(x > x, condition), simplify(x > x, logic)

Пример 4

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

simplify(ln(x^2 + 2*x + 1) - ln(x + 1))

simplify(ln(x^2 + 2*x + 1) - ln(x + 1), IgnoreAnalyticConstraints)

Если вы будете использовать эту опцию, simplifier не гарантирует равенства начального выражения и результата для всех символьных параметров.

Пример 5

Чтобы изменить количество шагов упрощения, используйте опцию Steps:

f := ((exp(-x*I)*I)/2 - (exp(x*I)*I)/2)/(exp(-x*I)/2 + exp(x*I)/2):
simplify(f);
simplify(f, Steps = 10);
simplify(f, Steps = 50)

Пример 6

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

f := funcenv( x -> if iszero(x) then 0 else procname(x) end):
f::simplify := proc(F)
                 local argument;
                 begin
                   argument := op(F,1);
                   if type(argument) = "_plus" then
                     map(argument, f)
                   else
                     F
                   end
                 end:
f(x + 3*y) - f(3*y) = simplify(f(x + 3*y) - f(3*y))

Можно совершенствовать атрибут упрощения f далее. Например, можно указать, что это должно превратить f(3*y) в 3*f(y). Противоположное правило (переписывающий f (x) + f (y) как f (x + y)) не контекстно-свободно. Поэтому вы не можете реализовать противоположное правило в атрибуте упрощения.

Параметры

f

Арифметическое выражение

L

Контейнерный объект: массив, hfarray, список, матрица, полином, набор или таблица.

target

Один из идентификаторов unit, logic или condition

Опции

IgnoreAnalyticConstraints

При использовании этой опции simplifier применяет следующие правила к выражениям:

  • ln (a) + ln (b) = ln (ab) для всех значений a и b. В частности:

    для всех значений a, b и c

  • ln (a b) = bln (a) для всех значений a и b. В частности:

    для всех значений a, b и c

  • Если f и g являются стандартными математическими функциями и f (g (x)) = x для всех маленьких положительных чисел, f (g (x)) =, x принят, чтобы быть допустимым для всего комплексного x. В частности:

    • arcsin (sin (x)) = x, arccos (cos (x)) = x, arctan (tan (x)) = x

    • arcsinh (sinh (x)) = x, arccosh (cosh (x)) = x, arctanh (tanh (x)) = x

    • для всех значений k

Используя IgnoreAnalyticConstraints опция может дать вам простые результаты для выражений, для которых прямое использование simplifier возвращает сложные результаты. При использовании этой опции simplifier не гарантирует равенства начального выражения и результата для всех символьных параметров. Смотрите Пример 4.

Seconds

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

Steps

Отключите алгебраическое упрощение после конкретного количества шагов упрощения. Значение должно быть положительным целым числом. количеством по умолчанию шагов упрощения является 1.

Возвращаемые значения

Объект того же типа как входной объект f или L, соответственно.

Перегруженный

f, L