rewrite
別の関数による式の書き換え
説明
例
ターゲット "exp" を指定して、三角関数を指数関数で書き換えます。
syms x sin2exp = rewrite(sin(x),"exp")
sin2exp =
tan2exp = rewrite(tan(x),"exp")tan2exp =
三角関数をターゲットに指定して、指数関数を任意の三角関数で書き換えます。ターゲット オプションの完全なリストについては、targetを参照してください。
syms x exp2sin = rewrite(exp(x),"sin")
exp2sin =
exp2tan = rewrite(-(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1),"tan")exp2tan =
simplify を使用して exp2tan を所定の形式に単純化します。
exp2tan = simplify(exp2tan)
exp2tan =
ターゲットを指定して、三角関数を別の三角関数で書き換えます。ターゲット オプションの完全なリストについては、targetを参照してください。
ターゲット "sin" を指定して、tan(x) を正弦関数で書き換えます。
syms x tan2sin = rewrite(tan(x),"sin")
tan2sin =
ターゲット "log" を指定して、逆三角関数を対数関数で書き換えます。ターゲット オプションの完全なリストについては、targetを参照してください。
acos(x) と acot(x) を関数 log で書き換えます。
syms x acos2log = rewrite(acos(x),"log")
acos2log =
acot2log = rewrite(acot(x),"log")acot2log =
同様に、逆三角関数をターゲットに指定して、対数関数を任意の逆三角関数で書き換えます。
行列で rewrite を呼び出して、行列の各要素を、書き換えます。
行列のすべての要素を関数 exp で書き換えます。
syms x matrix = [sin(x) cos(x); sinh(x) cosh(x)]; R = rewrite(matrix,"exp")
R =
余弦関数を正弦関数に書き換えます。ここで、関数 rewrite は、任意の に対して有効である恒等式 を使用して、余弦関数を書き換えます。
syms x R = rewrite(cos(x),"sin")
R =
rewrite が、sin(x) を または として書き換えることはありません。これは、それらの式がすべての x に対して有効とはならないためです。しかし、これらの式の 2 乗を使用して sin(x)^2 を表現するなら、すべての x に対して有効になります。したがって、rewrite は sin(x)^2 を書き換えることができます。
syms x R1 = rewrite(sin(x),"cos")
R1 =
R2 = rewrite(sin(x)^2,"cos")R2 =
R2023a 以降
rootを使用して多項式の根を求めます。結果は、多項式の k 乗根を関数 root で (k = 1、2、3、4、または 5 として) 表した列ベクトルになります。
syms x
sols = root(x^5 - x^4 - 1,x)sols =
rewrite を "expandroot" オプションとともに使用して、sols の関数 root を展開します。結果は、厳密なシンボリック数で演算を行う ^、*、/、+、および – などの算術演算で表されます。展開された結果には算術演算を行う多くの項が含まれる可能性があるため、この結果の数値近似は (丸め誤差の蓄積により) 不正確になる可能性があります。
R = rewrite(sols,"expandroot")R =
別の方法として、vpa を使用して可変精度のシンボリック数を返すことにより、sols を数値的に直接近似することができます。結果の数値は、既定で 32 桁の有効桁数をもち、より正確です。
solsVpa = vpa(sols)
solsVpa =
Symbolic Math Toolbox™ なしで sols を使用するには、コードを生成し、matlabFunction を使用して sols を MATLAB® 関数に変換します。生成されたファイルは、数値 double データ型で演算を行う関数rootsを使用します。
matlabFunction(sols,"File","myfile"); type myfile
function sols = myfile %MYFILE % SOLS = MYFILE % This function was generated by the Symbolic Math Toolbox version 25.2. % 11-Aug-2025 08:28:19 t0 = roots([1.0,-1.0,0.0,0.0,0.0,-1.0]); t2 = t0(1); t0 = roots([1.0,-1.0,0.0,0.0,0.0,-1.0]); t3 = t0(2); t0 = roots([1.0,-1.0,0.0,0.0,0.0,-1.0]); t4 = t0(3); t0 = roots([1.0,-1.0,0.0,0.0,0.0,-1.0]); t5 = t0(4); t0 = roots([1.0,-1.0,0.0,0.0,0.0,-1.0]); t6 = t0(5); sols = [t2;t3;t4;t5;t6]; end
R2023a 以降
多項式の分数の不定積分を求めます。結果は、 および の記号で表現されるものとして、関数 symsum および関数 root で表されます。
syms x
F = int(1/(x^3 + x - 1),x)F =
結果を算術演算で書き換えます。シンボリックな総和は最も外側の演算であるため、最初に "expandsum" オプションを指定して関数 rewrite を適用し、symsum を展開します。次に、"expandroot" オプションを使用して再度 rewrite を適用し、関数 root を書き換えます。結果のシンボリック式は、^、*、/、+、および – などの算術演算で表されます。
R = rewrite(rewrite(F,"expandsum"),"expandroot")
R =
入力引数
書き換えまたは置き換え対象の入力。シンボリック数、シンボリック変数、シンボリック式、シンボリック関数、シンボリック ベクトル、シンボリック行列、またはシンボリック多次元配列として指定します。
ターゲット関数または展開する関数。string スカラーまたは文字ベクトルとして指定します。次の表は、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 |
"expandroot" | root | ^、*、/、+、および – などの算術演算 |
"expandsum" | symsum | + や – などの算術演算 |
ヒント
rewriteは、置換が数学的に有効な場合にのみ、expr内のシンボリック関数呼び出しをtargetで指定された別の関数に置き換えます。それ以外の場合、元の関数呼び出しを保持します。例については、正弦関数と余弦関数の間の書き換えを参照してください。
バージョン履歴
R2012a で導入関数 root と関数 symsum を使用するシンボリック式は、算術演算を使用して書き換えまたは展開することができます。例については、関数 root の書き換えおよび関数 symsum と関数 root の書き換えを参照してください。
参考
関数
collect|combine|expand|factor|horner|numden|simplify|simplifyFraction|unitConvert
ライブ エディター タスク
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)