发布网友 发布时间:2022-05-16 04:34
共1个回答
热心网友 时间:2023-10-11 11:25
概况
这是一段Lanczos算法的程序。Lanczos算法是一种将矩阵通过正交相似变换变成对称三对角矩阵的算法,可用于求方阵的特征值和特征向量或一般矩阵的奇异值分解,以20世纪匈牙利数学家Cornelius Lanczos命名。
百度百科上关于该算法的介绍要求是对称阵,但这与程序不符,也未见其它可信的资料支持这个说法。另一方面,本程序要求输入必需是方阵,并不支持一般矩阵。
输入输出
程序的输入输出参数如下:
A代表任意一个需要三对角化的矩阵;
b是任意一个向量,且b的行数与A的列数相同因为要用到v = A*q;
nmax是你想要得到的矩阵的大小,例如nmax=12,最后得到12*12的三对角矩阵。
输出T是一个三对角矩阵。
调用实例
>> A = rand(4);
参考
关于算法的说明可以参考英文维基百科的相关条目:en.wikipedia.org/wiki/Lanczos_algorithm。