Я столкнулся со странным поведением при использовании GroebnerBasis
.В m1
ниже я использовал греческую букву в качестве переменной, а в m2
я использовал латинскую букву.У них обоих нет связанных с ними правил.Почему я получаю совершенно разные ответы в зависимости от того, какую переменную я выбираю?
Изображение:
Код для копирования:
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
не совсем правильно, так как требует полиномиального ввода, в то время как мое - нет.Эта ошибка, вызванная копировальной пастой, до сих пор оставалась незамеченной, так как я получал ответ, который ожидал, когда выполнил оставшуюся часть кода, используя 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 в таких случаях использовать GroebnerBasis
, но я не слишком хорошо знаком с глубокой теорией, лежащей в основе этого, поэтому я могу быть совершенно не прав здесь.
PS Я слышал, что если вы упомянете GroebnerBasis
трижды в своем посте, Даниэль Лихтблау ответит на ваш вопрос:)