具有三角函数的 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]
会给你完全一样的结果
我偶尔使用 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]
会给你完全一样的结果