Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Maple: как преобразовать цилиндрические координаты в декартовы координаты?

Автор вопроса: RellaОтветов: 1

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

и вернуть его в цилиндрические координаты...

coordinatescartesiancylindricalmaple

Ответы

Ответ 1 · рейтинг 2 · acer

simplify(toCyl) assuming r>=0, `&varphi;`<=Pi, `&varphi;`>-Pi;

Уведомление,

arctan(sin(Pi/4),cos(Pi/4));
                          1
                          - Pi
                          4

arctan(sin(Pi/4 + 10*Pi),cos(Pi/4 + 10*Pi));
                          1
                          - Pi
                          4

arctan(sin(-7*Pi/4),cos(-7*Pi/4));
                          1
                          - Pi
                          4

arctan(sin(-15*Pi/4),cos(-15*Pi/4));
                          1
                          - Pi
                          4


arctan(sin(-Pi),cos(-Pi));
                           Pi

K:=arctan(r*sin(Pi/4),r*cos(Pi/4));
                      arctan(r, r)

simplify(K) assuming r<0;
                           3
                         - - Pi
                           4

simplify(K) assuming r>0;
                          1
                          - Pi
                          4

После того, как вы преобразовали цилиндрическую форму в прямоугольную, вся информация о том, сколько раз исходный угол мог обернуться вокруг (после -Pi), теряется.

Таким образом, вы не сможете восстановить исходное &varphi;, если только оно не было в (-Pi,Pi]. Если вы сообщите Maple, что это так (наряду с r>-0, чтобы он знал, в какой полуплоскости), используя предположения, то он может упростить до того, что вы ожидаете.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы