Правила преобразования Mathematica с тригонометрическими функциями - PullRequest
0 голосов
/ 09 мая 2018

Я случайный пользователь 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 выяснить, возможно ли преобразование? Спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Возможно, этого будет достаточно

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

, который мгновенно возвращает

x z

Это не показывает вам шаги или правила, которые использовались для достижения этого результата, но поскольку он считал x z "более простым", чем ваше выражение триггера, процесс оценки пошел в этом направлении.

Есть немного более компактный способ сделать то же самое, если это имеет значение. Simplify может принять второй аргумент, то есть то, что считается истинным в процессе упрощения. Таким образом

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

даст вам точно такой же результат

...