Function symbolicEqual #

尝试确定两个表达式是否在符号上相等,即一个表达式是否是另一个表达式通过有效代数运算的结果。目前,这仅仅检查两个表达式的差是否可以简化为 0。因此,有两个重要的注意事项:

  1. 两个表达式是否在符号上相等取决于允许的运算。因此,此函数接受一个可选的第三个参数,即控制行为的选项,如 simplify() 函数的文档所述。
  2. 对于任意复杂的表达式,找到最小化简化通常是不可行的。因此,虽然 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

另请参阅 #

simplify, evaluate

Fork me on GitHub