質問

私はこれを行うための簡単な方法を追い詰めるしようとしている時間のまともな金額を費やしてきた - 理想的には、魔法の図書館は、3Dデータポイントの私のセットを取り、ベストフィットライン上の2点を返されますが、どこかに出て存在します直交回帰又は最小二乗法のいずれかを使用して、またフィットラインのエラーを返します。そのようなことがが存在していて、そうであれば、どこ?

役に立ちましたか?

解決

これが行う簡単な十分ですが、それを自分で書くためにあなたは、固有値ソルバーや特異値分解が必要になります。 、カラムとして、あなたの(X-XBAR、Y-ybar、Z-zbar)データをNX3行列Aを作成します。後で、私はそれを呼び出すよV0 = [XBAR、ybar、zbar]。

のために、これらの列の平均値の保存

ここで、A '* Aの固有値と固有ベクトルを計算する、すなわち、Aから形成された3×3行列はAを乗じ転置。

R ^ 3のライン上のこのデータにある場合、

、それらの固有値の一つが他の二つの固有値よりも著しく大きくなります。これが真でない場合には、直交回帰直線はうまく推定されることはありません。

A '* Aの最大固有値に関連付けられた固有ベクトルを取ります。 Vは対応する固有ベクトルである場合、直交回帰直線は、

のように定義されます

V(T)= V0 + T * V

そのライン上の任意の点は、パラメータtのいくつかの値で与えられる。

あるいは、Aの特異値分解を計算し、Aの最大特異値に対応する右特異ベクトルをとる。

あなたは、データポイントの誤差を計算したい場合は、

はいずれの場合にも、これは、問題の行に単純に直交する距離として定義されます。

他のヒント

「javaの線形最小二乗回帰ライブラリー」のためのGoogleとあなたはいくつかのオプションを見つける必要があります。一つは、 Drej のです。私自身はしかし、これを使用していない。

編集 - 私はこの質問に答える自信がないんだ - 。私は3Dデータがサポートされているかどうかわからない。

ます。http:

それはあなたのトリックを知っていればそれを行うための簡単な十分です/ /www.scribd.com/doc/21983425/Least-Squares-Fitする

その他の寸法の手段より係数が、彼らで追加する。アイデアはすべて同じですよ簡単には十分ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top