Как заменить неявные подвыражения в Mathematica?

У меня есть это выражение в Mathematica:

(a^2 (alpha + beta)^2)/(b^2 + c^2) + (a (alpha + beta))/(b^2 + c^2) + 1  

Как вы можете видеть, в выражении есть пара подвыражений, которые повторяются на всем протяжении.

Я хочу иметь возможность заменить a / (b ^ 2 + c ^ 2) на d и альфа + бета на гамма .

Окончательное выражение должно быть таким:

1+d*gamma+a*d*gamma^2

У меня есть гораздо более сложные выражения, в которых возможность сделать это значительно упростит мою работу.

Я пробовал погуглить этот вопрос и нашел только ответы, в которых используются FactorTerms и ReplaceRepeated, но они не работают последовательно и для более сложных выражений, подобных этому. Я надеюсь, что у кого-то есть ответ.

5
задан felimz 9 December 2011 в 22:34
поделиться