我想将 Trefethen 教授的 Eigtool用于伪谱,但我有一个广义特征值问题要解决:
似乎 Eigtool 只接受一个矩阵作为输入。我的机箱也可以使用 Eigtool 吗?即有两个矩阵作为输入?另外,我的矩阵很大,但很稀疏,所以我认为不可能反转它们。
就我而言是单数的,不可逆的。
我想将 Trefethen 教授的 Eigtool用于伪谱,但我有一个广义特征值问题要解决:
就我而言是单数的,不可逆的。
Mark Embree 教授热情地回复了我的电子邮件。我报告他建议做的事情:
“对于大规模的问题,这是我通常推荐的(注意,这并没有对能源规范做出特殊规定):
使用迭代方法(如 MATLAB 中的“eigs”)计算 inv(K)*M 的 d 维主导不变子空间。假设 V 的列跨越这个子空间(通常,V 的列将是与 inv(K)*M 的最大特征值相关联的特征向量,希望对应铅笔的最右边的特征值 (K,M))。
让 U 的列形成 V 的正交基,例如,在 MATLAB 中,U = orth(V)。
定义 Ginv = inv(U'*inv(K) M U)。这将是一个 d-by-d 矩阵。
计算 Ginv 的伪谱。这些伪谱将包含在全尺寸问题的伪谱中,如果您将 V 跨越与铅笔的所有有限特征值相关联的不变子空间,则会出现该问题。尝试使用足够的维度“d”值,以确保伪光谱已经收敛在光谱的最右边。
[...] 通常我将 K 和 M 存储为稀疏矩阵,然后使用 K\M 来计算 inv(K)*M。”
就我而言,它似乎有效。我希望它对其他人也有用。
也许,你设置?,那么如果我们需要在 Eigtool 中实现矩阵-向量积:
,是任何给定的向量。
然后你可以通过两个步骤来完成:
(1) 计算矩阵-向量积:; (2) 求解线性系统.
我认为您可以在 Eigtool 中修改一些行。