我们在Cylindrical coordinates (r, ϕ, z )中得到一些表达式:expr := r*z^2*sin((1/3)*
φ)
我们需要将其转换为Cartesian coordinates而不是回到圆柱坐标。怎么做这个?
所以我找到了类似这样的东西: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)
并将其恢复为圆柱坐标...
答案 0 :(得分:2)
simplify(toCyl) assuming r>=0, `ϕ`<=Pi, `ϕ`>-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)的信息都会丢失。
所以你不会恢复原来的ϕ
,除非它在(-Pi,Pi)中。如果你告诉Maple就是这种情况(和r&gt; -0一起使它知道哪个半平面) ),使用假设,然后它可以简化到你期望的。