1.矩阵条件数的定义
cond
(
A
)
=
∥
A
∥
∙
∥
A
−
1
∥
\operatorname{cond}(A)=\|A\| \bullet\left\|A^{-1}\right\|
cond
(
A
)
=
∥
A
∥
∙
∥
∥
A
−
1
∥
∥
,
其中
∥
⋅
∥
\|\cdot\|
∥
⋅
∥
代表的是矩阵范数,那么什么是矩阵范数呢
1.1 矩阵范数的定义
矩阵范数需要满足以下三点要求
a
.正定性 ||A||≥0,only when A为0矩阵,||A|| = 0
b
.齐次性
||aA||=|a| ||A||;
c
.三角不等式
||A+B||<= ||A|| + ||B||
如果除了满足上面三点要求外,还满足第四点要求,则称为服从乘法范数(sub-multiplicative norm)
d
.相容性
AB||<=||A|| ||B||.
1.2 矩阵范数举例
这里举矩阵二范数的例子:
矩阵A的2范数就是 A的转置乘以A矩阵的结果的特征根最大值的开根号;
下面是matlab代码求证
a=[ 1 3 4;2 5 6;7 9 8];
[x,y] = eig(a'*a); % a' 为矩阵a的转置,x为a'*a的特征向量,y的对角为向量的各个特征值
ans1 = sqrt(max(diag(y))) % 求a'*a的最大特征根的开跟
ans2 = norm(a,2) % 直接使用matlab内置的函数去求矩阵a的二范数
2 矩阵条件数的意义
条件数可以判断线性方程AX=b时,b的变化对解X的影响。如果b微小变化或者不变化,但是X却变化很大。条件数小,则该线性问题是良态的;如果条件数很大则说明该问题是病态的。
3.矩阵条件数matlab代码
a=[ 1 3 4;2 5 6;7 9 8];
ans1 = cond(a)
ans2 = norm(a)*norm(inv(a))
总结:
以上是对条件数和矩阵范数的一些理解和代码验证~