选择函数以重新排列表达式

结合同一代数结构的条款

符号数学工具箱™ 提供结合用于组合原始表达式的子表达式的函数结合函数使用您指定的函数的数学标识。例如,组合三角形表达式。

syms x y联合收割机(2*sin(x)*cos(x),'sincos')
ans = sin(2 * x)

如果未指定目标函数,结合在这些标识有效的情况下使用电源标识:

  • A.BA.C=A.B+C

  • A.CBC=(A.B)C

  • (A.B)C=A.卑诗省

例如,默认情况下,该函数组合以下平方根。

组合(SQRT(2)* SQRT(x))
ans=(2*x)^(1/2)

该函数不合并平方根sqrt(x)* sqrt(y)因为该标识对于变量的负值无效。

组合(SQRT(x)* sqrt(y))
ans=x^(1/2)*y^(1/2)

结合这些平方根,使用信号分析约束选项

组合(sqrt(x)*sqrt(y),“信号分析约束”,真)
ans=(x*y)^(1/2)

信号分析约束提供一个快捷方式,允许您在有关变量值的常用假设下组合表达式。或者,您可以显式地对变量设置适当的假设。例如,假设xY都是正值。

假设([x,y],'正')组合(sqrt(x)* sqrt(y))
ans=(x*y)^(1/2)

对于进一步的计算,请清除上的假设xY通过使用它们进行重新创建符号.

syms x y

作为目标函数,,结合接受阿坦,经验,伽马射线,int,日志,旋转因子新科什.

展开表达式

对于基本表达式,请使用扩大通过乘以产品和乘以改造原始表达式的功能。s manbetx 845此功能提供了一种扩展多项式的简单方法。

扩展((x-1)*(x-2)*(x-3))
ans=x^3-6*x^2+11*x-6
展开(x *(x *(x-6)+ 11) -  6)
ans=x^3-6*x^2+11*x-6

该功能还扩展了指数和对数表达式。例如,展开包含指数级的以下表达式。

展开(exp(x+y)*(x+exp(x-y)))
ans=exp(2*x)+x*exp(x)*exp(y)

展开包含对数的表达式。扩展对数对通用复杂值无效,但它对于正值是有效的。

符号a b c正展开(对数(a*b*c))
ans=日志(a)+日志(b)+日志(c)

对于进一步的计算,请清除假设。

Syms A B C

或者,使用信号分析约束展开对数时的选项。

展开(日志(a*b*c),“IgnoreAnalyticConstraints”,true)
ans=日志(a)+日志(b)+日志(c)

扩大也适用于三角表达式。例如,展开此表达式。

展开(cos(x+y))
ans=cos(x)*cos(y)-sin(x)*sin(y)

扩大在函数之间使用数学恒等式。

扩展(sin(5*x))
ans = sin(x) -  12 * cos(x)^ 2 * sin(x)+ 16 * cos(x)^ 4 * sin(x)
扩展(cos(3*acos(x)))
ans = 4 * x ^ 3  -  3 * x

扩大对所有子表达式递归工作。

展开((sin(3*x)+1)*(cos(2*x)-1))
ans = 2 * sin(x)+ 2 * cos(x)^ 2  -  10 * cos(x)^ 2 * sin(x)+ 8 * cos(x)^ 4 * sin(x) -  2

要防止扩展所有三角、对数和指数子表达式,请使用选项仅算术.

展开(exp(x + y)*(x + exp(x-y)),'arthmeticonly',true)
ans = exp(x  -  y)* exp(x + y)+ x * exp(x + y)
展开((sin(3*x)+1)*(cos(2*x)-1),“仅算术”,真)
ans = cos(2 * x) -  sin(3 * x)+ cos(2 * x)* sin(3 * x) -  1

因子表达

要返回表达式的所有不可约因子,请使用因素作用例如,找到这种多项式表达的所有不可缩短的多项式因子。结果表明,这种多项式有三根:x=1,x=2x=3.

符号x系数(x^3-6*x^2+11*x-6)
ans = [x  -  3,x  -  1,x  -  2]

如果多项式表达式是不可约的,因素返回原始表达式。

因子(x ^ 3  -  6 * x ^ 2 + 11 * x  -  5)
ans=x^3-6*x^2+11*x-5

求表达式的不可约多项式因子x^6+1. 默认情况下,因素使用对Rational Numbers的分解,以其确切的符号形式保持合理的数字。此表达的结果因子不显示多项式根源。

系数(x^6+1)
ans=[x^2+1,x^4-x^2+1]

使用其他分解模式可让您进一步提供此表达式。例如,因素对复杂数字的表达相同。

因子(x^6+1,'FactorMode','complex')
ans=[x+0.86602540378443864676372317075294+0.5i,…x+0.86602540378443864676372317075294-0.5i,…x+1.0i,…x-1.0i,…x-0.86602540378443864676372317075294+0.5i,…x-0.866025403784438676372317075294-0.5i]

因素也适用于多项式和有理表达式以外的表达式。例如,您可以对以下包含对数、正弦和余弦函数的表达式进行因子计算。在内部,因素通过用变量替换子表达式,将此类表达式转换为多项式和有理表达式。在计算不可约因子后,函数恢复原始子表达式。

系数((对数(x)^2-1)/(cos(x)^2-sin(x)^2))
ans=[log(x)-1,log(x)+1,1/(cos(x)-sin(x)),1/(cos(x)+sin(x))]

因素对符号整数和符号有理数进行因子运算。

系数(sym(902834092))系数(1/sym(210))
ans = [2,2,47,379,12671] ans = [1/2,1 / 3,1 / 5,1 / 7]

因素也可以将大于Flintmax.那就是MATLAB®因素不能。若要准确表示大的数字,请将数字置于引号中。

系数(sym('4175854088208627201'))
ANS = [479001599,87178291199]

从表达式中提取子表达式

这个孩子们函数返回表达式的子表达式。

定义表达式F有几个子表达。

syms x y f = exp(3 * x)* y ^ 3 + exp(2 * x)* y ^ 2 + exp(x)* y;

提取的子表达式F通过使用孩子们.

expr=儿童(f)
expr=[y^2*exp(2*x),y^3*exp(3*x),y*exp(x)]

您可以通过调用提取较低级别的子表达式孩子们反复强调结果。

提取的子表达式expr(1)打电话孩子们反复地当输入到孩子们是矢量,输出是一个单元数组。

expr1 =儿童(expr(1))expr2 =儿童(expr1)
expr1 = [y ^ 2,exp(2 * x)] expr2 = 1×2单元阵列{1×2 sym} {1×1 sym}

访问单元格数组的内容Expr2.使用大括号。

EXPR2 {1} EXPR2 {2}
ans = [y,2] ans = 2 * x

收集具有相同权限的术语

如果数学表达式包含具有指定变量或表达式相同权力的术语,则收集函数通过对这些术语进行分组来重新组织表达式。打电话的时候收集,指定函数必须认为未知数的变量。这个收集函数将原始表达式视为指定未知量中的多项式,并将系数按等幂分组。将表达式的术语分组,使其具有与x.

syms x y z expr=x*y^4+x*z+2*x^3+x^2*y*z+。。。3*x^3*y^4*z^2+y*z^2+5*x*y*z;收集(expr,x)
ans =(3 * y ^ 4 * z ^ 2 + 2)* x ^ 3 + y * z * x ^ 2 +(y ^ 4 + 5 * z * y + z)* x + y * z ^ 2

将同一表达式的术语分组为Y.

收集(expr,y)
ans =(3 * x ^ 3 * z ^ 2 + x)* y ^ 4 +(x ^ 2 * z + 5 * x * z + z ^ 2)* y + 2 * x ^ 3 + z * x

将同一表达式的术语分组为Z.

收集(expr,z)
ans=(3*x^3*y^4+y)*z^2+(x+5*x*y+x^2*y)*z+2*x^3+x*y^4

如果不指定收集必须考虑作为未知,功能使用赛姆瓦尔确定默认变量。

收集(expr)
ans =(3 * y ^ 4 * z ^ 2 + 2)* x ^ 3 + y * z * x ^ 2 +(y ^ 4 + 5 * z * y + z)* x + y * z ^ 2

通过将这些未知数指定为载体来收集关于几个未知数的表达式的术语。

收集(expr[y,z])
ans=3*x^3*y^4*z^2+x*y^4+y*z^2+(x^2+5*x)*y*z+x*z+2*x^3

以其他功能重写表达式

要根据特定函数表示表达式,请使用重写.此函数使用函数之间的数学标识。例如,根据特定三角函数重写包含三角函数函数的表达式。

符号x重写(sin(x),‘tan’)
ans=(2*tan(x/2))/(tan(x/2)^2+1)
重写(cos(x),‘tan’)
ans=-(tan(x/2)^2-1)/(tan(x/2)^2+1)
重写(SIN(2 * X)+ COS(3 * x)^ 2,'tan')
ans=(tan((3*x)/2)^2-1)^2/(tan((3*x)/2)^2+1)^2+…(2*tan(x))/(tan(x)^2+1)

重写用指数函数表示这些三角函数。

重写(sin(x),'exp')
ans=(exp(-x*1i)*1i)/2-(exp(x*1i)*1i)/2
重写(cos(x),'exp')
ans=exp(-x*1i)/2+exp(x*1i)/2

重写用指数函数表示这些双曲函数。

重写(sinh(x),'exp')
ans = exp(x)/ 2  -  exp(-x)/ 2
重写(cosh(x),'exp')
ans=exp(-x)/2+exp(x)/2

重写也用对数表示反双曲函数。

重写(asinh(x),'log')
ans = log(x +(x ^ 2 + 1)^(1/2))
重写(acosh(x),'log')
ans = log(x +(x  -  1)^(1/2)*(x + 1)^(1/2))

计算表达式的部分分式分解

这个部分压裂功能以多项式和Rational术语的总和的形式返回合理表达。在每个Rational项中,分子的程度小于分母的程度。对于一些表达,部分压裂返回明显更简单的表单。

符号xn=x^6+15*x^5+94*x^4+316*x^3+599*x^2+602*x+247;d=x^6+14*x^5+80*x^4+238*x^3+387*x^2+324*x+108;部分压裂(n/d,x)
ans=1/(x+1)+1/(x+2)^2+1/(x+3)^3+1

理性术语中的分母代表了原始表达的常见常见分支。

系数(d)
ans = [x + 1,x + 2,x + 2,x + 3,x + 3,x + 3]

计算正常形式的理性表达式

这个简化分数函数表示原始合理表达式,作为具有扩展分器和分母的单个Rational术语。返回表达式的分子和分母的最大常见除数为1.该功能对于简化分数而言更有效简化作用

syms x y分数((x^3+3*y^2)/(x^2-y^2)+3)
ans=(x^3+3*x^2)/(x^2-y^2)

简化分数取消分数和分母中出现的常见因素。

简化分数(x^2/(x+y)-y^2/(x+y))
ans = x  -  y

简化分数还处理多项式和有理函数以外的表达式。在内部,它通过用标识符替换子表达式将这些表达式转换为多项式或有理函数。在使用临时变量规范化表达式之后,简化分数恢复原始子表达式。

simpleIcefroaction((exp(2 * x) -  exp(2 * y))/(exp(x) -  exp(y)))
ans = exp(x)+ exp(y)

使用Horner嵌套形式表示多项式

多项式表达式的Horner或嵌套形式对于数值计算是有效的,因为与相同多项式的其他数学等价形式相比,它通常涉及较少的算术运算。通常,这种形式的表达式在数值上是稳定的。要以嵌套形式表示多项式表达式,请使用霍纳作用

符号x霍纳(x^3-6*x^2+11*x-6)
ans = x *(x *(x-6)+ 11) -  6

如果多项式系数是浮点数,则生成的Horner形式将其表示为有理数。

霍纳(1.1+2.2*x+3.3*x^2)
ans=x*((33*x)/10+11/5)+11/10

要将结果中的系数转换为浮点数,请使用VPA..

vpa(ans)
ans=x*(3.3*x+2.2)+1.1