Wilkinson和Reinsch线性代数手册
ACM编程语言特别兴趣小组(SIGPLAN)预计将在2020年举办关于编程语言历史的系列会议中的第四次会议HOPL-IV。论文初稿将于2018年8月前提交。这么长的时间让我有机会写一篇详细的MATLAB历史。我打算分章节写这篇论文,如果有的话我会在这个博客上发表。
第一版MATLAB的数学基础开始于由j.h.威尔金森和C.赖因施编辑的一卷,自动计算手册,第二卷,线性代数该书于1971年由德国著名出版社施普林格出版社出版。
内容
特征值
数学术语“特征值”是一种语言混合体。在德语中,这个词是“eigenwert”。一本网络词典将其翻译为“内在价值”。但在使用了“特征值”和“潜在根”等术语几十年后,数学家们已经放弃了翻译整个词的尝试,通常只翻译后半部分。
的特征值问题对于一个给定的矩阵$ a$的任务是找到标量$\ λ $,可能还有对应的向量$x$,这样
$$Ax = \ λ x$$
区分$A$是对称的情况是很重要的。后线性方程问题,
$$Ax = b$$
特征值问题是数值线性代数中最重要的计算问题。
50年前,也就是20世纪60年代,数值线性代数的发展水平还没有为求解矩阵特征值问题提供可靠、有效的方法。软件库有各种各样的方法,其中许多都是基于多项式根查找器的。
吉姆·威尔金森讲了一个关于有两个这样的子程序的故事,一个用的是Bairstow的方法,另一个用的是Laguerre的方法。他无法决定哪一个是最好的,所以他把它们放在一个程序中,首先尝试Bairstow的方法,然后打印一条信息,如果Bairstow失败了,就切换到Laguerre。在国家物理实验室频繁使用了几个月之后,他从未见过一个Bairstow失效的案例。他写了一篇论文,推荐了Bairstow的方法,很快就收到了一位读者的来信,声称他有一个Bairstow无法处理的例子。威尔金森用他的程序尝试了这个例子,发现了一个bug。程序没有打印出要切换到拉盖尔的信息。
自动计算手册
1965年至1970年间,威尔金森和他的18位同事在b施普林格杂志上发表了一系列论文Numerische Mathematik。这些论文提供了用Algol 60编写的程序,用于解决不同版本的线性方程问题和特征值问题。这些都是研究论文介绍数值稳定性的结果,实现的微妙细节,在某些情况下,新方法。
1971年,这些论文被收集起来,有时经过修改,由威尔金森和赖因施编辑成册。本书标志着第一次出现是一个有组织的算法库,用于密集的特征值问题,存储矩阵,我们今天仍然在MATLAB中使用。威尔金森和其他作者揭示了尽可能使用正交变换的重要性。J. Francis新发现的QR算法和H. Rutishauser的相关LR算法的有效性直到最近才得到认可。
内容
Algol 60程序是每一章的重点。这些代码仍然是现代数值线性代数重要思想的清晰、可读的参考。卷的第一部分是关于线性方程的问题;第二部分是特征值问题。第一部分有40个步骤,第二部分有43个。
这是第二部分的程序列表。过程名中的后缀2表示它同时计算特征值和特征向量。“bak”过程对特征向量应用约简变换。
许多过程使用简化形式,对于对称或厄米矩阵是三对角线,对于非对称矩阵是海森伯格(上三角形加一个次对角线)。由于Algol没有复数数据类型,所以复数数组由实数数组对表示。
对称矩阵
三对角线化简 | |
---|---|
Tred1, tred2, tred3, trbak1, trbak3 | 正交tridiagonalization。 |
乐队 | |
bandrd | Tridiagonalization。 |
symray | 特征向量。 |
bqr | 一个特征值。 |
三对角 | |
imtql1, imtql2 | 所有的特征值和向量,隐式QR。 |
tql1, tql2 | 所有特征值和向量,明确的QR。 |
ratqr | 特征值少,有理QR。 |
平分 | 几个特征值,等分。 |
tristurm | 几个特征值和向量。 |
一些特征值 | |
ritzit | 同时迭代。 |
雅可比方法 | |
雅可比 | 雅可比方法。 |
广义问题,Ax = \lambda Bx | |
Reduc1, reduc2, rebaka, rebakb | 对称的A,正定的B。 |
非对称矩阵
还原到海森伯格 | |
---|---|
平衡,balbak | 平衡(扩展) |
Dirhes, dirbak, dirtrans | 初级的,积累的内源。 |
榆木,榆木,榆木 | 小学。 |
Orthes, ortbak, ortrans | 正交的。 |
乐队 | |
unsray | 特征向量。 |
Hessenberg | |
hqr, hqr2 | 所有的特征值和向量,隐式QR。 |
invit | 几个特征向量,逆迭代。 |
范数减少 | |
特征 | 特征值。 |
复杂的矩阵
comeig | 范数约雅可比矩阵。 |
comhes, combak | 化为海森伯格形式。 |
comlr, comlr2 | 复LR算法。 |
cxinvit | 逆迭代。 |
首选路径
查找实对称矩阵的所有特征值的首选路径是tred1紧随其后的是imtql1。查找实对称矩阵的所有特征值和特征向量的首选路径是tred2紧随其后的是imtql2。
查找实非对称矩阵的所有特征值的首选路径是balanc,elmhes,最后hqr。查找实非对称矩阵的所有特征值和特征向量的首选路径是balanc,elmhes,elmtrans,hqr2,最后balbak。
QR vs. QL
“QR”和“QL”是同一算法的左右或前后版本。该算法通常被描述为将矩阵分解为一个正交因子Q和一个上三角形或右三角形因子r。这导致了QR算法。但是由于分级矩阵和终止循环的原因1而不是n - 1,手册的作者决定使用左三角形和QL算法。
历史上的注意
当报纸从Numerische Mathematik收集成1971年的自动计算手册,第二卷,线性代数,几乎都是原封不动的重印。但是,尽管它的脚注说,贡献II/4,隐式QL算法,从未出现在杂志上。这篇论文是由一篇半页的论文合并而成的奥斯汀Dubrulle以及R.S.马丁和威尔金森的早期贡献。Dubrulle能够减少内循环的操作次数。
手册贡献II/4的作者被列为A. Dubrulle, R.S.Martin和J.H.Wilkinson,尽管他们三人实际上从未一起工作过。我们对此给予了应有的肯定,但恐怕我们失去了一段有趣的历史。
迪布鲁勒版本的隐式三对角QR算法在今天仍然很重要。在以后的文章中,我将描述手册是如何导致EISPACK、LINPACK和LAPACK的。在LAPACKimtql1和imtql2函数被组合成一个名为DSTEQR。F内循环的代码与Austin的笔记非常相似。
在做出这一贡献的几年后,奥斯汀回到了研究生院,成为我在新墨西哥大学的博士生之一。他的论文是关于从照片中得到的矩阵的奇异值的分布。
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。