Can a symmetric matrix AA^T be computed using matrix-vector operation?

조회 수: 1 (최근 30일)
Tarek Hajj Shehadi
Tarek Hajj Shehadi 2021년 7월 7일
편집: Tarek Hajj Shehadi 2021년 7월 7일
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.
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?
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
Matt J
Matt J 2021년 7월 7일
편집: Matt J 2021년 7월 7일
Would it be naive to ask why you don't simply do,
C=A*A.'
explicitly?
Tarek Hajj Shehadi
Tarek Hajj Shehadi 2021년 7월 7일
편집: Tarek Hajj Shehadi 2021년 7월 7일
Hello Matt, the reason why I can't use any extremely optimized MATLAB built in function is because the course I am taking does not permit me to do so :( I have to wait a couple of months and then screw every non-effeciant algorithm I ever wrote!

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by