Function symbolicEqual #
尝试确定两个表达式是否在符号上相等,即一个表达式是否是另一个表达式通过有效代数运算的结果。目前,这仅仅检查两个表达式的差是否可以简化为 0。因此,有两个重要的注意事项:
- 两个表达式是否在符号上相等取决于允许的运算。因此,此函数接受一个可选的第三个参数,即控制行为的选项,如
simplify()函数的文档所述。 - 对于任意复杂的表达式,找到最小化简化通常是不可行的。因此,虽然
symbolicEqual返回true值确保两个表达式可以被运算匹配,但返回false值并不绝对排除这种情况。
Syntax #
math.symbolicEqual(expr1, expr2)
math.symbolicEqual(expr1, expr2, options)
Parameters #
| Parameter | Type | Description |
|---|---|---|
expr1 |
Node | string | 要比较的第一个表达式 |
expr2 |
Node | string | 要比较的第二个表达式 |
options |
Object | 可选的选项对象,传递给 simplify |
Returns #
| Type | Description |
|---|---|
| boolean | 如果找到使表达式相等的有效运算,则返回 true。 |
Throws #
Type | Description —- | ———–
Examples #
math.symbolicEqual('x*y', 'y*x') // Returns true
math.symbolicEqual('x*y', 'y*x', {context: {multiply: {commutative: false}}}) // Returns false
math.symbolicEqual('x/y', '(y*x^(-1))^(-1)') // Returns true
math.symbolicEqual('abs(x)','x') // Returns false
math.symbolicEqual('abs(x)','x', simplify.positiveContext) // Returns true