Mathematica 8:从笛卡尔坐标系转换为球坐标系

3

我刚开始使用Mathematica并遇到了一个问题。我希望能够更优雅地解决它。我有一个形如{x,y,z}的测量数据,并想将其转换为球坐标。我知道可以使用简单的函数来完成这个任务。但是代码变得很丑陋。

我希望有一个类似于:

v={x,y,z}
TranformSpherical[v]

我查阅了文档,只找到了版本9的内容,我正在使用版本8,但尝试时没有起作用。我在其他地方也没有找到清晰的解决方案。希望这里有人知道问题的简单解决方法。


请注意,与此网站相比,http://mathematica.stackexchange.com/questions 更适合您的Mathematica相关问题。 - Dr. belisarius
2个回答

2
这段话的意思是:“方程式在维基百科上给出,是简单的函数计算。那么,有什么阻止你直接计算它们,又是如何变得复杂的呢?”

enter image description here

enter image description here

enter image description here

请使用Mathematica中的ArcTan[x, y]函数,它可以计算四象限反正切值。更多信息请参见关于atan2的文章

2

在9版本中

CoordinateTransformData["Cartesian" -> "Spherical", "Mapping", {x, y, z}]

这段代码给出了三个球坐标系参数与{x,y,z}之间的关系:{Sqrt[x^2 + y^2 + z^2], ArcTan[z, Sqrt[x^2 + y^2]], ArcTan[x, y]},分别对应球面半径、极角和方位角。

CoordinateTransform["Cartesian" -> "Spherical", {x, y, z}]

使用CoordinateTransform可以得到相同的结果,还可以用于转换。 如果您有一个笛卡尔坐标列表{{x0,y0,z0},{x1,y1,z1},...},您可以像这样应用CoordinateTransform

cartesianList = RandomReal[{0, 1}, {4, 3}];

CoordinateTransform["Cartesian" -> "Spherical", #] & /@ cartesianList 

在早期版本中

<< Calculus`VectorAnalysis`

SetCoordinates[Spherical]

在mathworld.wolfram.com网站的“球坐标”页面上有一本笔记本。在开头附近,有一个与您正在进行的操作相关的示例。请注意保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接