Мы получаем некоторое выражение в Цилиндрические координаты (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)
и вернуть его обратно вЦилиндрические координаты ...