Passing two function handles to eigs

2 ビュー (過去 30 日間)
Daniferrito
Daniferrito 2017 年 1 月 30 日
コメント済み: Steven Lord 2017 年 1 月 30 日
I am trying to get Matlab to solve the generalized eigenvector problem. However, the two matrices dont fit in memory. The method eigs allows me to pass a function that multiplies A by a vector instead of A. However, it asks for B as a matrix and doesent allow me to do the same (it is what it says on the docs).
Is this because the algorithm it uses needs B for more things, or could I dig into the code and modify it to work as i want it? If it is something intrinsic about the algorithm, I would prefer to not spend too much time fishing in the code.
A is too big to fit in memory (that is why i want to use the function handle), and B is by definition the same size, so it doesent fit either.

回答 (1 件)

Steven Lord
Steven Lord 2017 年 1 月 30 日
If you have Parallel Computing Toolbox installed you may want to create the arrays as distributed arrays on a cluster then call the eig function (not eigs) to solve the generalized eigenvalue problem.
  2 件のコメント
Daniferrito
Daniferrito 2017 年 1 月 30 日
I will look into this possibility, but i would prefer not to have to use a cluster (especially if a single computer can do the job)
Steven Lord
Steven Lord 2017 年 1 月 30 日
How large are your A and B matrices?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by