主要内容

简化符号表达式

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

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

X4.-2x3.- 13x.2+14x+24

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

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

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

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

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

符号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 = 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

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

符号f(x,y)f(x,y)=经验(x)*经验(y)f=简化(f)
f(x,y)= exp(x)* exp(y)f(x,y)= exp(x + y)

简化使用选项

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

符号x简化(对数(x^2)+对数(x))
ans = log(x ^ 2)+ log(x)

您可以应用其他简化规则,这些规则对于参数的所有值和所有情况都不正确,但使用简化可以返回更短的结果。对于此方法,请使用信号分析约束。例如,简化相同的表达式信号分析约束,您将结果与组合的Logarithms获得结果。

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

信号分析约束提供快捷键,允许您在常用的假设下简化表达式的常用假设。或者,您可以明确地在变量上设置适当的假设。例如,组合Logarithms通常对复杂值无效。如果你假设X是一个真正的价值,简化合并对数而不使用信号分析约束

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

为了进一步计算,清除假设X通过使用Syms.

符号x

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

符号xy = (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,'Steps',n,'All',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,'Steps',25,'All',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)

简化使用假设

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

符号n简化(sin(2*n*pi))
ans = sin(2 * pi * n)

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

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

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

Syms N.

简化分数

您可以使用通用简化功能,简化,简化分数。但是,符号数学工具箱专门为此任务提供了一个更有效的函数:简化分数。该声明简化分数(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)

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

简化分数((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)