ドキュメンテーション

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

expand

式を展開、恒等式を使用して関数の入力を単純化

構文

expand(S)
expand(S,Name,Value)

説明

expand(S) は、S 内のすべてのかっこを掛け合わせ、標準の恒等式を適用して cos(x + y) のような関数への入力を単純化します。

expand(S,Name,Value) は、1 つ以上の名前と値の引数ペアで指定された追加のオプションを使用します。たとえば、'IgnoreAnalyticConstraints'true に指定すると、手頃な恒等式を使用して入力が単純化されます。

すべて折りたたむ

syms x
p = (x - 2)*(x - 4);
expand(p)
ans =
x^2 - 6*x + 8

三角関数 cos(x + y) の式を展開します。関数 cos の入力 x + y を、標準の恒等式を適用して x または y に単純化します。

syms x y
expand(cos(x + y))
ans =
cos(x)*cos(y) - sin(x)*sin(y)

e(a+b)2 を展開します。関数 exp の入力 (a + b)^2 を、標準の恒等式を適用して単純化します。

syms a b
f = exp((a + b)^2);
expand(f)
ans =
exp(a^2)*exp(b^2)*exp(2*a*b)

ベクトル内の式を展開します。式内の関数への入力は恒等式を適用して単純化されます。

syms t
V = [sin(2*t), cos(2*t)];
expand(V)
ans =
[ 2*cos(t)*sin(t), 2*cos(t)^2 - 1]

既定では、expand はべき乗の項を展開し、関数の入力を単純化する恒等式を適用することによって関数を展開します。'ArithmeticOnly' を使用して、べき乗の項の展開のみを行い、関数の展開を抑制します。

(sin(3*x) - 1)^2 を展開します。既定では、expand はべき乗 ^2 を展開し、sin 入力 3*xx に単純化します。

syms x
f = (sin(3*x) - 1)^2;
expand(f)
ans =
2*sin(x) + sin(x)^2 - 8*cos(x)^2*sin(x) - 8*cos(x)^2*sin(x)^2...
 + 16*cos(x)^4*sin(x)^2 + 1

ArithmeticOnlytrue に設定して、sin(3*x) などの関数の展開を抑制します。

expand(f, 'ArithmeticOnly', true)
ans =
sin(3*x)^2 - 2*sin(3*x) + 1

log 関数呼び出しの入力を単純化します。既定では、expand は対数入力を単純化しません。これは、使用される恒等式が、変数の複素数値に対し有効になっていないためです。

syms a b c
f = log((a*b/c)^2);
expand(f)
ans =
log((a^2*b^2)/c^2)

'IgnoreAnalyticConstraints'true に設定し、恒等式を適用して対数の入力を単純化します。

expand(f,'IgnoreAnalyticConstraints',true)
ans =
 2*log(a) + 2*log(b) - 2*log(c)

入力引数

すべて折りたたむ

入力。数値、ベクトル、行列、または配列、あるいはシンボリックな数値、変数、配列、関数、または式で指定されます。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: expand(S,'ArithmeticOnly',true)

代数式のみを展開します。'ArithmeticOnly'true または false から構成されるコンマ区切りのペアとして指定します。値が true である場合は、この関数は、三角関数、双曲線関数、対数関数および特殊関数を展開せずに、式の算術演算部分を展開します。このオプションでは、べき乗と根は展開されます。

単純化に手頃な恒等式を使用します。'IgnoreAnalyticConstraints' と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。値が true の場合、expand は恒等式を適用します。これらは便利ですが、変数のすべての値について成り立つわけではありません。このオプションにより、expand はより単純な結果を返すことができます。アルゴリズムを参照してください。このオプションを設定すると、最初の式と等価ではない結果が導かれる場合があります。

アルゴリズム

'IgnoreAnalyticConstraints' を使用する際は、expand によって以下のルールが適用されます。

  • 任意の a および b について、log(a) + log(b) = log(a·b) が成り立つ。特に、a、b、c のすべての値に対して、次の等式が有効である。

      (a·b)c = ac·bc.

  • 任意の a および b について、log(ab) = b·log(a) が成り立つ。特に、a、b、c のすべての値に対して、次の等式が有効である。

      (ab)c = ab·c.

  • f および g が標準的な数学関数、かつ任意の微小な正数について f(g(x)) = x である場合、すべての複素数 x に対して f(g(x)) = x が有効であるものとする。

    • log(ex) = x

    • asin(sin(x)) = xacos(cos(x)) = xatan(tan(x)) = x

    • asinh(sinh(x)) = xacosh(cosh(x)) = xatanh(tanh(x)) = x

    • 任意の k の値について Wk(x·ex) = x

R2006a より前に導入