第6章 变治法
预排序:用于下列场景,检验数组中元素的唯一性,查找数组中出现次数最多的元素,等等
高斯消去法:将矩阵变成一个上三角阵,然后从最后一个方程开始,反向替换得到原方程的解。
为了减少舍入误差,每次选取第i列系数绝对值最大的行,并且与当前行交换。
LU分解:高斯消去法得到的上三角阵为U,在消去过程中行的乘数构成了下三角阵L(假设不存在行交换的情况下)。比如,在消去第i列的时候,把第i行乘以a加到第j行上,那么U[j][i] = -a。如果存在行交换的话,那么L也要做相应的交换。可以证明 A=LU
那么方程组Ax=b就等价于 LUx=b。
假设y=Ux,那么Ly=b,因为L是下三角阵,所以容易求出y。
Ux=y,所以也容易求出x。
优点:只需做一次LU分解,然后对所有的b都可以求解。
计算矩阵的逆:AX=I
假设逆矩阵的第j列为Xj, I的第j列为ej。
那么原方程便等价于求n的方程组 A * Xj = ej
可通过LU分解来求。
计算行列式:高斯消去法的每一步,要么改变行列式的符号,要么将行列式乘上一个常量,要么不变。最终得到一个上三角阵,三角阵的行列式等于对角元之积。所以容易推得原行列式的值。……
预排序:用于下列场景,检验数组中元素的唯一性,查找数组中出现次数最多的元素,等等
高斯消去法:将矩阵变成一个上三角阵,然后从最后一个方程开始,反向替换得到原方程的解。
为了减少舍入误差,每次选取第i列系数绝对值最大的行,并且与当前行交换。
LU分解:高斯消去法得到的上三角阵为U,在消去过程中行的乘数构成了下三角阵L(假设不存在行交换的情况下)。比如,在消去第i列的时候,把第i行乘以a加到第j行上,那么U[j][i] = -a。如果存在行交换的话,那么L也要做相应的交换。可以证明 A=LU
那么方程组Ax=b就等价于 LUx=b。
假设y=Ux,那么Ly=b,因为L是下三角阵,所以容易求出y。
Ux=y,所以也容易求出x。
优点:只需做一次LU分解,然后对所有的b都可以求解。
计算矩阵的逆:AX=I
假设逆矩阵的第j列为Xj, I的第j列为ej。
那么原方程便等价于求n的方程组 A * Xj = ej
可通过LU分解来求。
计算行列式:高斯消去法的每一步,要么改变行列式的符号,要么将行列式乘上一个常量,要么不变。最终得到一个上三角阵,三角阵的行列式等于对角元之积。所以容易推得原行列式的值。……