【发布时间】:2011-12-09 22:34:30
【问题描述】:
我在 Mathematica 中有这个表达式:
(a^2 (alpha + beta)^2)/(b^2 + c^2) + (a (alpha + beta))/(b^2 + c^2) + 1
如您所见,表达式有几个重复的子表达式。
我希望能够将 a/(b^2+c^2) 替换为 d 并将 alpha+beta 替换为 gamma。
最后的表达式应该是:
1+d*gamma+a*d*gamma^2
我有更复杂的表达式,如果能够做到这一点将大大简化我的工作。
我试过用谷歌搜索这个问题,我只找到使用 FactorTerms 和 ReplaceRepeated 的答案,但不能始终如一地工作,并且对于像这样的更复杂的表达式。我希望这里有人有答案。
【问题讨论】:
-
嗯......因为我似乎在评论中回答......从关系 {a - (b^2 + c^2)*d, alpha + beta - gamma , (b^2 + c^2)*bcsqrrecip - 1} (注意我们 n=有一个新的多项式和变量来通过往复处理分母项)。 Next Together 你的表达式并分别减少它的分子和分母,然后一起减少那些减少的商。所有这些的可变顺序将要求 b 和/或 c 比 a“大”。所有这一切的结果确实是 1 + dgamma + ad*gamma^2 (我从我的笔记本结果中剪切并粘贴了它)。
-
感谢您的接受。我认为这是我所记得的答案和接受之间最长的差距。 :)