combine

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

Описание

пример

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

пример

Y = combine(S,T) множественные вызовы объединений целевой функции T в выражении S. Используйте combine реализовывать обратную функциональность expand относительно большинства прикладных правил.

пример

Y = combine(___,'IgnoreAnalyticConstraints',true) упрощает выход путем применения общих математических тождеств, таких как log(a) + log(b) = log(a*b). Эти тождества не могут быть допустимыми для всех значений переменных, но применение их может возвратить более простые результаты.

Примеры

Полномочия той же основы

Объедините степени той же основы.

syms x y z
combine(x^y*x^z)
ans =
x^(y + z)

Объедините степени числовых аргументов. Чтобы препятствовать тому, чтобы MATLAB® выполнил выражение, используйте sym преобразовывать по крайней мере один числовой аргумент в символьное значение.

syms x y
combine(x^(3)*x^y*x^exp(sym(1)))
ans =
x^(y + exp(1) + 3)

Здесь, sym преобразует 1 в символьное значение, препятствуя тому, чтобы MATLAB выполнил выражение e1.

Полномочия той же экспоненты

Объедините степени с теми же экспонентами в определенных случаях.

combine(sqrt(sym(2))*sqrt(3))
ans =
6^(1/2)

combine обычно не комбинирует степени, потому что внутренний simplifier применяет те же правила в противоположном направлении, чтобы расширить результат.

syms x y 
combine(y^5*x^5)
ans =
x^5*y^5

Условия с логарифмами

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

S = log(sym(2)) + log(sym(3));
combine(S,'log')
ans =
log(6)

Попытайтесь комбинировать log(a) + log(b). Поскольку a и b приняты, чтобы быть комплексными числами по умолчанию, правило не содержит и combine не комбинирует условия.

syms a b
S = log(a) + log(b);
combine(S,'log')
ans =
log(a) + log(b)

Примените правило путем установки предположений, таким образом что a и b удовлетворите условиям для правила.

assume(a > 0)
assume(b > 0)
S = log(a) + log(b);
combine(S,'log')
ans =
log(a*b)

Для будущих расчетов очистите набор предположений на переменных a и b путем воссоздания их использующий syms.

syms a b

В качестве альтернативы примените правило путем игнорирования аналитических ограничений с помощью 'IgnoreAnalyticConstraints'.

syms a b
S = log(a) + log(b);
combine(S,'log','IgnoreAnalyticConstraints',true)
ans =
 log(a*b)

Условия с вызовами синусоидальной и косинусной функции

Перепишите продукты синусоидальных и косинусных функций как сумма функций путем установки целевого аргумента на sincos.

syms a b
combine(sin(a)*cos(b) + sin(b)^2,'sincos')
ans =
sin(a + b)/2 - cos(2*b)/2 + sin(a - b)/2 + 1/2

Перепишите суммы синусоидальных и косинусных функций путем установки целевого аргумента на sincos.

combine(cos(a) + sin(a),'sincos')
ans =
2^(1/2)*cos(a - pi/4)

Перепишите функцию косинуса в квадрате путем установки целевого аргумента на sincos.

combine(cos(a)^2,'sincos')
ans =
cos(2*a)/2 + 1/2

combine не переписывает степени синусоидальных или косинусных функций с отрицательными целочисленными экспонентами.

syms a b
combine(sin(b)^(-2)*cos(b)^(-2),'sincos')
ans =
1/(cos(b)^2*sin(b)^2)

Экспоненциальные условия

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

combine(exp(sym(3))*exp(sym(2)),'exp')
ans =
exp(5)
syms a
combine(exp(a)^3, 'exp')
ans =
exp(3*a)

Условия с интегралами

Объедините условия с интегралами путем определения целевого аргумента как int.

syms a f(x) g(x)
combine(int(f(x),x)+int(g(x),x),'int')
combine(a*int(f(x),x),'int')
ans =
int(f(x) + g(x), x)
ans =
int(a*f(x), x)

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

syms a b h(z)
combine(int(f(x),x,a,b)+int(h(z),z,a,b),'int')
ans =
int(f(x) + h(x), x, a, b)

Условия с вызовами функции Обратного тангенса

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

syms a b
assume(-1 < a < 1)
assume(-1 < b < 1)
combine(atan(a) + atan(b),'atan')
ans =
-atan((a + b)/(a*b - 1))

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

assume(a > 0)
combine(atan(a) + atan(1/a),'atan')
ans =
pi/2

Для дальнейших расчетов очистите предположения:

syms a b

Условия с вызовами гамма функции

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

syms x
combine(gamma(x)*gamma(1-x),'gamma')
ans =
 -pi/sin(pi*(x - 1))

combine упрощает частных гамма функций к рациональным выражениям.

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

Выполните несколько выражений в одном вызове функции при помощи символьной матрицы как входной параметр.

S = [sqrt(sym(2))*sqrt(5), sqrt(2)*sqrt(sym(11))];
combine(S)
ans =
[ 10^(1/2), 22^(1/2)]

Входные параметры

свернуть все

Входное выражение в виде символьного выражения, функции, или как вектор или матрица символьных выражений или функций.

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

Если S символьная матрица, combine применяется ко всем элементам матрицы.

Целевая функция в виде 'atan'exp\Gamma, 'int'журнал, 'sincos', или 'sinhcosh'. Правила перезаписи применяются только к вызовам целевой функции.

Выходные аргументы

свернуть все

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

Алгоритмы

combine применяет следующие правила перезаписи к входному выражению S, В зависимости от значения целевого аргумента T.

  • Когда T = 'exp'Объединение применяет эти правила перезаписи, где допустимый,

    eaeb=ea+b

    (ea)b=eab.

  • Когда T = 'log',

    log(a)+log(b)=log(ab).

    Если b <1000,

    blog(a)=log(ab).

    Когда b >= 1000Объединение не применяет это второе правило.

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

  • Когда T = 'int',

    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)+xg(c)dc.

  • Когда T = 'sincos',

    sin(x)sin(y)=cos(xy)2cos(x+y)2.

    combine применяет подобные правила для sin(x)cos(y) и cos(x)cos(y).

    Acos(x)+Bsin(x)=A1+B2A2cos(x+tan1(BA)).

  • Когда T = 'atan' и-1 <x <1,-1 <y <1,

    atan(x)+atan(y)=atan(x+y1xy).

  • Когда T = 'sinhcosh',

    sinh(x)sinh(y)=cosh(x+y)2cosh(xy)2.

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

    combine применяет предыдущие правила рекурсивно к степеням sinh и cosh с положительными интегральными экспонентами.

  • Когда T = 'gamma',

    aΓ(a)=Γ(a+1).

    и,

    Γ(a+1)Γ(a)=a.

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

    Γ(a)Γ(a)=πsin(πa).

Введенный в R2014a