矩阵运算
LUP分解求线性方程组
L、U、P是三个矩阵,满足PA = LU。其中L矩阵是一个单位下三角矩阵,U是一个上三角矩阵,P是一个置换矩阵。
我们要求解的是A x = b
正向替换
正向替换的目标是通过Ly = Pb来求y
我们可以使用一个
可以求出 $y1 = b{\pi [1]}
然后可以求出$y1, y_2…
反向替换
反向替换目标是通过 Ux = y求x
与之对应,过程不再细说。结果是$xi = ( y_i - \sum{j=i+1}^{n} u{ij}x_j ) / u{ii}$
LU分解
我们计算出 A = LU,则称这两个矩阵是A的一个LU分解
其中v是n-1的列向量,
最后一步是因为
inform7
for(int i=0; i<n; i++) |
他有一个限制条件u[i][i]不能是0,否则会出现除0错误
LUP分解
为了保证a[i][i] != 0, 我们可以使用该列中最大元素a[k][1]替换a[1][1],为了使方程组还成立,我们可以将第1行和第k行互换,等价于用一个置换矩阵Q乘在A的左边
和上面类似,就是$a{11}
矩阵求逆
矩阵求逆也可以使用LUP分解 我们可以令 AX =
我们可以把它看成n个
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment