如何强制Mathematica在Simplify和FullSimplify中包含用户定义的函数?

H. *_*nen 6 wolfram-mathematica simplify

假设我有一个关系r ^ 2 = x ^ 2 + y ^ 2.现在假设在计算之后得到x和y的复杂输出,但理论上可以通过使用上述关系简化很多.我如何告诉Mathematica这样做?

我指的是替换规则x ^ 2 + y ^ 2 - > r ^ 2并且使用Simplify/FullSimplify with Assumptions不起作用的情况,例如,如果输出是x/y + y/x =(x ^ 2) + y ^ 2)/(xy)= r ^ 2 /(xy).

简化适用于内置函数,但不适用于用户定义的函数!所以基本上我希望我的函数像内置函数一样对待!

Mr.*_*ard 7

我相信你正在寻找TransformationFunctions.

f = # /. x^2 + y^2 -> r^2 &;

Simplify[x/y + y/x, TransformationFunctions -> {Automatic, f}]

(* Out=  r^2/(x y)  *)
Run Code Online (Sandbox Code Playgroud)

  • @Super,关于`TransformationFunctions`的一个警示,使你能够纠正违反数学规则的替换规则.因此,在使用之前请仔细考虑转换. (4认同)