停止评估内置的Mathematica函数

时间:2014-08-11 22:13:01

标签: wolfram-mathematica

我正在尝试简化一些公式,例如

F[a,b,c]*F[a,c,b]+F[c,a,b] /. {a->1,b->2,c->3}

其中

F[a,b,c] := LegendreP[a,x]+LegendreP[b,x]*LegendreP[c,x]

Mathematica可以给出x的多项式。

但我想保留所有LegendreP而不是扩展它。通过设置HoldAll的{​​{1}}属性,我可以阻止它,但是也保留了参数,这不是预期的。

有人可以提出一些建议来解决这个问题吗?感谢。

编辑:我希望得到上述公式的结果(LegendreP

L=LegendreP

2 个答案:

答案 0 :(得分:2)

  

但我想保留所有LegendreP而不是扩展它。

你不能使用HoldForm吗?

F[a_, b_, c_] := HoldForm[LegendreP[a, x] + LegendreP[b, x]*LegendreP[c, x]];
F[a, b, c]*F[a, c, b] + F[c, a, b] /. {a -> 1, b -> 2, c -> 3}

Mathematica graphics

ReleaseHold[%]

Mathematica graphics

Simplify[%]

Mathematica graphics

答案 1 :(得分:1)

在不完全了解您要完成的任务的情况下,一种方法是简单地使用其他符号,例如:

 F[a,b,c] := legendreP[a,x]+legendreP[b,x]*legendreP[c,x]

(注意小写" l")

当你到达你想要评估的阶段时,应用模式替换:

 expr /. legendreP->LegendreP