Replacing eigenvalue decomposition with Fourier Transform
古いコメントを表示
Hello,
I am doing matrix inversion of circulant matrix using eigenvalue decomposition method. However, I found that the complexity is high which I know as O(n^3). Then, I found that the complexity can be reduced to O(n log n) using Fourier Transform (FFT) method.
Thus, I would be very happy if someone can explain to me the method how to replace Eigenvalue decomposition method with Fourier Transform (FFT) method in order to do matrix inversion.
Thank you.
Huda
8 件のコメント
Christine Tobler
2019 年 4 月 15 日
There's an explanation of how the FFT method relates to circulant matrices here: https://en.wikipedia.org/wiki/Circulant_matrix#Other_properties (see the 4th bullet point).
Nurulhuda Ismail
2019 年 4 月 24 日
Nurulhuda Ismail
2019 年 4 月 29 日
編集済み: Nurulhuda Ismail
2019 年 4 月 29 日
Christine Tobler
2019 年 4 月 29 日
編集済み: Christine Tobler
2019 年 4 月 29 日
I agree with Matt, best to just call sort() on the eigenvalues computed using DFT. What order do you need the eigenvalues to be in?
I noticed something else: The eigenvalues should be much closer together than in your example above. The problem is that the numbers 2.7798 - 0.8504i and 2.7798 + 0.8504i are both used in the same "lane" of the matrix C, so this matrix is not circular. If I replace the values in that lane to all use "+", the eigenvalues are nearly identical
>> eig(C)
ans =
12.5649 - 0.8504i
15.3549 - 0.8504i
19.4343 + 0.8504i
19.6047 + 0.8504i
>> fft(C(:, 1))
ans =
19.4343 + 0.8504i
12.5649 - 0.8504i
19.6047 + 0.8504i
15.3549 - 0.8504i
Also, instead of multiplying with the matrix F, call the function fft instead. The behavior is the same, but it's much faster when the size of the matrix grows.
Nurulhuda Ismail
2019 年 5 月 1 日
Nurulhuda Ismail
2019 年 5 月 3 日
Christine Tobler
2019 年 5 月 3 日
In your PDF there are red circles around some numbers, but those numbers seem accurate up to a reasonable accuracy to me. Can you compute abs(C1 - C2)? I think the error will be very small.
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Linear Algebra についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!