2.6 条件数与病态方程组
研究生数值分析(9)矩阵的条件数与病态线性方程组

X A 1 b 即 X A b 于是有
③
另一方面,由①得
b A X
且 X 0
故
A 1 X b
④
由③与④有
X
X
A
1
A
b
b
⑤
表明解的相对误差不超过右端向量b
的相对误差的 A1 A 倍。
(2)仅有小扰动δ A(设 A+ δ A 仍可逆) ~ 的解为 X X X 设方程组 ( A A) X b 即
1 1 A 1 1.0001
10001 10000 A 10000 10000
1
及其逆矩阵
在行模意义下的条件数
Cond ( A) A1
A 20001 2.0001 40004
因此称方程组 x1 x2 2 x1 1.0001x2 2 为病态方程组。
x1 0.9999 x2 1.9999
②
的解为
x1 1; x2 1
它们的解变化很大,这样的方程组称为“病态”
方程组。 下面,我们给出方程组“病态”,“良态”
概念及其衡量标准,并介绍判断近似解可靠性方
法。
1 矩阵的条件数与线性方程组的性态 由于方程组AX=b系数矩阵A与右端向量b 的初始数据微小变化引起解的很大变化,这样
§3 矩阵的条件数与病态线性方程组
判断计算方法的好坏,可用算法是否稳定、 解的精确程度以及计算量、存储量的大小来衡量。 然而,同一方法用于不同问题,效果却可以相差 很远。 例如 方程组
x1 x2 2 x1 1.0001x2 2
x1 2; x2 0
①
解为
python病态方程的条件数

病态方程(ill-conditioned equation)是指一个数学方程在求解过程中,由于其系数矩阵的条件数非常大,导致求解过程不稳定,解的结果也容易受到误差的影响。
在Python中,可以使用NumPy库中的`cond()`函数来计算一个矩阵的条件数。
条件数的计算公式为:cond(A) = ||A|| * ||A^(-1)||,其中A是一个矩阵,A^(-1)是A的逆矩阵,||A||表示矩阵A 的范数。
以下是一个Python代码示例,演示如何计算一个矩阵的条件数:
```python
import numpy as np
# 定义一个矩阵A
A = np.array([[1, 2], [3, 4]])
# 计算矩阵A的条件数
cond_value = np.linalg.cond(A)
print("The condition number of matrix A is:", cond_value)
```
在这个例子中,我们定义了一个2x2的矩阵A,并使用`np.linalg.cond()`函数计算了矩阵A的条件数。
如果条件数非常大,说明这个方程是病态的。
对病态方程组的处理方法研究

对病态方程组的处理方法研究蓝醒龙(广西民族大学数学与计算机科学学院03数本2班,530006)摘 要: 对病态线性方程组解法研究是数值计算方法的一个重要研究课题。
本文分析了病态方程组的特点,介绍了几种有效的解法。
关键词: 病态线性方程组;条件数;预处理;迭代Studying The Algorithm For Solving Ill-conditionedSystem Of EquationsAbstract : Studying the algorithm for solving ill-conditioned system of equations is an important issue. This paper analyses the equations characteristic, and introduces several effective algorithms.Key words :ill-conditioned system of equations; condition number; pretreatment; iteration1 问题的提出一个线性方程组 A X b =,若右端向量b 或系数矩阵A 的微小变化就会引起方程组的解发生很大的变化,则称A X b =为病态方程组。
方程组的系数矩阵A 的条件数()1C o n d A AA -=刻画了方程组的性态,若()1C ond A ≥,则称A X b =为“病态”方程组;若()Cond A 相对较小,则称A X b =为“良态”方程组。
良态方程组用GAUSS 消去法和JACOBI 等简单的迭代法就可以得到比较好的计算解,而对于病态方程组,一般的直接法和迭代法会有较大的误差,甚至严重失真。
所以,在解方程组时,有必要先对方程组的性态进行研究,采用相应的算法,才能得到比较精确的计算解。
利用方程组的条件数来判断就是一个很好的办法。
数值分析希尔伯特病态线性方程组

病态线性代数方程组的求解理论的分析表明,求解病态的线性代数方程组是困难的。
考虑方程组Hx = b 的求解,其中H 为Hilbert 矩阵,n n ij h H ⨯=)(,11-+=j i h ij ,n j i ,...,2,1,=1. 估计Hilbert 矩阵2-条件数与阶数的关系;2. 选择问题的不同维数,分别用Gauss 消去法,Jacobi 迭代,GS 迭代和SOR 迭代求解,比较结果;3. 讨论病态问题求解的算法。
解: 1、取Hilbert 矩阵阶数最高分别为n=20和n=100。
采用Hilbert 矩阵的2-条件数作为实验的比较对象,画出的曲线如下图所示:lg(())n cond H n从图中可以看出,在n ≤13之前,图像接近直线,在n >13之后,图像趋于平缓,在一定的范围内上下波动。
为了比较图像的线性部分,作出一条直线与已知曲线进行比较。
比较直线的关系式为:833.1519.1))(lg(-=n H cond n ,结果下图所示。
nl g (c o n d (H n ))lg(cond(Hn))~n 关系图从图2中可以看出,当n 较小时,n H cond n ~))(lg(之间近似满足线性关系。
当n 继续增大到100时,n H cond n ~))(lg(关系图下图所示:从图中可以看出,图像的走势符合在n=20时的猜想,在n 大于一定的值之后,图像趋于平缓,且在一定范围内震荡,同时又有一定上升趋势,但上升速度很慢。
2、选择不同的阶数n ,设方程组的精确解为xz=(1,1,…,1)T进行计算,用四种方法解x_Guass1、x_Jacobi1、x_GS1、x_SOR1对比表如下nl g (c o n d (H n ))lg(cond(Hn))~n关系图nl g (c o n d (H n ))lg(cond(Hn))~n 关系图表所示。
Gauss 消去法求解:选择问题的阶数为3~8时,用Gauss 消去法求得的解与精确解一致,当阶数为9~14时,解开始出现偏差,而且n 越大,偏差越大。
2范数和条件数病态方程组

由于
( I A)( I A)1 I ( I A)1 A( I A)1 I
( I A)1 I A( I A)1
在最后一式两端取范数,得
( I A) 1 I A ( I A) 1
1 A
( I A) 1 I 1.
练习:计算矩阵
1 2 A 3 4 的各种范数.
答案 : 6,7, 15 221 , 30
§2.3 矩阵的条件数与病态线性方程组
2.3.1
矩阵的条件数与线性方程组的性态
给定线性方程组 Ax =b,现在考察,系数矩阵 A 和常数列 b 有了微小变化 △A,△b ,它如何影 响解向量 x,即,解向量 x 的变化量 △x 何样? 由于A (或 b)的元素是测量得到的,或者是 计算的结果,在前种情况下, A (或 b)常常带有 某些观测误差,在后种情况下, A (或 b)包含舍 入误差,因此我们处理的实际矩阵是A + △A (或 b+ △b )。
n×n矩阵 A,式(1.2)中定义的函数是一种矩阵范 数,并且它与给定的向量范数是相容的.
A max Ax
单位球上的 最大像值
x 1
(1.2)
证明 先证相容性. 对任意的n×n矩阵A和n维非零向
量 y. 由于
y 1 max Ax A Ay . x 1 y y
所以有
Ay y max Ax y A ,
考察方程组 Ax = b, 当 A 或 b 有微小扰动时, 对解的影响, 首先看一个例子:
1 x1 2 1 , 1 1.0001 x2 2 1 x1 2 1 x 1 1.0001 2.0001 2
条件数:线性代数中的条件性质与计算

条件数在矩阵分解中的应用
条件数在矩阵分解中的应用
• 可以使用条件数来评估矩阵分解问题 的稳定性与可靠性 • 可以使用条件数来调整矩阵分解问题 的算法参数,提高问题的求解效率
条件数在矩阵分解中的应用示例
• 可以使用条件数来评估矩阵分解问题 的解的稳定性与可靠性 • 可以使用条件数来调整矩阵分解问题 的算法参数,提高问题的求解效率
条件数的定义
• 对于一个非奇异矩阵A,条件数cond(A)定义为:|A| / |A^(-1)|,其中|A|表示矩阵A的行列式, |A^(-1)|表示矩阵A的逆矩阵的行列式 • 如果矩阵A是可逆的,那么条件数cond(A)等于1 • 如果矩阵A是奇异的,那么条件数cond(A)大于1
条件数的计算方法与示例
• 行向量 • 列向量 • 矩阵 • 线性方程组 • 特征值与特征向量 • 对角矩阵
• 条件数是衡量线性方程组解的稳 定性与可靠性的指标 • 条件数可以用来分析线性方程组 的病态性 • 条件数在计算机科学、工程学等 领域有重要应用
条件数的定义与性质
条件数的性质
• 条件数具有非负性,即cond(A) >= 0 • 对于任意非奇异矩阵A和B,有cond(AB) <= cond(A) * cond(B) • 对于任意非奇异矩阵A,有cond(A^T) = cond(A) • 对于任意非奇异矩阵A和B,有cond(A + B) <= cond(A) + cond(B)
条件数:线性代数中的条件性质与计算
01
线性代数的基本概念与条件数定义
线性代数的基本概念及应用背景
线性代数是研究向量、矩阵及其运算 的数学分支
线性代数的基本概念
条件数的定义与条件数 的应用背景
扰动误差分析

第2章 线性代数方程组数值解法I :直接法考虑方程组 b Ax = (n n R A ⨯∈非奇异,n R b ∈ 且0≠b ) (2.6.1) 设A 有误差 b A ,δ有误差b δ,则因此引起解x 有误差,即有扰动方程组 b b x x A A δδδ+=++))((现在来研究如何通过A δ和b δ对x δ的影响作出估计。
定理2.6.1 设 方程组(2.6.1)中b A ,分别有扰动A δ,b δ,因而解向量有误差x δ;又A δ足够小,使得 11<-A A ,则有误差估计式 )(111bbAAAAA A xxδδδδ+-≤--证明由 b x A x A x A δδδδδ=++))(()( ))(()(111x A A x A A b A x δδδδδ-----= 两边取范数有x A A x A A b A x δδδδδ111---++≤得到x A A b A x A A x δδδδδ111---+≤- )()1(11x A b A x A A δδδδ+≤--- 得到 )(111x A b AAA x δδδδ+-≤--又注意到b Ax =有 b x A ≥ 从而得到bA x ≤1,故上述不等式左边乘以x 1,右边圆括号第一项乘以x 1,第二项乘以bA ,并从括号中提出A ,则得(2.6.3) 定理的结果实际包含两种特殊情形: (1)A 精确,即 0=A δ,b 有扰动b δ,从而b b x x A δδ+=+)(bbAA xxδδ1-≤(2) A 有扰动A δ,b 精确,即0=b δ,这时b x x A A =++))((δδAAA AA A xxδδδ111---≤当A A δ1-很小时,上式可近似表示为AAAA xxδδ1-≈2.条件数与病态方程组定义 2.6.1 设A 为非奇异矩阵,称数A A 1- 即 A A A cond 1)(-= 为矩阵A 的条件数。
矩阵A 的条件数的一些基本性质: (1) 任何非奇异矩阵A ,对任一算子范数均有1)(≥A cond )()(1-=A cond A cond )()(A cond A cond =α(2) 根据定义 )(max 2A A A T λ= ,可得 )()()(min max 2212A A A A A AA cond T T λλ==-(3) 若 U 为正交阵,即I UU T =,则 1)(2=U cond又A 非奇异,则222)()()(UA cond AU cond A cond == (4)设 1λ与n λ为A 按模最大和最小的特征值,则nA cond λλ1)(≥特别地,若T A A =(即A 对称),则nA cond λλ1)(=若A 对称正定,则 nA cond λλ12)(=证明 略定理 2.6.2 (事后误差估计)设方程组 b Ax =,A 非奇异,0≠b ,x 是精确解,-x 是近似解,剩余向量 --=x A b r ,则有估计式 br A cond xx x b r A cond )()(1≤-≤-证明:因b Ax =,得 )(----=-=-=x x A x A Ax x A b r ,从而r A x x 1--=-,于是r A x x 1--≤-,又由bA x ≤1,于是得估计式右端br A cond bA rA xxx )(1=≤---类似地,由上述 )(--=x x A r ,得--≤x x A r ,或--≤x x Ar ,由 b A x 1-=得b A x 1-≤,综合两式得估计式两端xx x bA A r b r A cond ---≤≤1)(1例 2.6.13.事后误差估计定理 2.6.2 设方程组b≠b,x是精确解,-xAx=,A非奇异,A非奇异,0是近似解,剩余向量-br,则有估计式=xA-例题讲解2例题2.1 对方程组Ax =b, A非奇异不一定能作顺序G auss 消去过程,或者说,A 非奇异不一定有LU 分解。
2.6 追赶法

第16讲 追赶法、误差分析在实际应用问题中,经常会遇到解三对角线方程组。
例如:用三次样条函数的插值问题中得到的三转弯及三弯矩方程组,当时说可用追赶法来求解。
还有用差分法解二阶线性常微分方程边值问题,若用三点插值格式也得到解三对角线方程组,本节介绍该类方程组中的特例及该种方程组的解法:追赶法。
优点:1.计算量小。
2.方法简单,存贮量小。
3.数值稳定的(对舍入误差来说)。
1 追赶法三对角线方程组的一般表示方法:可见,对A 的分解只需求i i u l ,且按n n n l u l u l u l −→−−→−−→−−→−−→−−→−−→−--112211.....的递推过程进行,形象地称为“追”的过程⎩⎨⎧=-==-),....2(/)(/1111n i l y a f y l f y i i i i ⎩⎨⎧-=-==+)1,2,.....1(1n i x u y x y x i i i inn 形象地称回代求解过程为“赶”的过程追赶法的计算量为5n-4次乘除法,可用4个 一 维数组存放{}{}{}{}i i i i f c b a ,,,。
共占用4n-2个单元,在计算过程中{}{}{}i i i y u l ,,依次覆盖掉{}{}{}i i i f c b ,,最后,{}i x 覆盖掉{}i y ,所以,追赶法具有计算量小,占用内存单元少的特点。
2、误差分析⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=-n n l u u u U 121....111⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=n nl a l a l a l L ....33221)1,...,3,2,1(-=n i ⎪⎩⎪⎨⎧+===+++11111i i i i ii i lu a b u l c l b ⎪⎩⎪⎨⎧-===+++i i i i ii i ua b l l c u b l 11111/)1,...,3,2,1(-=n i病态方程组与条件数一个线性方程组Ax=b 是由它的系数矩阵A 和它的右端项b 所确定,在实际问题中,由于各种原因,A 或b 往往有误差,从而使得解也产生误差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如: Hilbert矩阵就是一个著名的病态矩阵
1
1
2 1
2
1
1
3
4
1
n
1
Hn
1
n
3
1
( n 1)
n
1
( n 1)
4
1
( n 2)
6
1
8
对 称 正 定 矩 阵
(2n 1)
10
cond1 ( H ) cond2 ( H ) cond ( H )
2.6.2 矩阵的预处理
常用的几种判定方程组为病态的经验方法 当 det( A) 相对来说很小时,或者矩阵A 的某些
行(列)近似线性相关时,可能为病态;
矩阵在采用选主元消去法求解方程组时,在消
元过程中出现很小的主元,可能为病态;
解方程组得到了一个很大的解,或者特征值相差大
数量级,可能为病态;
当系数矩阵的元素间数量级相差很大,且无一定
规则时,可能为病态。
求解病态方程组时,常用的几种处理原则 采用高精度的算术运算; 采用预处理方法;
Ax b PAQQ x Pb Ax b
其中
1
A PAQ; x Q x; b Pb
1
可逆矩阵P 和 Q的选择要求满足:
cond ( PAQ )
cond ( A)
采用某些特殊的数值方法求解; 重新寻找出现病态的原因,改变原问题的提法。
1 4 3 T 精确解为 x ( 2 10) 0.0001 0 0.0002
上例说明该方程组的解对初始元素的扰动非常敏感。 设方程组为
Ax b
系数矩阵 A 和常数方程组为
( A A) x (b b)
Def 2.6设 A R 为可逆阵,则称 ( A) A A 为矩阵 A(或者相应方程组)的条件数.
n n
1
若矩阵范数取2-范数,则得到谱条件数:
2 ( A) A
2
A
1 2
若矩阵范数取1-范数,则得到1-条件数:
若矩阵范数取 -范数,则得到 -条件数
1 ( A) A 1 A
1 1
( A) A A
1
定理 设 A R 为可逆阵,x 和 x x 分别满 足方程组 Ax b 和 ( A A)( x x ) b b
n n
其中 b 则
0 ,且 A
满足
A
1
A 1
|| x || || x ||
§2.6 条件数与病态方程组
2.6.1 矩阵的条件数
初始数据误差和方程组的近似解的误差之间关系
例1 考察方程组:
精确解为
1 x1 4 3.0001 1 x 4.0001 2 3
T
x (1 1)
设方程组存在扰动
1 x1 4 3 2.9999 1 x 4.0002 2
|| A || || b || ( A) || A || || A || || b || 1 ( A) || A ||
其中
为满足条件
I 1 的矩阵范数.
推论(补充)
在上述定理的条件下,
如果 A 0; b 0 ,则
x b ( A) x b
28375 15514 28375
2.9E+7 1. 5E+7 2.9E+7
3.39E+10 3.54E+13 1.53E+10 1.60E+13 3.39E+10 3.54E+13
若A为8阶Hilbert矩阵,解线性方程组 Ax=b, 假设真实解为x=[1,1,1,1,1,1,1,1]’
• • • • • • • • • • • • for i=1:8 for j=1:8 A(i,j)=1/(i+j-1); end end >>cond(A) ans= 1.5258e+010 >>xe=[1,1,1,1,1,1,1,1]’; >>b=A*xe; bd = b + 0.001*randn(8,1); xv = inv(A)*bd