具有三角函数的 Mathematica 转换规则

Mathematica transformation rules with trig functions

我偶尔使用 Mathematica,我正在尝试将表达式从球坐标转换为笛卡尔坐标。

我的函数定义为:

g[theta_, phi_] := Cos[phi](Sin[theta])^2 Sin[phi]

我希望使用以下规则转换该函数:

Sin[theta]Sin[phi] -> x
Cos[theta]-> y
Sin[theta]Cos[phi]-> z

为了得到结果:

zx

这是我用来执行此操作的代码:

g[theta, phi] //. {Sin[theta]Sin[phi] -> x, Cos[theta] -> y, Sin[theta] Cos[phi] -> z}

我得到的结果是:

Cos[phi] Sin[phi] Sin[theta]^2

所以没有发生转换。

是否有我可以添加的函数或选项来帮助 Mathematica 确定转换是可能的? 谢谢!

也许这就足够了

Assuming[Sin[theta]Sin[phi]==x&&Cos[theta]==y&&Sin[theta]Cos[phi]==z,
  Simplify[Cos[phi]Sin[theta]^2 Sin[phi]]]

瞬间returns

x z

这并没有向您展示它用于得出该结果的步骤或规则,但因为它认为 x z 比您的三角表达式"simpler" 评估过程朝着那个方向进行。

如果重要的话,有一种稍微更紧凑的方法可以做同样的事情。 Simplify 可以接受第二个参数,即在简化过程中假定为真的事物。于是

Simplify[Cos[phi]Sin[theta]^2 Sin[phi],
  Sin[theta]Sin[phi]==x&&Cos[theta]==y&&Sin[theta]Cos[phi]==z]

会给你完全一样的结果