combine
同じ代数的構造の項の結合
説明
例
同じ基底のべき乗
同じ基底のべき乗を結合します。
syms x y z combine(x^y*x^z)
ans = x^(y + z)
数値引数のべき乗を結合します。MATLAB® が式の値を求めるのを避けるために、sym
を使用して、少なくとも 1 つの数値引数をシンボリック値に変換します。
syms x y combine(x^(3)*x^y*x^exp(sym(1)))
ans = x^(y + exp(1) + 3)
ここでは、MATLAB が式 e1
の値を求めないように、sym
は 1
をシンボリック値に変換します。
同じ指数のべき乗
同じ指数をもつべき乗を結合する場合があります。
combine(sqrt(sym(2))*sqrt(3))
ans = 6^(1/2)
combine
は通常、べき乗を結合しません。これは内部の単純化関数が同じルールを逆方向に適用して、計算結果を展開するためです。
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
に指定して、逆正接関数の 2 つの呼び出しを結合します。
syms a b assume(-1 < a < 1) assume(-1 < b < 1) combine(atan(a) + atan(b),'atan')
ans = -atan((a + b)/(a*b - 1))
逆正接関数に 2 つの呼び出しを結合します。可能な場合、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
は、ガンマ関数の商を有理数の式に単純化します。
1 つの呼び出し内の複数入力式
シンボリック行列を入力パラメーターとして使用して、1 つの関数呼び出しで複数の式の値を求めます。
S = [sqrt(sym(2))*sqrt(5), sqrt(2)*sqrt(sym(11))]; combine(S)
ans = [ 10^(1/2), 22^(1/2)]
入力引数
出力引数
アルゴリズム
combine
は、ターゲット引数 T
の値に応じて、以下の書き換え規則を入力式 S
に適用します。
T =
'exp'
の場合、combine
は、有効な場合、これらの書き換え規則を適用します。T =
'log'
の場合、b < 1000 の場合、
b >= 1000
のとき、combine
はこの 2 番目の規則を適用しません。対数書き換えの規則は、任意の複素数値
a
とb
には適用されません。これらの書き換え規則を有効にするためには、a
またはb
の適切なプロパティを指定します。T =
'int'
の場合、T =
'sincos'
の場合、combine
は、sin(x)cos(y)
およびcos(x)cos(y)
に同様の規則を適用します。T =
'atan'
および -1 < x < 1、-1 < y < 1 の場合、T =
'sinhcosh'
の場合、combine
は、sinh(x)cosh(y)
およびcosh(x)cosh(y)
に同様の規則を適用します。combine
は、正の積分指数をもつsinh
とcosh
のべき乗に上記の規則を再帰的に適用します。T =
'gamma'
の場合、かつ
正の整数
n
に対しては
バージョン履歴
R2014a で導入