このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
rewrite
別の関数による式の書き換え
説明
例
三角関数と指数関数間の書き換え
ターゲット '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)
を や で置き換えることがないのは、すべての x
に対してこれらの式が有効ではないためです。ただし、これらの式の 2 乗の使用による sin(x)^2
の置き換えは、すべての x
に対して有効です。したがって、rewrite
は sin(x)^2
を置き換えます。
syms x rewrite(sin(x),'cos') rewrite(sin(x)^2,'cos')
ans = sin(x) ans = 1 - cos(x)^2
入力引数
expr
— 書き換え対象の入力
シンボリック数 | シンボリック変数 | シンボリック式 | シンボリック関数 | シンボリック ベクトル | シンボリック行列 | シンボリック多次元配列
書き換え対象の入力。シンボリック数、変数、式、関数、ベクトル、行列または多次元配列として指定します。
target
— ターゲット関数
文字ベクトル
ターゲット関数。文字ベクトルとして指定します。この表は、可能なターゲットすべての書き換え規則をまとめています。
ターゲット | 書き換え対象の関数 | 基準とする関数 |
---|---|---|
'exp' | すべての三角関数と双曲線関数 (逆関数を含む) | exp , log |
'log' | すべての逆三角関数と逆双曲線関数 | log |
'sincos' | tan , cot , exp , sinh , cosh , tanh , coth | sin , cos |
'sin' 、'cos' 、'tan' 、または 'cot' | sin 、cos 、exp 、tan 、cot 、sinh 、cosh 、tanh 、coth (ターゲットを除く) | ターゲットの三角関数 |
'sinhcosh' | tan , cot , exp , sin , cos , tanh , coth | sinh , cosh |
'sinh' , 'cosh' , 'tanh' , 'coth' | tan 、cot 、exp 、sin 、cos 、sinh 、cosh 、tanh 、coth (ターゲットを除く) | ターゲットの双曲線関数 |
'asin' , 'acos' , 'atan' , 'acot' | log およびすべての逆三角関数と逆双曲線関数 | ターゲットの逆三角関数 |
'asinh' , 'acosh' , 'atanh' , 'acoth' | log およびすべての逆三角関数と逆双曲線関数 | ターゲットの逆双曲線関数 |
'sqrt' | abs(x + 1i*y) | sqrt(x^2 + y^2) |
'heaviside' | sign , triangularPulse , rectangularPulse | heaviside |
'piecewise' | abs , heaviside , sign , triangularPulse , rectangularPulse | piecewise |
ヒント
rewrite
は、expr
でのシンボリック関数呼び出しを、ターゲット関数で置き換えます (ただし、このような置き換えが数学的に有効な場合のみ)。それ以外の場合、元の関数呼び出しを保持します。
バージョン履歴
R2012a で導入
参考
関数
collect
|combine
|expand
|factor
|horner
|numden
|simplify
|simplifyFraction
|unitConvert
ライブ エディター タスク
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)