简化符号表达式

简化数学表达不是一个明确的主题。没有通用的想法,即表达式的表达式最简单。对于一个问题来说最简单的数学表达式的形式表明是复杂甚至不适合其他问题。例如,以下两种数学表达式以不同的形式呈现相同的多项式:

(x + 1)(x - 2)(x + 3)(x - 4)

X4.- 2x.3.- 13x.2+ 14倍+ 24

第一形式清楚地显示了这种多项式的根。这种形式更简单,可以使用根源。当您希望看到多项式的系数时,第二种形式最好。例如,当您分化或集成多项式时,此表格很方便。

如果您要解决的问题需要特定形式的表达式,最好的方法是选择适当的简化功能。看选择重新排列表达式的功能

除具体的简化使用者之外,符号数学工具箱™还提供一般简化,简化

如果您不需要特定形式的表达式(以特定的术语扩展,accounted或表达),请使用简化缩短数学表达式。例如,使用此简化方案查找较短的表单以进行计算的最终结果。

简化适用于各种类型的符号表达式,例如多项式,具有三角,对数和特殊功能的表达式。例如,简化这些多项式。

Syms X.y simplify((1 - x^2)/(1 - x)) simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)*(x^2 - x + 1)*(x^4 - x^2 + 1))
ans = x + 1 ans = x ^ 12  -  1

简化涉及三角函数的表达式。

简化(COS(x)^( -  2) -  tan(x)^ 2)简化(cos(x)^ 2  -  sin(x)^ 2)
ans = 1ns = cos(2 * x)

简化涉及指数和对数的表达式。在第三个表达中,使用日志(sym(3))代替日志(3)。如果你使用日志(3),然后matlab.®计算日志(3)使用双精度,然后将结果转换为符号编号。

简化(exp(x)* exp(y))简化(exp(x) -  exp(x / 2)^ 2)简化(log(x)+ log(sym(3)) -  log(3 * x)+(exp(x) -  1)/(exp(x / 2)+ 1)))
ans = exp(x + y)ans = 0 ans = exp(x / 2) -  1

简化涉及特殊功能的表达式。

简化(伽马(x + 1) -  x * gamma(x))简化(贝塞尔j(2,x)+ besselj(0,x))
ans = 0 ans =(2 * besselj(1,x))/ x

您还可以通过使用简化符号功能简化

syms f(x,y)f(x,y)= exp(x)* exp(y)f =简化(f)
f(x,y)= exp(x)* exp(y)f(x,y)= exp(x + y)

简化使用选项

默认,简化使用严格的简化规则,并确保简化的表达式始终在数学上等同于初始表达式。例如,它不会将Logarithms与复数值组合。

syms x简化(log(x ^ 2)+ log(x))
ans = log(x ^ 2)+ log(x)

您可以应用额外的简化规则,这些规则对于所有参数和所有情况的所有值都不正确,但使用该规则简化可以退回更短的结果。对于这种方法,使用Ignoreanalyticonstraints.。例如,简化相同的表达式Ignoreanalyticonstraints.,您将结果与组合的Logarithms获得结果。

简化(日志(x ^ 2)+ log(x),'ignoreanalyticconstraints',true)
ans = 3 * log(x)

Ignoreanalyticonstraints.提供快捷键,允许您在常用的假设下简化表达式的常用假设。或者,您可以明确地在变量上设置适当的假设。例如,组合Logarithms通常对复杂值无效。如果你假设X是一个真正的价值,简化结合了Logarithms,没有Ignoreanalyticonstraints.

假设(x,'real')简化(log(x ^ 2)+ log(x))
ans = log(x ^ 3)

为了进一步计算,清除假设X通过重新创建它使用Syms.

Syms X.

另一种可以改进表达式或函数的简化的方法是语法简化(f,'步骤',n), 在哪里N是一个正整数,控制有多少步骤简化需要。指定更多简化步骤可以帮助您更好地简化表达式,但需要更多时间。默认,n = 1。例如,创建和简化此表达式。结果短于原始表达式短,但可以进一步简化。

Syms X.y = (cos(x)^2 - sin(x)^2)*sin(2*x)*(exp(2*x) - 2*exp(x) + 1)/... ((cos(2*x)^2 - sin(2*x)^2)*(exp(2*x) - 1)); simplify(y)
ANS =(SIN(4 * x)*(exp(x) -  1))/(2 * cos(4 * x)*(exp(x)+ 1))

指定相同表达式的简化步骤数。首先,使用25步。

简化(y,'步骤',25)
ans =(tan(4 * x)*(exp(x) -  1))/(2 *(exp(x)+ 1))

使用50步以进一步简化表达式。

简化(y,'步骤',50)
ans =(tan(4 * x)* tanh(x / 2))/ 2

假设,您已经简化了表达式或函数,但您希望其他形式的相同表达式。为此,您可以设置'全部'选择真的。语法简化(f,'步骤',n,'全部',true)显示简化步骤中相同表达的其他等效结果。

syms x y = cos(x)+ sin(x)简化(y,'步骤',10,'全部',true)
ans = 2 ^(1/2)* sin(x + pi / 4)2 ^(1/2)* cos(x  -  pi / 4)cos(x)+ sin(x)2 ^(1/2)*((exp( -  x * 1i  - (pi * 1i)/ 4)* 1i)/ 2  - (exp(x * 1i +(pi * 1i)/ 4)* 1i)/ 2)

要返回更等效的结果,请将步骤的数量增加到25。

简化(y,'步骤',25,'全部',true)
ans = 2 ^(1/2)* sin(x + pi / 4)2 ^(1/2)* cos(x  -  pi / 4)cos(x)+ sin(x)-2 ^(1/2)*(2 * sin(x / 2  -  pi / 8)^ 2  -  1)2 ^(1/2)*(exp( -  x * 1i +(pi * 1i)/ 4)/ 2 + exp(x* 1i  - (pi * 1i)/ 4)/ 2)2 ^(1/2)*((exp( -  x * 1i  - (pi * 1i)/ 4)* 1i)/ 2  - (exp(x *1I +(PI * 1i)/ 4)* 1i)/ 2)

简化使用假设

一些表达式一般不能简化,但在特定假设下变短。例如,简化此三角形表达式而无需额外的假设返回原始表达式。

syms n简化(sin(2 * n * pi))
ans = sin(2 * pi * n)

但是,如果您假设该变量N表示整数,相同的三角形表达式简化为0。

假设(n,'整数')简化(sin(2 * n * pi))
ans = 0.

为了进一步计算,清除假设。

Syms N.

简化分数

您可以使用一般的简化功能,简化,简化分数。但是,符号数学工具箱为此任务提供了更高效的功能:简化零件。该声明simpleIfyfraction(f)代表表达式F作为分数,其中分子和分母都是多项式,其最大的常见除数是1.例如,简化这些表达式。

syms x y simplifyfraction((x ^ 3  -  1)/(x  -  1))
ans = x ^ 2 + x + 1
simpleIfyfraction((x ^ 3  -  x ^ 2 * y  -  x * y ^ 2 + y ^ 3)/(x ^ 3 + y ^ 3))
ans =(x ^ 2  -  2 * x * y + y ^ 2)/(x ^ 2  -  x * y + y ^ 2)

默认,简化零件不会在返回结果的分子和分母中展开表达式。要在所产生的表达式中展开分子和分母,请使用扩张选项。为了比较,首先没有简化这个分数扩张

SimpleIffileFraction((1  -  exp(x)^ 4)/(1 + exp(x))^ 4)
ans =(exp(2 * x) -  exp(3 * x) -  exp(x)+ 1)/(exp(x)+ 1)^ 3

现在,简化了相同的表达式扩张

simpleIcefroaction((1  -  exp(x)^ 4)/(1 + exp(x))^ 4,'展开',true)
ans =(exp(2 * x) -  exp(3 * x) -  exp(x)+ 1)/(3 * exp(2 * x)+ exp(3 * x)+ 3 * exp(x)+ 1)