combine

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

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

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

Синтаксис

combine(f, <IgnoreAnalyticConstraints>)
combine(f, target, <IgnoreAnalyticConstraints>)
combine(f, [target1, target2, …], <IgnoreAnalyticConstraints>)

Описание

combine(f) продукты перезаписей степеней в выражении f как одна степень.

combine(f, target) объединения несколько вызовов целевой функции (функций) в выражении f к одному вызову.

combine(f) применяет эти правила перезаписи к продуктам степеней, происходящих как подвыражения в арифметическом expression f:

  • ,

  • ,

  • .

Последние два правила только допустимы в условиях определенных дополнительных ограничений, такой как тогда, когда b является целым числом. За исключением третьего правила, этого поведения combine обратная функциональность expand. Смотрите пример 1.

Примечание

В определенных случаях MuPAD® внутренний simplifier автоматически применяет эти правила в обратном направлении и combine иногда не оказывает влияния. Смотрите Пример 2.

combine(f, target) применяет правила перезаписи, применимые к целевой функции (функциям) к арифметическому выражению f. Некоторые правила только допустимы в условиях определенных дополнительных ограничений. Для большинства правил, combine реализует обратную функциональность expand. Этот список показывает правила перезаписи для целей.

  • target = arctan:

    для-1 <x <1   и-1 <y <1  .

  • target = exp (см. Пример 4):

    • ,

    • ,

      где допустимый, реагируя на свойства.

  • target = int (см. Пример 5):

    • af(x)dx=af(x)dx.

    • f(x)dx+g(x)dx=f(x)+g(x)dx.

    • abf(x)dx+abg(x)dx=abf(x)+g(x)dx.

    • abf(x)dx+abg(y)dy=abf(y)+g(y)dy.

    • abyf(x)dx+abxg(y)dy=abyf(c)+xf(c)dc.

  • target = gamma (см. Пример 6):

    • ,

    • ,

    • ,

    • ,

    • ,

      для положительных целых чисел n.

  • target = ln (см. Пример 7):

    • ,

    • ,

      если b меньше N. По умолчанию, N = 1000. Можно изменить номер N использование Pref::autoExpansionLimit команда. Смотрите Пример 8.

    Правила не содержат для произвольных комплексных чисел aB. Задайте соответствующие свойства для a или b включить эти правила перезаписи. Эти правила только применяются к натуральным логарифмам.

  • target = sincos (см. Пример 3):

    • ,

      где подобные правила применяются к sin (x)  cos (y) и cos (x)  cos (y):

    • .

  • target = sinhcosh:

    • ,

      где подобные правила применяются к sinh (x)  cosh (y) и cosh (x)  cosh (y).

    • Эти правила применяются рекурсивно к степеням sinh и cosh с положительными интегральными экспонентами.

combine работает рекурсивно над подвыражениями f.

Если второй аргумент является списком целей, то combine применяется к f впоследствии для каждой из целей в списке. Смотрите Пример 10.

Если f массив, список, или набор, combine применяется ко всем записям f. Смотрите пример 11. Если f полином или последовательное расширение, типа Series::Puiseux или Series::gseriesОбъединение применяется к каждому коэффициенту. Смотрите Пример 12.

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

combine реагирует на свойства идентификаторов, появляющихся во входе.

Примеры

Пример 1

Объедините степени той же основы с помощью combine.

combine(sin(x) + x*y*x^(exp(1)))

combine также степени объединений с той же экспонентой в определенных случаях:

combine(sqrt(2)*sqrt(3))

Пример 2

В большинстве случаев, однако, combine не комбинирует степени с той же экспонентой:

combine(y^5*x^5)

Пример 3

Перепишите продукты синусов и косинусов как сумма синусов и косинусов путем установки второго аргумента на sincos:

combine(sin(a)*cos(b) + sin(b)^2, sincos)

Перепишите суммы синусов и косинусов путем установки второго аргумента на sincos:

combine(cos(a) + sin(a), sincos)

Полномочия синусов или косинусов с отрицательными целочисленными экспонентами не переписаны:

combine(sin(b)^(-2), sincos)

Пример 4

Объедините условия с показательной функцией путем определения второго аргумента как exp.

combine(exp(3)*exp(2), exp)

combine(exp(a)^2, exp)

Пример 5

Перепишите интегралы путем установки второго аргумента на int.

combine(int(f(x),x)+int(g(x),x),int)

combine комбинирует постоянный термин с интегралом.

combine(a*int(f(x),x),int)

combine интегралы объединений с теми же пределами.

combine(int(f(x),x=a..b)+int(g(y),y=a..b),int)

Пример 6

Объедините вызовы gamma путем определения цели как gamma. combine функция упрощает частных гамм к рациональным выражениям.

combine(gamma(n+3)*gamma(n+4/3) / gamma(n+1) / gamma(n+10/3), gamma)

Пример 7

Этот пример показывает приложение правил для логарифма и их зависимость от свойств идентификаторов, появляющихся во входе. В комплексной плоскости логарифм продукта не всегда равняется сумме логарифмов ее факторов. Для действительных положительных чисел, однако, может применяться это правило.

Попытайтесь объединить условия с вызовами ln путем определения цели как ln.

combine(ln(a) + ln(b), ln)

combine не комбинирует условия. Установите соответствующие предположения комбинировать условия.

assume(a > 0): assume(b > 0):
combine(ln(a) + ln(b), ln)

unassume(a): unassume(b):

Пример 8

Если a и b являются целыми или рациональными числами, и b меньше 1000Объединение возвращает логарифмы.

combine(3*ln(2), ln)

Если b больше или равен 1000Объединение возвращает результаты как:

combine(1234*ln(5), ln)

Можно изменить предел на номере b при помощи Pref::autoExpansionLimit функция. Например, когда вы используете значение по умолчанию N = 1000Объединение возвращает следующий результат для этого логарифма:

combine(12*ln(12), ln)

Если вы устанавливаете значение Pref::autoExpansionLimit к 10Объединение возвращает этот логарифм в его исходной форме:

Pref::autoExpansionLimit(10):
combine(12*ln(12), ln)

Для дальнейших расчетов восстановите значение по умолчанию Pref::autoExpansionLimit:

Pref::autoExpansionLimit(NIL):

Пример 9

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

Объедините логарифмы с помощью IgnoreAnalyticConstraints опция.

combine(ln(a^5) - ln(a^4), ln, IgnoreAnalyticConstraints)

Не используя эту опцию, вы получаете математически правильный, но длинный результат:

combine(ln(a^5) - ln(a^4), ln)

Пример 10

Второй аргумент также может быть списком целей. Затем правила перезаписи для каждой из целей в списке применяются.

Перепишите ln и sincos условия в выражении.

combine(ln(2) + ln(3) + sin(a)*cos(a), [ln, sincos])

Пример 11

combine карты к наборам:

combine({sqrt(2)*sqrt(5), sqrt(2)*sqrt(11)})

Пример 12

combine карты к коэффициентам полиномов:

combine(poly(sin(x)*cos(x)*y, [y]), sincos)

Однако это не касается indeterminates полинома:

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

Параметры

f

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

target

Один из идентификаторов: arctanexp, int\Gamma, ln, sincos, или sinhcosh

Опции

IgnoreAnalyticConstraints

Примените чисто алгебраические упрощения в выражении. Для получения дополнительной информации см. опции для Simplify команда.

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

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

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

f

Алгоритмы

Опытные пользователи могут расширить функциональность combine путем реализации дополнительной перезаписи управляет для других целевых функций. Чтобы расширить функциональность, задайте новый паз target из combine. Чтобы задать новый паз, необходимо сначала оставить идентификатор без защиты combine использование оставляет без защиты. Впоследствии, команда combine(f, target) приводит к вызову combine::target(f) из соответствующей стандартной программы паза.

По умолчанию, combine обрабатывает подвыражение g(x1,x2,...) 'off' путем вызова себя рекурсивно для операндов x1x2 , и т.д. Пользователи могут изменить это поведение для своей собственной математической функции, данной функцией environment g путем реализации combine паз g. Обрабатывать подвыражение g(x1,x2,...)Объединение затем вызывает стандартную программу паза g::combine с последовательностью аргумента x1,x2,... из g.

Представленный в R2007b