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

查找实非对称矩阵的所有特征值的首选路径是balancelmhes,最后hqr。查找实非对称矩阵的所有特征值和特征向量的首选路径是balancelmheselmtranshqr2,最后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的。在LAPACKimtql1imtql2函数被组合成一个名为DSTEQR。F内循环的代码与Austin的笔记非常相似。

在做出这一贡献的几年后,奥斯汀回到了研究生院,成为我在新墨西哥大学的博士生之一。他的论文是关于从照片中得到的矩阵的奇异值的分布。




使用MATLAB®R2017a发布

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。