我在使用时遇到了一些奇怪的行为GroebnerBasis
. In m1
下面,我使用希腊字母作为变量,并在m2
,我用了一个拉丁字母。他们俩都没有与之相关的规则。为什么根据我选择的变量,我会得到截然不同的答案?
Image:
可复制代码:
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]
EDIT:
正如贝利萨留所指出的,我的用法GroebnerBasis
并不完全正确,因为它需要多项式输入,而我的则不需要。这个错误是由复制面食引入的,直到现在才被注意到,因为当我使用以下代码完成其余代码时,我得到了预期的答案m1
从上面。但是,我并不完全相信这是一种不合理的用法。考虑下面的例子:
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]}}
哪个是对的。所以我的解释是OK to use GroebnerBasis
在这种情况下,但我不太熟悉其背后的深层理论,所以我在这里可能完全错误。
P.S. I heard that if you mention GroebnerBasis
three times in your post, Daniel Lichtblau will answer your question :)