主要内容

expand

利用恒等式展开表达式并简化函数的输入

说明

expand(S) 将展开 S 中的所有括号,并通过应用标准恒等式简化 cos(x + y) 等函数的输入。

示例

expand(S,Name,Value) 使用一个或多个名称-值对组参量指定的附加选项。例如,将 'IgnoreAnalyticConstraints' 指定为 true 可使用方便的恒等式来简化输入。

示例

示例

全部折叠

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

展开三角函数表达式 cos(x + y)。通过应用标准恒等式,将 cos 函数的输入 x + y 简化为关于 xy 的表达式。

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*x 简化为关于 x 的表达式。

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

通过将 ArithmeticOnly 设置为 true,可不展开函数(例如 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' 以及 truefalse。如果值为 true,则函数展开表达式的算术部分,而不展开三角函数、双曲函数、对数函数和特殊函数。此选项不会阻止展开幂运算和根式。

使用方便的恒等式进行简化,指定为以逗号分隔的对组,其中包含 'IgnoreAnalyticConstraints' 以及 truefalse

'IgnoreAnalyticConstraints' 设置为 true 可以得到更简单的解,但这可能会导致结果并非在所有情况下都成立。换句话说,此选项应用方便的数学恒等式,但结果可能并不适用于变量的所有值。在某些情况下,此选项可以让 expand 返回更简单的结果,这些结果可能与初始表达式不等效。请参阅算法

算法

使用 'IgnoreAnalyticConstraints' 时,expand 会应用以下一些规则。

  • 对于 ab 的所有值,有 log(a) + log(b) = log(a·b) 。特别地,对于 abc 的所有值,以下等式成立:

    (a·b)c = ac·bc.

  • 对于 ab 的所有值,有 log(ab) = b·log(a) 。特别地,对于 abc 的所有值,以下等式成立:

    (ab)c = ab·c.

  • 如果 fg 是标准数学函数,并且对于所有小正数都有 f(g(x)) = x,则假设 f(g(x)) = 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 之前推出