簡體   English   中英

Matlab,運算符A \\ B.

[英]Matlab, operator A\B

操作A \\ B的結果是什么,其中A(1,m)和B(1,m)?

在手冊中寫道:

A\B returns a least-squares solution to the system of equations A*x= B.

所以它意味着x = inv(A'* A)* A'* B? 但是,矩陣A'* A是單數的......

讓我們假設:

A=[1 2 3]
B=[6 7 6]
A\B

0         0         0
0         0         0
2.0000    2.3333    2.0000

如果使用MLS:

C = inv (A'*A)   singular matrix
C = pinv(A'*A)

0.0051    0.0102    0.0153
0.0102    0.0204    0.0306
0.0153    0.0306    0.0459

D= C*A'*B

0.4286    0.5000    0.4286
0.8571    1.0000    0.8571
1.2857    1.5000    1.2857

所以結果A \\ B和inv(A'* A)* A'* B是不同的......

我的MATLAB(R2010b)說了很多關於A\\B作用:

mldivide(A,B)和等效的A\\B執行矩陣左划分(反斜杠)。 AB必須是具有相同行數的矩陣,除非A是標量,在這種情況下A\\B執行逐元素除法 - 即A\\B = A.\\B

如果A是方陣,則A\\Binv(A)*B大致相同,除非它以不同的方式計算。 如果An by- n矩陣, B是具有n元素的列向量,或者是具有多個這樣的列的矩陣,則X = A\\B是等式AX = B的解。 如果A嚴重縮放或幾乎是單數,則會顯示警告消息。

如果Am by- n矩陣,其中m ~= nB是具有m分量的列向量,或者是具有多個這樣的列的矩陣,那么X = A\\B是最小二乘意義下的解決方案。 - 或超定方程組AX = B 換句話說, X最小化norm(A*X - B) ,即矢量AX - B的長度。 A的等級k由具有列旋轉的QR分解確定。 計算的解X每列最多具有k非零元素。 如果k < n ,這通常與x = pinv(A)*B ,它返回最小二乘解。

mrdivide(B,A)和等效B/A執行矩陣右除(正斜杠)。 BA必須具有相同的列數。

如果A是方陣,則B/AB*inv(A)大致相同。 如果An by- n矩陣, B是具有n元素的行向量,或者是具有多個這樣的行的矩陣,那么X = B/A是通過高斯消除和部分旋轉計算的等式XA = B的解。 。 如果A嚴重縮放或幾乎是單數,則會顯示警告消息。

如果Bm m ~= nm by- n矩陣, A是具有m分量的列向量,或者是具有多個這樣的列的矩陣,則X = B/A是最小二乘意義下的解決方案。 - 或超定方程組XA = B

x = inv (A'*A)*A'*B無二超定系統(即其中設有A作為nxm與矩陣n>m ;在這些情況下A'A是可逆的)。

在您的情況下,您有一個未確定的系統。


那么,會發生什么?

我的意見,雖然你可以檢查,至少在你的情況下

當你做A\\B matlab解決了與通常的最小二乘相反的優化問題,即

 X = argmin_{X \in S} ||X||,

其中S是一組解決方案。 換句話說,它為您提供了具有最小L ^ 2范數的系統的解決方案。 (考慮到您可以手動處理問題,至少在您的情況下)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM