可能性の重複を見つける方法:私は1から360に至るまで、ベアリングのセットを持っている場合は
How do you calculate the average of a set of angles?ベアリングのセットの平均に
を、どのように私は見つけることができます平均?通常、平均を見つけるために、それらをすべて追加し、項目の数で除算します。ここでの問題は、[1、359]、2つのベアリングの場合には、実際には360でなければならない180の結果になるということです。
可能性の重複を見つける方法:私は1から360に至るまで、ベアリングのセットを持っている場合は
How do you calculate the average of a set of angles?ベアリングのセットの平均に
を、どのように私は見つけることができます平均?通常、平均を見つけるために、それらをすべて追加し、項目の数で除算します。ここでの問題は、[1、359]、2つのベアリングの場合には、実際には360でなければならない180の結果になるということです。
ノルム= 1のベクトルとしてアングルを表し、合計を平均します。
x1 = {cos(a),sin(a)}
x2 = {cos(b),sin(b)}
(x1+x2)/2 = {(cos(a)+cos(b))/2,(sin(a)+sin(b))/2}
平均する角度が
atan2((sin(a)+sin(b)) /(cos(a)+cos(b)))
分母がゼロに近いときだけ可能オーバーフローを制御するための注意であることを意味します。
だから、あなたは何をしたい二つの軸受の真ん中です - あなたは{90、270}を持っている場合は何が起こりますか?希望の答えは0か180か?これは考慮すべきことです..また、3つのベアリングの真ん中は何ですか?あなたができる
一つのことがある:
私の頭の上から外れると、これは公正ではないと思われますが、一方向に偏っている可能性があります(つまり、設定の後の値を優先します)。
あなたは「平均」を定義するために何をしようとしているのかはっきりしていません...円の方向については、平均の明確な明確な概念はありません。
1つの解釈は、2つのベアリングの間の距離がそれらの間の最小角度として定義される最小二乗の意味で、提供された値のセットに最も近い値であるx
です。この平均を計算するコードは次のとおりです。
In[2]:= CircDist[a_, b_] := 180 - Mod[180 + a - b, 360]
In[6]:= Average[bearings_] :=
x /. NMinimize[
Sum[CircDist[x, bearings[[i]]]^2, {i, 1, Length[bearings]}],
x][[2]]
In[10]:= Average[{1, 359}]
Out[10]= -3.61294*10^-15
+1または、BTW、平均(ハーモニック、幾何学、算術など)のその他の定義。どのように使用するかによって異なります。 –