Main Content

expand

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

説明

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)

入力引数

すべて折りたたむ

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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

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

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

単純化に手頃な恒等式を使用します。'IgnoreAnalyticConstraints' と、true または false のいずれかで構成されるコンマ区切りのペアとして指定します。

'IgnoreAnalyticConstraints'true に設定することで解を単純化できますが、一般的に有効でない結果となる場合があります。つまり、このオプションは数学的恒等を適用します。便利ですが、変数のすべての値に対して結果が成り立つとは限りません。このオプションにより、expand はより単純な結果を返すことができますが、最初の式と等価ではない結果となる場合があります。アルゴリズムを参照してください。

アルゴリズム

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

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

    (a·b)c = ac·bc.

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

    (ab)c = ab·c.

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

    • log(ex) = x

    • asin(sin(x)) = x, acos(cos(x)) = x, atan(tan(x)) = x

    • asinh(sinh(x)) = x, acosh(cosh(x)) = x, atanh(tanh(x)) = x

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

バージョン履歴

R2006a より前に導入