本人大四即将结束,于2018年12月18日购《算法导论》这本书,慢慢看,第一阶段先主要理解各个章节说的算法都是什么意思,书上的课后习题先不做,用得上什么算法我再详细学习。这是官方课后答案的链接。
放在开头:没有好的算法,坏的算法之说,重点是针对不同的情况,针对不同的数据,针对不同的需求,去选择算法,改良算法。我的数学功底不强,太难的公式我看不懂,太高深的思想我理解不了,我主要以应用为主,不以解释数学公式为主。
求解线性方程组
对于这个方程A*x = b,其中A为n*n一个非奇异方阵,正常求未知数x,即A^(-1)*b。其中A矩阵的逆计算量非常大,本节提出一种LUP分解的方法去求x。
大概思路就是将A分解为三个矩阵相乘:A=P^(-1)*L*U。其中P是一个置换矩阵,L是一个单位下三角矩阵,U是一个上三角矩阵,前提A是非奇异方阵。通过进行2n次多项式四则运算,就能把x求出来。
后面还着重讲了怎么把LUP这三个矩阵分开(超级复杂,虽然看懂了,估计以后也会忘了)。
矩阵求逆
对于方程:A*X=b,可以通过LUP分解A矩阵,那样也可以求A的逆矩阵。
A^(-1)=(
*A)^(-1)*
。
主要技巧在于把A的逆矩阵问题转化成求
*A的逆,
*A是对称的,用分治算法求出对称正定矩阵的逆矩阵,最后再乘以
。
最小二乘逼近
根据对称正定矩阵的性质,可以应用于最小二乘法,用一个曲线拟合多个散点。
推导过程我没看懂,但大致的意思是,找一个多项式,使多项式和散点的差的高阶信息(二阶信息)为0。书中还举了一个例子。