矩 阵 条件 数 的判 别 及 处理
虞 丽 生
摘 要
由于计算机的出现 , 求 解大 型 线代数 方程组的问题 , 能够得以解决 , 但经常会碰到其
系数阵的微小变动会引起解答的极大变动 , 甚至面目全非 。 这种系数阵的病态程度可以用条
件数来衡量 。 文中引用了条件数的概念 ,
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
了产生条件差的原因及预防
措施
《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施
, 并介绍了几
种求条件数的方法 。
难 , 因此就有必要用条件数来衡量矩阵的病引 言 态程度 。
在生产实践上 , 在企业管理上 , 经常要碰到许多大型的求解线代数方程组的问题 , 一 条件数的概念
其系数阵总是以抽样统计数据或以实验数据 上述的所谓 “病态矩 阵” 是一个含糊不
为基础 。 统计技术的高低 , 实验 仪 器 分 辨 清的概念 , 其实应该说是对什么问题来说是
率的高低等等 , 都将给数据 带 来 误 差 � 而 病态的。 例如一 个� �� � � � � 矩 阵 , 其 元 素
这种不可避免的误差 , 有时甚至是极微小的 � �� � � 为
变动 , 也会导致解答的不确定性 。 这时就称 坑 � � � � 、 , 一 , �� , �� � , �� 一 � �
这系数阵为 “病态矩阵” 。 对于这种 “病态 这种矩阵对于求特证值 来 说 是 良态 的 ,
矩阵” 一般的算法很难得出理想的结果 。 我 而对于求解线代数方程 组 和 求 逆 来 说 ,
们知道 , 算法对误差的传播和积累有很大影 却是相当病态的 。 对于 � � 一 。 , 很明显其
响 , 为了减少这种影响 , 算法的选取是很重 解为 � 一 � � , �� 二 � � � , 但 � 阶 � �� �� � �
要的。 这就是通常所说的算法的 稳 定 性 问 矩 阵的条件数 � � � � � 二 � “ · ”� 。 当 � � �
题 。 另一方面 , 方程组本身对误差的积累也 时 , 用直接法求解连一位有效数 字 都 得 不
起着极重大的作用 。 系数阵� 的条件的好坏 到 。
至关重要 。 如果问题是病态的 , 那么即使选 “病态 ” 是系数阵本身的特性 , 与所用
择良好的方法去计算 , 也不能指望有好的结 的计算工具和计算方法是无关的 , 当然它是
果出现 。 因此判别原始数学问题是否病态是 通过一定的计算后才能表现出来 。 因此 , 要
十分重要的。 怎样有效地判别矩阵是病态矩 说明是对某一 问题是病态的或 良态的 。 本文
阵� 近几十年国内外许多从事计算数学的学 所指的 “病态” 是指对于解线代数方程组而
者都在进行摸索研究 , 得知条件数与 “矩阵 言的 。
病态 ” 有密切关系 。 “条件数” 这一名词在 � � 条件数的提出
五十年代初出现 , 有些线性方程组 , 虽然理 对于线代数方程组 � � 一 �
论上有解 , 但求出较好的近似解却 十 分 困 其系数阵 � 与右端项 � 的误差都将影响
计算结果 。
例 � � 一个系数阵为实对称阵的线代数
方程组
� �
� � △�
可见量
� � � � · � � ��� � ��
� � · � � 一 ’ �关系到解的精
、、���� �!刀�比口幼�八��住���任
��,�
������� 气�
一一�了� �����了户
、、�、、��� !�∀���口���孟月任了�口
,自一�
������������ !∀∀‘、龟
系数阵 , � 一 � � � , 其中
� 一 � � 晶卜 仁 � � � � � � 〕
��、��尸��
�卫一了����一一��
由一般的条件数判别法 � 见本文后面的
第二种判别法 � 知 �
’厂 。 个 。 一 “ � 。 ““� ‘� ’一 � ‘� � � ’� 一践号朴一 “‘“· �
显见此线性方程组之解为 � � 〔� � � 〕� 。
由于条件数太大 , 用数值稳定性较强的乔里
斯基法求解还能得出准确的结果 。 这时求得
的解为 � � 〔� � � 〕� 。 若对 � 〔� � 〕元
素加入� � �� 的摄动量 , 即
厂 � � � � � � �
� 一 � � � ·”‘ � �
‘ � � � � � � � � � � � � �
这时 , 即使用数值稳定性较强的乔里斯
基法 , 也得不到一个较好的结果了 。 这时解
答为 �
� � 〔一 � � � � � � � � � � 一 � � � � �� 〕� 。
可见条件数的大小在一定程度上表证了
求解该方程组过程中舍入误差影响的大小 。
为此 , 就有必要弄清楚当系数矩阵和 自由项
有一个微小的变化时 , 方程组的解是如何变
化的。 用△ � 、 △ � 、 △ � 分别表示系数阵
� , 右端向量 � 及解 � 的微小变化 , 则可以
有如下估计 �
考虑到右端项误差的影响 , 解的相对误
差可如下估计 �
确性 , 如其值很大 , 则解就可能很不精确 ,
甚至面目全非 � 见例 � � 。
因此 , 一般可用误量来表示矩阵 � 的条
件的好坏 , 记作 � � � � � � � � · � � 一 ’ � ,
称为矩阵� 的条件数。
� � 范数与条件数
讨论条件数与范数有关 , 这里有必要介
绍一下关于范数的概念。
现在 , 一般所说的范数 � � �
� � 一 � , � , �� � , 对于一个 � 维向量 �
来说 , 其 � � � �范数定义为
� � �
常用的范数是欧氏范数 , 即�
士、,,��
�勺�
而� � � 阶矩阵� 的 � � � � 范数分别
为 �
�� � �� , � ��
簇
�
� � 互 � � � ,�《 � � � �
�� � �� ! � � �
� 《�
�
叉 � � � ��簇
� �� � � 一 � � , � 的最大特征值 � 士
� � � � 又称谱范数 , 在条件数中 用 的
范数一般都是谱范数 , 所以� �� �又称谱条
件数 。
� �� · �� � 一 ’ �� � � ��� � �毛
�一��一�一�么一��
考虑到系数阵误差的影响 , 解的相对误
差可如下估计 �
二 、 条件数的判别及病态情况的改替
条件数是一个大于等于 � 的数 , 条件数
愈大 , 计算机字长愈短 , 舍入误差的影响也
就愈大 。 所以正确地估计条件数 , 并针对病
态情况采取有效预防措施 , 对于进行误差分
析是十分必要的。
条件数� � � � 一 �� � �� · �� � 一 ‘ �� , 对
于此式是很难直接用来计算的。 因为对于病
态阵来说 , 求 � 一 ‘本身就包含着极大的不确
定性 , 因此就有必要提出一些估计算法 。
� , 对于一般的实数矩阵来说 , 其谱条件
数是
� �� � � �� � �卜 】� � 一 ‘ �� � 入� � 入 ,
入。 � 与入, “ 分别是 � � � 的最大与最小特
征值。 若系数阵是对称正定阵 , 则
� �� � 一 �入。 � � �入, �
�入。 �与 � 入, �分别为 � 阵的按模最大与
最小特征值 。 对于矩阵阶数不高的情况下 ,
可以用��� � �� 法求得矩 阵的所有特 征 值 来
求得比值。 对于高阶矩阵 , 就可用幂法与反
幂法分别求得最大与最小特征值。 取比值而
得之 。 对于偏于保守的算法 , 也可用 � � � �
代替 �入。 �。
� � 关于� ��的条件数 , 有 下列 简 单 结
论 �
� 设 � � � 〔� , , … , � � 〕, � � � � � � � �
� 是 � � 阵的列向量 。
则 � � � � � � � � � � 、 , � 。 即 � 愈大 ,
� �的条件愈坏 。
� 设 � � 〔 � � , … , � � 」
距离 。 则 。 � � � �
� �
� � � 下�
为 � 〔� �� “ , � “ �的。一条件数 。 这时 , 对
于一个被判断的矩阵� 。
�一
若
则有
� 厄� , 而又另设计一个相近的� 〔 � ,
� � 一 � � � � � � �
, � � � �� � 一 � � �
�� � ����
油�一� 、 , ” � 一 � “ �� 城�《 。 � � � � ! ∀#∃ · fiA 一 ’ co可作为一种估计 。例 2 : 有一个矩阵A ,厂1 3 1。 0 0 0 1
A ~ } 3 2 3
、 、
1 3 1
/ 1 3
}今 B 一 } 3 2
\ 1 3
贝臼}} A 一 B }} co = 1 0 一 心 ,
P ( A
,
L ) 《 II A 一 B 11
这是一个对称阵 。
} A {
显然A 〔L ,
、||||!
1 \
}
3 { B 〔 L
1 ,
} }
A
} co
=
8
= 1 0
一 4
则 K (C TC )= 】1 1 a X
ITI I n 卜)吧八 ‘ 】了1 1 1 1a x {} a 10 1 一 8 x 1 0
即C TC 的条件数不小于列向量系的最长
与最短模之比的平方 。
3 一种。一 · 条件数的估计至今常用的矩阵条件数有
K (A )一 11 A 11 }! A 一 ’ ]1
及 P (A ) ~ m ax !入】/ m in !入1
为了在求条件数中不涉及 A 一 1 及特征值 , 提
出了条件数 。 ( A )一种估计 。
即 P (A )《 。 ( A )《 K (A ) 。
当A 是实对称阵时 , 等式成立 , 即:
P (A )一 。 (A )一 K (A ) 。
若用A ( C “ , C N ) 表示一切 N X N 的矩
阵的全体 , 则集合 L 就是
L 、 一 王A 〔A (C N , C N ) , } A { = o } 。
又用 P ( A , L ) 表示算子 A 到集合 L 之间的
.’. K ‘“ ,一 ‘“, 《{、弋 10一 4
可见 A 阵的条件数很大 , 达到 8 x 10 心以
上 。 如果这是一个线代数方程组的系数阵 ,
若有一点小小的摄动 , 就会引起解的相当大
的误差 。
四 、 如何提高解答的精确度
由以上分析可以得 知 , 对 于 这 种 “病
态 ” 问题 , 其解答的精确度是 比较差的。 条
件数越大 , 精确度越差 。 为了提高精度 , 首
先要搞清楚导致条件差的原因 , 针对不同的
情况 , 区别对待 。
1
. 减少引起病态的因素
对于实验测量获得的数据来说 , 原始数
据的摄动是引起病态的直接原因 。 所以 , 对
63
于原始数据的获得要仔细 、 谨慎; 对于变动
较大的个别数据要进行平滑处理 , 使采样值
尽量能与真值相符 。
2
. 对于矩阵的行列式的值接近于零或某
些行 (或列 ) 近似的线性相关时 , 所导致的
病态情况 , 就要设法进行相关性分析 , 去掉
相关因子 。
3
. 确实方程本身是病态的则 可 如 下 处
理:
¹ 力求用稳定性好的计算方法 , 如全主
元消去法 、 乔里斯基法等。 针对不同
的特殊问题 , 用不同的计算方法 。
º 对矩阵的行 ( 或列 )或者行列 , 同时
适当引入比例因子 。 对于对称阵最好
是行与列同时引入比例因子 , 以不破
坏其对称性 。 这样可使元素间的元素
数量级不致相差太大 , 以改善结果的
精确度 。
» 迭代法 。 在每一次求解后均求出其余
量及修正量 , 使逐渐逼近准确解 。 对
于系数阵是对称阵的情况下 , 就用乔
里斯基法分析 , 逐步迭代。
¼ 采用双字长 ( 或多字长 ) 提高计算的
每一步的精度 , 以减少舍入误差 。
4. 若是采取了许多办法还是得不到近似
解 , 就必须设法考虑其物理模型是否能对方
程的形成作一改进 。
五 、 结论
条件数决定了系数阵的病态的严重情·物
况 。 对于大条件数的矩阵 , 就很难希望能得
到一个精确的解答。 因此首先要尽量采取各
种措施使条件数下降。 同时在算法上采用稳
定性较强的算法 。 本文所述理论对于一般的
实数矩阵完全适用 。
参考文选
J.H .W ilk in so n ,’ E r r o r A n a 1 Y s i s
o f D i r e e t M e t h o d s o f M a t r i x I n 一
v e r ‘i o n ” j
.
A C M
。 3 ( J u l丫 196一)
G 。 W 。 5 t e w a r t a I n t r o d u e t i o n t o
M a t r i x C o m p u t a t i o n s ” 1 9 7 3
冯康 《数值计算方法 》 。
南京大学数学系 《最优化方法 》。
匡蛟勋 《线性算子的co—条件数 》 。高校计算数学学报 ( 1980 .1 . ) 。