![eb0bacc77fde70033c7b769745d1ebc6.png](https://img-blog.csdnimg.cn/img_convert/eb0bacc77fde70033c7b769745d1ebc6.png)
补充:
- 矩阵算子范数:设
,对于某种给定的向量范数
.矩阵的算子范数为
- 矩阵1-范数:
- 矩阵2-范数:
- 矩阵
-范数:
1.问题条件数:解方程组
(1)
(2)A右扰动,变成
(3)定理:上述条件数统称为矩阵的条件数,记为cond(A),可证
(4)条件数有如下性质
- 若A为非奇异矩阵
- 若D为对角矩阵:
- 采用2-范数:
- 若Q为正交矩阵
2.基本高斯消元(行变换不能交换两行)
(1)算法:消去过程
输入:A,
输出:上三角矩阵A,改变后的
for k = 1 to n-1
for i = k + 1 to n
c = - a_ik / a_kk
for j = k + 1 to n //该循环即为初等行变换,
a_ij = a_ij + c * a_kj //将矩阵的一行乘c,加到另一行上
end
b_i = b_i = c * b_k
end
end
注:这里采用原地工作的方式,上三角矩阵U = 计算得到的A
(2)带回过程(解方程
输入:
输出:
for i = n to 1
x_i = b_i
for j = n to i + 1
x_i = x_i - u_ij * x_j
end
x_i = x_i / u_ii
end
注:
- 其中计算
的公式为
- 上面两个算法要求A在高斯化简得过程中不会出现主元
的现象
3.高斯-若当消元法
思路:高斯若当消元法其实没有什么改变,仅仅是将
输入:A,B = I
输出:
for k = 1 to n
for j = k + 1 to n //对矩阵A的行归一化
a_kj = a_kj / a_kk
end
for j = 1 to k //对矩阵B进行相同的操作
b_kj = b_kj / a_kk
end
for i = 1 to n (i != k)
for j = k + 1 to n // 对A进行行变化
a_ij = a_ij - a_ik * a_kj
end
for j = 1 to k //对B进行相同的行变化
b_ij = b_ij - a_ik * b_kj
end
end
end
注:同样要求在高斯消元过程中
4.消去矩阵:
性质:
-
,可以看作初等矩阵经过n - k次行变换的结果
-
可以看作A在进行高斯消元时,到第k行的行变换过程
- 消去矩阵为单位下三角矩阵,且为非奇异矩阵
- 消去矩阵
的逆
-
也为单位下三角矩阵,他们的乘积为每个矩阵元素的”并“
5.LU分解
推导:经过行列变化
定理:
算法:高斯消去过程进行LU分解
输入:A
输出:A(其中包含了L,U矩阵)
for k = 1 to n - 1
for i = k + 1 to n
a_ik = a_ik / a_kk //计算L中元素并储存在A中
for j = k + 1 to n
a_ij = a_ij - a_ik * a_kj
end
end
end
直接LU分解推导:
(1)A第1行:
(2)A第1列:
(3)A第k行:
(4)A第k列:
算法:LU直接分解法
输入:A,n
输出:A(L,U矩阵储存在A中)
for k = 1 to n - 1
for i = k + 1 to n //这两个嵌套循环计算L矩阵第k列
for j = 1 to n
a_ik = a_ik - a_jk * a_ij
end
a_ik = a_ik / a_kk
end
for j = k + 1 to n //计算U矩阵的第k + 1列
for i = 1 to k
a_k+1,j = a_k+1, j - a_k+1,i * a_ij
end
end
end
5.LU分解用途:
解方程
其中
单位下三角方程组求解
输入:单位下三角矩阵L,
输出:
for i = 1 to n
y_i = b_i
for j = 1 to i - 1
y_i = y_i - l_{ij} * y_j
end
end
注:
- 实际计算公式为
- 用LU分解计算多个方程组
时,只用分解一次复杂度为
,之后每次计算复杂度都为
;但是高斯消元每次计算都有
的复杂度
6.基本高斯消元的充要条件: