Can a symmetric matrix AA^T be computed using matrix-vector operation?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am interested in computing
which is a symmetric matrix where
now there's nothing special about A and in the worst case all of its entries are non-zero. I have an idea in my mind to calculate
using level-2 BLAS operation.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676928/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676933/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676938/image.png)
First the diagonal entries of C is nothing but the j-th row of A multiplied by the transpose of the j-th row of A so it should be like this:
C(j,j)=A(j,:)*A(j,:)';
Next, I will compute the last
entries of C that is to say I will compute the lower triangular part of C afterwards I will say that the upper triangular part is equal to the lower triangular part due to symmetry. And this is where my question arises. Can I compute the lower triangular part using matrix-vector operation while avoiding unecessary multiplication such as multiplying elements located at the upper triangular of A?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676943/image.png)
From what I reached I have reached the following expression :
C(j+1:n,j)=A(j+1:n,j)*A(:,j);
C(j,j+1:n)=C(j+1:n,j);
The issue is that this is a vector-vector multiplication (level-1 BLAS). I would hope for some context on whether level-2 BLAS is possible
2 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!