3

Mathematica を使い始めたばかりで、問題に遭遇しました。もっとエレガントに解決したい。フォーム内の測定データが{x,y,z}あり、これらを空間座標に変換したいと考えています。簡単な関数を使用してそれを行う方法を知っています。しかし、コードは醜くなります。次のようなものが欲しいです:

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

ドキュメントを調べたところ、バージョン 9 のものしか見つかりませんでした。私は 8 を使用していますが、試してみると機能しませんでした。また、他のどこにも明確な解決策が見つかりませんでした。ここの誰かが問題の簡単な解決策を知っていることを願っています。

4

2 に答える 2

2

方程式はウィキペディアで提供されており、単純な関数評価です。それらを単純に計算することを妨げているのは何ですか? また、どのように醜くなるのでしょうか?

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

ArcTan[x, y]四象限逆正接を計算する Mathematica で必ず使用してください.詳細については、atan2 に関する記事を参照してください。

于 2013-03-05T01:09:03.323 に答える
2

バージョン 9 では

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

{Sqrt[x^2 + y^2 + z^2]、ArcTan[z、Sqrt[x^2 + y^2]]、ArcTan[x、y]}を与える

{x,y,z} で 3 つの球面座標を表す

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

同じことが得られますが、変換にも使用できます。デカルト座標のリスト {{x0,y0,z0},{x1,y1,z1},...} がある場合、次のように CoordinateTransform を適用できます。

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

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

以前のバージョンでは

<< Calculus`VectorAnalysis`

SetCoordinates[Spherical]

mathworld.wolfram.com サイト ページに、球面座標に関するノートがあります。冒頭に近いのは、あなたがしていることの例です。

于 2013-03-05T18:26:29.373 に答える