Как выполнить сложную замену переменных для многочлена (в Mathematica)

У меня есть целочисленный многочлен от четырех переменных (w, x, y и z), которые, как я знаю, могут быть записаны в виде целочисленного многочлена в этих шести переменных:

  • a = w z
  • b = x y
  • c = w ^ 3 + z ^ 3
  • d = x + y
  • e = w ^ 3 x + y z ^ 3
  • f = w ^ 3 y + x z ^ 3

Как я могу использовать Mathematica (или, возможно, Java), чтобы легко выполнить эту замену переменных?

Ответы

Ответ 1

Такое переписывание может быть выполнено путем формирования базиса Грёбнера заменяющих многочленов относительно переменного порядка, который способствует использованию a-f над w-z. Затем используйте PolynomialReduce относительно того же порядка, чтобы переписать ваш многочлен.

Вот пример. Я начну с правил замены, чтобы я мог построить многочлен, чтобы мы знали ожидаемый результат.

reprules = {a -> w*z, b -> x*y, c -> (w^3 + z^3), 
 d -> (x + y), e -> (w^3*x + y*z^3), f -> (w^3*y + x*z^3)};

Теперь переформулируем как полиномиальные отношения.

reppolys = Apply[Subtract, reprules, 1];

Здесь мы создаем пример.

poly = 
 a^2*b + 3*b^2*c^3 - 2*d*e*f + 11*b*f^2 - 5 a*d^2*e /. reprules // Expand

Out[11]= -2*w^6*x^2*y - 2*w^6*x*y^2 + 3*w^9*x^2*y^2 + 11*w^6*x*y^3 - 
  5*w^4*x^3*z - 10*w^4*x^2*y*z - 5*w^4*x*y^2*z + w^2*x*y*z^2 - 2*w^3*x^3*z^3 - 
  2*w^3*x^2*y*z^3 - 2*w^3*x*y^2*z^3 + 22*w^3*x^2*y^2*z^3 + 9*w^6*x^2*y^2*z^3 - 
  2*w^3*y^3*z^3 - 5*w*x^2*y*z^4 - 10*w*x*y^2*z^4 - 5*w*y^3*z^4 -
  2*x^2*y*z^6 + 11*x^3*y*z^6 - 2*x*y^2*z^6 + 9*w^3*x^2*y^2*z^6 + 3*x^2*y^2*z^9

Формируйте основание Гроблева, упомянутое выше.

gb = GroebnerBasis[reppolys, {w, x, y, z, a, b, c, d, e, f}];

Используйте его, чтобы уменьшить наш ввод, чтобы восстановить ожидаемый результат.

PolynomialReduce[poly, 
  gb, {w, x, y, z, a, b, c, d, e, f}][[2]]

Out[12]= a^2*b + 3*b^2*c^3 - 5*a*d^2*e - 2*d*e*f + 11*b*f^2

--- редактировать ---

В комментарии задаются описания оснований Groebner. Для моего собственного использования функциональности Mathematica существует статья о пожилых людях TMJ. Можно найти в

http://library.wolfram.com/infocenter/Articles/2179/

Среди лучших книг, связанных с этой темой, есть текст серии UTM

Идеалы, многообразия и алгоритмы Кокса, Лотлета и О'Ши.

Введение в базы Грёбнера Адамсом и Лустонау (AMS) также неплохо.

--- конец редактирования ---

Даниэль Лихтблау