0

宿題の一環として、imageA を iamge B
にマッピングする必要があります。このコードを逆マッピングに使用しています。
A = zeros(8,8);
A = [imageB(1,1) imageB(2,1) 0 0 1 0 (-1)*(imageB(1,1))imageA(1,1) (-1)(imageB(2,1))imageA(1,1);
0 0 imageB(1,1) imageB(2,1) 0 1 (-1)
(imageB(1,1))imageA(2,1) (-1)(imageB(2,1))imageA(2,1);
imageB(1,2) imageB(2,2) 0 0 1 0 (-1)
(imageB(1,2))imageA(1,2) (-1)(imageB(2,2))imageA(1,2);
0 0 imageB(1,2) imageB(2,2) 0 1 (-1)
(imageB(1,2))imageA(2,2) (-1)(imageB(2,2))imageA(2,2);
imageB(1,3) imageB(2,3) 0 0 1 0 (-1)
(imageB(1,3))imageA(1,3) (-1)(imageB(2,3))imageA(1,3);
0 0 imageB(1,3) imageB(2,3) 0 1 (-1)
(imageB(1,3))imageA(2,3) (-1)(imageB(2,3))imageA(2,3);
imageB(1,4) imageB(2,4) 0 0 1 0 (-1)
(imageB(1,4))imageA(1,4) (-1)(imageB(2,4))imageA(1,4);
0 0 imageB(1,4) imageB(2,4) 0 1 (-1)
(imageB(1,4))imageA(2,4) (-1)(imageB(2,4))*imageA(2,4)];
imageA(1,4); imageA(2,4)];
B = reshape(imageA,[],1);

D = pinv(A)*B;


しかし、私の友人はこのコードを使用しています:
D = inv(A'*A)*A'*B;


私は彼と同じ値を取得しますが、私は 0.0000 を取得し、彼は -0.0000 を取得します。正または負の残りの数値はすべて同じです。

どうしてこれなの ?そして正解は?
結果を簡単に確認するために何ができると思いますか?

4

1 に答える 1

2

これらの違いは、数値的な不安定性に起因するようです。eps機械の精度 ( )に対してどれくらいの大きさですか? なぜあなたは使わないのですbackslashか?

>> D = A \ B;
于 2012-12-06T15:04:59.210 に答える