为什么 `evalb(((3*x + 1)^5)(3*x - 1)/x^6 = ((3 + 1/x)^5)(3 - 1/x)) 假设 (0 < x)` return Maple 中的 `false`?
Why does `evalb(((3*x + 1)^5)(3*x - 1)/x^6 = ((3 + 1/x)^5)(3 - 1/x)) assuming (0 < x)` return `false` in Maple?
问题可能应该是 为什么 (3*x + 1)^5 * (3*x - 1) / x^6 = (3 + 1/x)^5 * (3 - 1/x)
在 Maple 中计算为假,即使假设 x > 0。相同的表达式在 Mathematica 中计算为真当然,在先前的假设下,该陈述本身在数学上是正确的。
Maple 的帮助页面没有提供任何关于为什么会发生这种情况的线索,在我认为 Maple 的 evalb()
有问题之前,我希望有人能解释一下这种行为。这是我最近问自己的问题类型,因为我在决定是应该学习 Maple 还是放弃它并专注于学习 Mathematica。
提前致谢。
如果等式两边都是 numeric
类型(或扩展复数值等),则 evalb
将检验相等性。但是对于你的符号表达式,evalb
命令只会测试它们是否是完全相同的表达式(通过比较内存地址)。
但它们不是完全相同的表达方式。它们只是两个不同的符号表达式,您希望对其进行等价性的数学测试。
restart;
expr:=(3*x+1)^5*(3*x-1)/x^6=(3+1/x)^5*(3-1/x):
is(expr);
true
testeq(expr);
true
simplify((rhs-lhs)(expr));
0
问题可能应该是 为什么 (3*x + 1)^5 * (3*x - 1) / x^6 = (3 + 1/x)^5 * (3 - 1/x)
在 Maple 中计算为假,即使假设 x > 0。相同的表达式在 Mathematica 中计算为真当然,在先前的假设下,该陈述本身在数学上是正确的。
Maple 的帮助页面没有提供任何关于为什么会发生这种情况的线索,在我认为 Maple 的 evalb()
有问题之前,我希望有人能解释一下这种行为。这是我最近问自己的问题类型,因为我在决定是应该学习 Maple 还是放弃它并专注于学习 Mathematica。
提前致谢。
如果等式两边都是 numeric
类型(或扩展复数值等),则 evalb
将检验相等性。但是对于你的符号表达式,evalb
命令只会测试它们是否是完全相同的表达式(通过比较内存地址)。
但它们不是完全相同的表达方式。它们只是两个不同的符号表达式,您希望对其进行等价性的数学测试。
restart;
expr:=(3*x+1)^5*(3*x-1)/x^6=(3+1/x)^5*(3-1/x):
is(expr);
true
testeq(expr);
true
simplify((rhs-lhs)(expr));
0