ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

rewrite

別の関数による式の書き換え

説明

rewrite(expr,target) は、ターゲット関数 target でシンボリック式 expr を書き換えます。書き換えられた式は、元の式と数学的に等価です。expr がベクトルまたは行列の場合、rewriteexpr の要素ごとに働きます。

すべて折りたたむ

ターゲット 'exp' を指定して、三角関数を指数関数で書き換えます。

syms x
sin2exp = rewrite(sin(x), 'exp')
tan2exp = rewrite(tan(x), 'exp')
sin2exp =
(exp(-x*1i)*1i)/2 - (exp(x*1i)*1i)/2

tan2exp =
-(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1)

三角関数をターゲットに指定して、指数関数を任意の三角関数で書き換えます。ターゲットの完全なリストについては、target を参照してください。

syms x
exp2sin = rewrite(exp(x), 'sin')
exp2tan = rewrite(-(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1), 'tan')
exp2sin =
1 - 2*sin((x*1i)/2)^2 - sin(x*1i)*1i
exp2tan =
-(((tan(x) - 1i)*1i)/(tan(x) + 1i) + 1i)/...
    ((tan(x) - 1i)/(tan(x) + 1i) - 1)

simplify を使用して exp2tan を所定の形式に単純化します。

exp2tan = simplify(exp2tan)
exp2tan =
tan(x)

ターゲットを指定して、三角関数を別の三角関数で書き換えます。ターゲットの完全なリストについては、target を参照してください。

ターゲット 'sin' を指定して、tan(x) を正弦関数で書き換えます。

syms x
tan2sin = rewrite(tan(x), 'sin')
tan2sin =
-sin(x)/(2*sin(x/2)^2 - 1)

三角関数をターゲットに指定して、双曲線関数を任意の三角関数で書き換えます。ターゲットの完全なリストについては、target を参照してください。

ターゲット 'sin' を指定して、tanh(x) を正弦関数で書き換えます。

syms x
tanh2sin = rewrite(tanh(x), 'sin')
tanh2sin =
(sin(x*1i)*1i)/(2*sin((x*1i)/2)^2 - 1)

同様に、双曲線関数をターゲットに指定して、三角関数を双曲線関数で書き換えます。

ターゲット 'log' を指定して、逆三角関数を対数関数で書き換えます。ターゲットの完全なリストについては、target を参照してください。

acos(x)acot(x) を関数 log で書き換えます。

syms x
acos2log = rewrite(acos(x), 'log')
acot2log = rewrite(acot(x), 'log')
acos2log =
-log(x + (1 - x^2)^(1/2)*1i)*1i

acot2log =
(log(1 - 1i/x)*1i)/2 - (log(1i/x + 1)*1i)/2

同様に、逆三角関数をターゲットに指定して、対数関数を逆三角関数で書き換えます。

行列で rewrite を呼び出して、行列の各要素を、書き換えます。

行列のすべての要素を関数 exp で書き換えます。

syms x
matrix = [sin(x) cos(x); sinh(x) cosh(x)];
rewrite(matrix, 'exp')
ans =
[ (exp(-x*1i)*1i)/2 - (exp(x*1i)*1i)/2, exp(-x*1i)/2 + exp(x*1i)/2]
[                 exp(x)/2 - exp(-x)/2,       exp(-x)/2 + exp(x)/2]

余弦関数を正弦関数に書き換えます。この場合、rewrite は任意の x に対して有効な等式 cos(2*x) = 1 – 2*sin(x)^2 を使用して、余弦関数を置き換えます。

syms x
rewrite(cos(x),'sin')
ans =
1 - 2*sin(x/2)^2

rewrite が、sin(x)1cos2(x)1cos2(x) で置き換えることがないのは、すべての x に対してこれらの式が有効ではないためです。ただし、これらの式の 2 乗の使用による sin(x)^2 の置き換えは、すべての x に対して有効です。したがって、rewritesin(x)^2 を置き換えます。

syms x
rewrite(sin(x),'cos')
rewrite(sin(x)^2,'cos')
ans =
sin(x)
ans =
1 - cos(x)^2

入力引数

すべて折りたたむ

書き換え対象の入力。シンボリックな数値、変数、式、関数、ベクトル、行列または多次元配列として指定します。

ターゲット関数。文字ベクトルとして指定します。この表は、可能なターゲットすべての書き換え規則をまとめています。

ターゲット書き換え対象の関数基準とする関数
'exp'すべての三角関数と双曲線関数 (逆関数を含む)explog
'log'すべての逆三角関数と逆双曲線関数log
'sincos'tancotexpsinhcoshtanhcothsincos
'sin''cos''tan'、または 'cot'sincosexptancotsinhcoshtanhcoth (ターゲットを除く)ターゲットの三角関数
'sinhcosh'tancotexpsincostanhcothsinhcosh
'sinh''cosh''tanh''coth'tancotexpsincossinhcoshtanhcoth (ターゲットを除く)ターゲットの双曲線関数
'asin''acos''atan''acot'log およびすべての逆三角関数と逆双曲線関数ターゲットの逆三角関数
'asinh''acosh''atanh''acoth'log およびすべての逆三角関数と逆双曲線関数ターゲットの逆双曲線関数
'sqrt'abs(x + 1i*y)sqrt(x^2 + y^2)
'heaviside'signtriangularPulserectangularPulseheaviside
'piecewise' abs heaviside sign triangularPulse rectangularPulse piecewise

ヒント

  • rewrite は、expr でのシンボリック関数呼び出しを、ターゲット関数で置き換えます (ただし、このような置き換えが数学的に有効な場合のみ)。それ以外の場合、元の関数呼び出しを保持します。

R2012a で導入