简化符号表情

数学表达式的简化不是一个明确定义的课题。对于哪种形式的表达是最简单的,并没有普遍的概念。对一个问题来说最简单的数学表达式形式,结果是复杂的,甚至不适用于另一个问题。例如,下面两个数学表达式将相同的多项式以不同的形式表示出来:

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

x4x - 23.- 13 x2+ 14x + 24

第一种形式清楚地显示了这个多项式的根。这种形式处理根更简单。当你想要看到多项式的系数时,第二种形式是最好的。例如,当你对多项式求导或积分时,这种形式很方便。

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

除了特定的简化器,Symbolic Math Toolbox™还提供了一个通用的简化器,简化

如果您不需要特定形式的表达式(展开、分解或以特定术语表达),请使用简化简化数学表达式。例如,使用这个简化器为计算的最终结果找到一个简短的形式。

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

信谊x y简化((1 - x ^ 2) / (1 - x))简化((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 = 1 Ans = cos(2*x)

简化涉及指数和对数的表达式。在第三个表达中,使用日志(信谊(3))而不是日志(3).如果你使用日志(3),然后用MATLAB®计算日志(3),然后将结果转换为符号数字。

简化(exp (x) * exp (y))简化(exp (x) - exp (x / 2) ^ 2)简化(日志(x) +日志(信谊(3))——日志(3 * x) + (exp (x) - 1) / (exp (x / 2) + 1))
Ans = exp(x + y) Ans = 0 Ans = exp(x/2) - 1

简化包含特殊函数的表达式。

将(x + 1) - (x * (x))简化为(2,x) + (0, x))
Ans = 0 Ans = (2*besselj(1, x))/x

您还可以通过使用简化符号函数简化

信谊f (x, y) f (x, y) = exp (x) * exp (y) f =简化(f)
F (x, y) = exp(x + y)

简化使用选项

默认情况下,简化使用严格的简化规则,确保简化表达式在数学上始终等同于初始表达式。例如,它一般不会对复数进行对数组合。

Syms x简化(log(x^2) + log(x))
Ans = log(x^2) + log(x)

您可以应用额外的简化规则,这些规则对所有参数值和所有情况都不正确,但可以使用这些规则简化可以返回较短的结果。对于这种方法,请使用IgnoreAnalyticConstraints.例如,用IgnoreAnalyticConstraints,得到的结果是组合对数。

简化(日志(x ^ 2) +日志(x) IgnoreAnalyticConstraints,真的)
ans日志(x) = 3 *

IgnoreAnalyticConstraints提供一个快捷方式,允许您在有关变量值的常用假设下简化表达式。或者,您可以明确地对变量设置适当的假设。例如,组合对数对于一般的复数是无效的。如果你假设x是真正的价值,简化结合对数不IgnoreAnalyticConstraints

假设(x,实数)简化(log(x^2) + log(x))
ans =日志(x ^ 3)

为了进一步的计算,澄清假设x通过重新使用它信谊

信谊x

可以改进表达式或函数简化的另一种方法是语法简化(f,“步骤”,n),在那里n是一个控制多少步的正整数吗简化需要。指定更多的简化步骤可以帮助您更好地简化表达式,但这将花费更多时间。默认情况下,n = 1.例如,创建并简化这个表达式。结果比原始表达式短,但可以进一步简化。

信谊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));简化(y)
ans =(罪(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) *双曲正切(x / 2)) / 2

假设,您已经简化了一个表达式或函数,但是您想要相同表达式的其他形式。为此,您可以设置“所有”选项真正的.的语法简化(f,“步骤”,n,‘所有’,真的)显示简化步骤中相同表达式的其他等价结果。

syms x y = cos(x) + sin(x)
ans = 2 ^ (1/2) * sin (x +π/ 4)2 ^ (1/2)* cos (x -π/ 4)cos (x) + sin (x) 2 ^ (1/2) * ((exp (- x * 1(π* 1)/ 4)* 1 i) / 2 - (exp (x * 1 +(π* 1)/ 4)* 1 i) / 2)

若要返回更多相同的结果,请将步骤数增加到25。

简化(y,“步骤”,25岁,“所有”,真的)
ans = 2 ^ (1/2) * sin (x +π/ 4)2 ^ (1/2)* cos (x -π/ 4)cos (x) + sin (x) 2 ^ (1/2) * (2 * sin (x / 2 -π/ 8)^ 2 - 1)(2 ^ (1/2)* (exp (- x * 1 +(π* 1 i) / 4) / 2 + exp (x * 1 -(π* 1)/ 4)/ 2)2 ^ (1/2)* ((exp (- x * 1(π* 1)/ 4)* 1 i) / 2 - (exp (x * 1 +(π* 1)/ 4)* 1 i) / 2)

简化使用假设

有些表达式一般不能简化,但在特定的假设下会变得更短。例如,在没有附加假设的情况下简化这个三角表达式将返回原始表达式。

信谊n简化(sin (2 * n *π))
ans =罪(2 *π* n)

然而,如果你假设这个变量n表示整数时,同样的三角表达式简化为0。

假设(n,“整数”)简化(sin (2 * n *π))
ans = 0

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

信谊n

简化分数

你可以用一般的简化函数,简化,来化简分数。然而,符号数学工具箱为这个任务提供了一个更有效的函数:simplifyFraction.该声明simplifyFraction (f)代表了表达式f作为分数,分子和分母都是多项式,最大公约数是1。例如,简化这些表达式。

(x^3 - 1)/(x - 1))
Ans = x^2 + x + 1
simplifyFraction (x ^ 3 - x ^ 2 * * y - x ^ 2 + y ^ 3) / (x ^ 3 + y ^ 3))
Ans = (x^2 - 2*x*y + y^2)/(x^2 - x*y + y^2)

默认情况下,simplifyFraction不展开返回结果的分子和分母中的表达式。要在得到的表达式中展开分子和分母,使用扩大选择。为了比较,首先化简这个分数扩大

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

现在,把同样的表达式化简扩大

simplifyFraction ((1 - exp (x) ^ 4) / (1 + exp (x)) ^ 4,“扩大”,真的)
ans = (exp (2 * x) - exp (3 * x) exp (x) + 1) / (3 * exp (2 * x) + exp (3 * x) + 3 * exp (x) + 1)