Мы получаем выражение в цилиндрических координатах (r, , z ), например: expr := r*z^2*sin((1/3)*) нам нужно преобразовать в декартовы координаты, а затем обратно в цилиндрические координаты. Как сделать такое?
Итак, я нашел что-то вроде этого: eval(expr, {r = sqrt(x^2+y^2), z = z,= arctan(y, x)}) но это кажется неправильным, как это исправить и как заставить eval конвертировать обратные слова из декартовых в цилиндрические?
ϕ ==
Итак, я пытаюсь:
R := 1;
H := h;
sigma[0] := sig0;
sigma := sigma[0]*z^2*sin((1/3)*`ϕ`);
toCar := eval(sigma, {r = sqrt(x^2+y^2), z = z, `ϕ` = arctan(y, x)});
toCyl := collect(eval(toCar, {x = r*cos(`ϕ`), y = r*sin(`ϕ`), z = z}), `ϕ`)
Это выглядит близко к истине, но посмотрите: 
почему arctan(r*sin(), r*cos()) не отображается как ?
На самом деле это только начало веселья для меня, потому что мне также нужно вычислить
Q := int(int(int(toCar, x = 0 .. r), y = 0 .. 2*Pi), z = 0 .. H)
и вернуть его в цилиндрические координаты...