v7中具有GroebnerBasis的怪异行为

|| 使用
GroebnerBasis
时,我遇到了一些奇怪的行为。在下面的
m1
中,我使用希腊字母作为变量,在in2ѭ中,我使用拉丁字母。两者都没有与之关联的规则。为什么我会根据选择的变量获得截然不同的答案? 图片: 可复制的代码:
Clear[\"Global`*\"]
g = Module[{x}, 
    x /. Solve[
      z - x (1 - b - 
           b x ( (a (3 - 2 a (1 + x)))/(1 - 3 a x + 2 a^2 x^2))) == 0,
       x]][[3]];
m1 = First@GroebnerBasis[\\[Kappa] - g, z]
m2 = First@GroebnerBasis[k - g, z]
编辑: 正如belisarius指出的那样,我对
GroebnerBasis
的使用并不完全正确,因为它需要多项式输入,而我的不是。这个错误是由复制粘贴引起的,直到现在我还没有注意到,因为当我从上面使用ѭ1I进行其余代码时,我得到了我期望的答案。但是,我不完全相信这是不合理的用法。考虑下面的示例:
x = (-b+Sqrt[b^2-4 a c])/2a;
p = First@GroebnerBasis[k - x,{a,b,c}]; (*get relation or cover for Riemann surface*)
q = First@GroebnerBasis[{D[p,k] == 0, p == 0},{a,b,c},k,
    MonomialOrder -> EliminationOrder]; 

Solve[q==0, b] (*get condition on b for double root or branch point*) 

{{b -> -2 Sqrt[a] Sqrt[c]}, {b -> 2 Sqrt[a] Sqrt[c]}}
哪个是对的。因此,我的解释是,在这种情况下可以使用“ 0”,但我对它背后的深层理论并不十分熟悉,因此在这里我可能是完全错误的。 附言我听说如果您在帖子中三次提到“ 0”,Daniel Lichtblau将会回答您的问题:)     
已邀请:
        这些示例所显示的错误将在版本9中得到修复。暂时,我不知道如何在版本8及更高版本中规避它。如果我没记错的话,这是由某些代码中的中间数字溢出引起的,该代码正在检查符号多项式系数是否为零。 出于某些目的,指定更多变量和可能使用非默认术语顺序可能比较合适。此外,至少在这样做是有效的情况下,清除分母也可能会有所帮助。也就是说,我不知道这些策略在此示例中是否有帮助。 我将在这段代码中进一步介绍,但可能不会在不久的将来出现。 丹尼尔·里奇布劳     
        这可能与Mathematica并未尝试像
Simplify
这样的函数中的所有可变阶数有关。这是一个例子:
ClearAll[a, b, c]
expr = (c^4 b^2)/(c^4 b^2 + a^4 b^2 + c^2 a^2 (1 - 2 b^2));
Simplify[expr]
Simplify[expr /. {a -> b, b -> a}]
   (b ^ 2 c ^ 4)/(a ^ 4 b ^ 2 + a ^ 2(1-2 b ^ 2)c ^ 2 + b ^ 2 c ^ 4)    (a ^ 2 c ^ 4)/(b ^ 2 c ^ 2 + a ^ 2(b ^ 2-c ^ 2)^ 2) Adam Strzebonski解释说:   ...所有人都可以尝试FullSimplify   选择的可能顺序   变量。当然,这会成倍增加   计算时间   阶乘[长度[变量]] ...     

要回复问题请先登录注册