【发布时间】:2013-06-09 22:26:32
【问题描述】:
我正在学习如何搜索多项式并替换包含在有限点列表 {P[a,b], P[c,d] 中的所有点 P[x,y]。 .., P[x,y]} 使用诸如 (q+ab) 之类的项,并将列表中未包含的所有点 P[a,b] 替换为不同的项 (w+cd),例如例子。
这是我一直在尝试的一些代码...
K[poly_, pairs_] :=
poly //. IF[MemberQ[pairs, P[a_, b_]], P[a_, b_] :> (q+xy),
P[a_, b_] :> (w+cd)]
在哪里 //.是通过所有对替换,IF 条件用适当的术语替换对,MemberQ 检查对 P[a,b] 是否在给定列表中,'pairs'
为了验证任何建议,输入
K[ -q P[1,3] P[4,6] , {P[1,3], P[2,7]}]
应该输出
-ab cd q - cd q^2 - ab q w - q^2 w
提前感谢您的帮助!
【问题讨论】:
标签: wolfram-mathematica replaceall mathematical-expressions