crout分解法

合集下载

计算方法2线性方程组直接法

计算方法2线性方程组直接法
当系数矩阵存在某些特殊结构时(如带状矩阵、稀疏矩阵等),列主元消元法可能不是最优的求解方法。 此时可以考虑使用其他直接法或间接法进行求解。
04
矩阵的三角分解法
LU分解法
定义:将系数矩阵A分解为一个下三角 矩阵L和一个上三角矩阵U的乘积,即 A=LU。
适用范围:适用于所有可逆矩阵,特别 适用于中小型稠密矩阵。
迭代法收敛性判断
在迭代法求解方程组时,可以通过观察迭代过程中解向量的范数的变化情况来判断迭代法 是否收敛。如果解向量的范数逐渐减小并趋于零,则表明迭代法收敛。
方程组性态分析
方程组的性态是指方程组解的存在性、唯一性和稳定性等方面的性质。通过分析方程组的 系数矩阵的范数,可以对方程组的性态进行初步的判断。例如,如果系数矩阵的谱半径( 即最大特征值的模)较小,则方程组往往具有较好的性态。
03
线性方程组在科学研究、工程技术和经济管理等领域具有广 泛的应用。
直接法的定义与分类
1
直接法是一种通过有限步四则运算求解线性方程 组的方法,具有计算精度高、稳定性好的特点。
2
直接法可分为高斯消元法、列主元消元法、全主 元消元法等多种方法,其中高斯消元法是最基本 的方法。
3
各种直接法的主要区别在于选主元和消元的过程 中采用不同的策略,以达到提高计算精度和稳定 性的目的。
对系数矩阵A进行Crout分解,得到下三角矩阵L和单位 上三角矩阵U。
利用后向代入法求解Ux=y,得到向量x。
求解步骤
利用前向代入法求解Ly=b,得到向量y。
适用范围:适用于所有可逆矩阵,特别适用于中小型稠 密矩阵。与LU分解法和Doolittle分解法相比,Crout 分解法在某些情况下具有更高的计算效率。
性质

计算方法 课后习题答案

计算方法 课后习题答案
解:因为第一列中10最大,因此把10作为列主元素
得到方程组
3。举例说明一个非奇异矩阵不一定存在LU分解。
例如:设
与题设相矛盾,所以一个非奇异矩阵不一定存在LU分解。
4。下列矩阵能否分解为LU(其中L为单位下三角矩阵,U为上三角矩阵)?若能分解,那么分解是否唯一?
解:
设 B可以进行LU分解,则B=
计算得
其中。 。
解:(1)由题意,可设 ,由Lagrange插值余项公式得
(2)由(1)式可知,
15.给定数据表:
1
0
2
3
构造出函数 的差商表,并写出它的三次 插值多项式.
解:利用Newton插值公式:
先作出差商表
一阶差商
二阶差商
三阶差商
0
1
3
1
3/2
13/4
1/2
2
0
3
1/6
1/3
3
2
5/3
-2/3
-5/3
证明:据题4可知,
令 ,则有 。注意到
(证明见王能超数值简明教程145页题6)
令 即有 。
9.已知 ,求差商 和 。
解:根据差商与微商的关系,有
10.已知 互异,求 。其中 。(此题有误。)(见王能超《教程》P149-题2)
解:因为 ,则
由差商性质 可知,
11.设首项系数为1的n次式 有n个互异的零点 ,证明
解:1)用梯形公式有:
事实上,
2)Simpson公式
事实上,
3)由Cotes公式有:
事实上,
2.证明Simpson公式 具有三次代数精度。
证明:
而当 时
左侧:
右侧:

Crout分解法求解线性方程组解一 - WPS

Crout分解法求解线性方程组解一 - WPS

回 代
LL x i = (bi j = i +1

n
ui , j x j ) / ui ,i
二、同解变换 1. 初等方阵:
L 0 1 0 L 0 1 0 E (i , j ) = 0 1 0 0 1 0 L
: ri rj
j =1
l i ,i
③ 上三角矩阵:
u11 0 A= M 0 u12 L u1n u22 L u2 n M M 0 L unn
x n = bn / unn x n-1 = (bn-1 - un-1,n x n ) / un-1,n-1
即: u11x1+u12x2+………+u1nxn=b1 u22x2+………+u2nxn=b2 …… uiixi+ui,i+1xi+1+…+ui,nxn=bi un-1,n-1xn-1+un-1,nxn=bn-1 un,nxn=bn
2. 对方程组Ax=b作如下的变换,解不变:

② ③
交换两个方程的次序
一个方程的两边同时乘以一个非0数 一个方程的两边………………………,再将之加到另一 个方程
将方程组Ax=b对应 的增广矩阵(A, b),作如下变换,解不变 ① ② 交换矩阵的两行 某行乘以一个非0数
增广矩阵第i行第 i个方程
: rj +k*ri

对矩阵A实施初等行变换 对A左乘初等方阵 初等方阵是可逆的,多个初等方阵的积仍然可逆
可逆阵A经有限次初等行变换单位矩阵
( A, E ) 行变换 ( E, A - 1 ) A 列变换 E E A -1

计算方法重点公式

计算方法重点公式

第一章 非线性方程和方程组的数值解法 12,若1p =则要求01c <<3)单点迭代收敛定理:定理一:若当[],x a b ∈时,[](),x a b ϕ∈且,[],x a b ∀∈,则迭代格式收敛于唯一的根;定理二:设()x ϕ满足: ①[],x a b ∈时,[](),x a b ϕ∈,则对任意初值[]0,x a b ∈迭代收敛,且:定理三:设()x ϕ在α的邻域内具有连续的一阶导数,且'()1ϕα<,则迭代格式具有局部收敛性;定理四:假设()x ϕ在根α的邻域内充分可导,则迭代格式1()i i x x ϕ+=是P 阶收敛的 ()()()0,1,,1,()0j P j P ϕαϕα==-≠(Taylor 展开证明)4)Newton 5)Newton 迭代法收敛定理:设()f x 在有根区间[],a b 上有二阶导数,且满足: ①:()()0f a f b <; ②:[]'()0,,f x x a b ≠∈;③:[]'',,f x a b ∈不变号④:初值[]0,x a b ∈使得''()()0f x f x <;则Newton 迭代法收敛于根α。

6)Newton 迭代法求重根(收敛仍为线性收敛),对Newton 法进行修改 ①:已知根的重数r(Newton 下山法)②:,α为()f x 的重根,则α为()u x 的单根。

6)截弦法 单点:双点(快速):7)迭代加速收敛方法(艾特金(Aitkem)加速):不动点迭代函数()x ϕ在α的某个邻域内具有二阶导数,'()1,0L ϕα=≠平方收敛第二章线性代数方程组数值解法1)向量范数:的充要条件是0x=;12∞范数:p2)矩阵范数:的充要条件是0A=;F1∞范数:2,iλ为H A A 的特征值,3)Gauss消元法(上三角阵)列选主元消元法:在消元之前进行行变换,将该列最大元素换置对角线主元位置;(可用于求逆矩阵,详见杨娟ppt)4)三角分解法(此部分难以简单说明,具体见ppt):①:Doolittle分解法:A=LU,L单位下三角阵,U上三角阵②:Crout分解法:A=LU,L下三角阵,U单位上三角阵③:追赶法:Crout分解法解三对角方程8)Jacobi 迭代:A L D U =++111()i i x I D A x D b +--=-+9)Gauss-Seidel 迭代:111()()i i xL D Ux L D b +--=-+++第三章 插值法与数值逼近 1)Lagrange 插值:000()()()()n n n ni i i L x y l x y l x y l x ==++=∑,01111)()()())()()()i i n i i i i i n x x x x x x x x x x x x -+-+------2)Newton 插值:差商表0x 0()f x 1x 1()f x 01[ ]f x x2x 2()f x 02[ ]f x x 012[ ]f x x x3x 3()f x03[ ]f x x013[ ]f x x x 0123[ ]f x x x x00100101010()()[ ]()[ ]()()[ ]()()n n n n f x f x f x x x x f x x x x x x x f x x x x x x x x -=+-++--+--(10]()()(n n n fx x x x x x n --=3)Hermite 插值(待定系数法)'210()[()()()()]nn j j j j j H x x f x x f x αβ+==+∑2()()()j j j x x x l x β=-45)离散函数的最佳平方逼近(曲线的最小二乘拟合): 法方程(,)(,)njkjk j af ϕϕϕ==∑其中(,)()()(,)()()m j k i j i k i i mk i i k i i x x f f x x ϕϕρϕϕϕρϕ====∑∑第四章 数值积分1)代数精度的概念及应用:对r 次多项式的精确成立,以及代入法求解系数。

数值分析-第二章-学习小结

数值分析-第二章-学习小结

第2章线性方程组的解法--------学习小结一、本章学习体会本章主要学习的是线性方程组的解法。

而我们则主要学习了高斯消去法、直接三角分解法以及迭代法三种方法。

这三种方法的优缺点以及适用范围各有不同。

高斯消去法中,我们又学习了顺序高斯消去法以及列主元素高斯消去法。

顺序高斯消去法可以得到方程组的精确解,但要求系数矩阵的主对角线元素不为零,而且该方法的数值稳定性没有保证。

但列主元素高斯消去法因为方程顺序的调整,其有较好的数值稳定性。

直接三角分解法中,我们主要学习了Doolitte分解法与Crout分解法。

其思想主要是:令系数矩阵A=UL,其中L为下三角矩阵,U是上三角矩阵,为求AX=b 的解,则引进Ly=b,Ux=y 两个方程,以求X得解向量。

这种方法计算量较小,但是条件苛刻,且不具有数值稳定性。

迭代法(逐次逼近法)是从一个初始向量出发,按照一定的计算格式,构造一个向量的无穷序列,其极限才是所求问题的精确解,只经过有限次运算得不到精确解。

该方法要求迭代收敛,而且只经过有限次迭代,减少了运算次数,但是该方法无法得到方程组的精确解。

二、本章知识梳理针对解线性方程组,求解线性方程组的方法可分为两大类:直接法和迭代法,直接法(精确法):指在没有舍入误差的情况下经过有限次运算就能得到精确解。

迭代法(逐次逼近法):从一个初始向量出发,按照一定的计算格式,构造一个向量的无穷序列,其极限才是所求问题的精确解,只经过有限次运算得不到精确解。

我们以前用的是克莱姆法则,对于计算机来说,这种方法运算量比较大,因此我们学习了几种减少运算次数的方法,有高斯消去法、直接三角分解法,同时针对病态方程组,也提出了几种不同的解法。

Gauss消去法Gauss消去法由消元和回代两个过程组成,消元过程是指针对方程组的增广矩阵,做有限次初等行变化,使它系数矩阵变为上三角矩阵。

顺序Gauss消去法消元过程:对于K=1,2,3…,n-1执行(1)如果a aa(a)=0,则算法失效,停止计算;否则转(2)(2)对于a=a+1,a+2,…,a计算a aa=a aa(a)a aa(a)⁄a aa(a+1)=a aa(a)−a aa a aa(a) (a=a+1,a+2,…,a)a a(a+1)=a a(a)−a aa a a(a)回代过程:a a=a a(a)a aa(a)⁄a a=(a a(a)−∑a aa(a)a aaa=a+1)a aa(a)⁄ (a=a−1,a−2, (1)综上:顺序Gauss消去法的数值稳定性是没有保证的。

矩阵的三角分解方法

矩阵的三角分解方法

§4矩阵的三角分解矩阵的三角分解定理:设n nA R ×∈,如果A 的前n-1个顺序主子式det()0,1,2,,1i A i n ≠=− ,则A 可分解为一个单位下三角矩阵L 与一个上三角矩阵U 的乘积,且这种分解是唯一的。

证明:1.存在性:利用高斯消去法来构L 和U(1)(2)()1122det()0,1,2,,1i i ii A a a a i n =≠=−1L A U −=,A LU=2112100101n n m L m m ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ ,(1)(1)(1)11121(2)(1)222()0nn n nn a a a a a U a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦2.唯一性:分A 非奇异和奇异两种情况来证 (1)A 非奇异考虑到A 的前n-1个顺序主子式非零,得 det()0,1,2,,i A i n ≠=设1122A LUL U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。

因A 非奇异,所以1U 可逆,从而112121L L U U −−=112121112121(,)L L E U U L L U U −−−−⇒==因为单位下三角阵为上三角阵2121,L L U U ⇒==(2)A 奇异因det()0,1,2,,1i A i n ≠=− ,det()0n A =()0,1,2,,1i ii a i n ⇒≠=− ,()0n nn a = 设1122A LUL U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。

对它们进行矩阵分块,得(1)(1)(1)(1)(1)(1)111222(1)(1)1122001010n n n n n n n n L U a L U a m a m a −−−−−−−−⎛⎞⎛⎞⎛⎞⎛⎞=⎜⎟⎜⎟⎜⎟⎜⎟⎝⎠⎝⎠⎝⎠⎝⎠其中(1)(1)12,n n L L −−为n-1阶单位下三角矩阵,(1)(1)12,n n U U −−为可逆的n-1阶上三角矩阵(1)(1)(1)(1)(1)(1)(1)(1)11112222(1)(1)(1)(1)(1)(1)(1)(1)1111122222n n n n n n n n n n n n n n n n L U L a L U L a m U m a a m U m a a −−−−−−−−−−−−−−−−⎛⎞⎛⎞⇒=⎜⎟⎜⎟++⎝⎠⎝⎠由(1)(1)(1)(1)1122n n n n L U L U −−−−=(1)(1)(1)(1)2121,n n n n L L U U −−−−⇒==由(1)(1)(1)(1)1122n n n n L a L a −−−−=(1)(1)21n n a a −−⇒= 由(1)(1)(1)(1)1122n n n n m U m U −−−−=(1)(1)21n n m m −−⇒=由(1)(1)(1)(1)222111n n n n m a a m a a −−−−+=+21a a ⇒= 故2121,L L U U == 证毕。

杨华-数值分析往年试题

杨华-数值分析往年试题

1 3
) f(
1 3
)
14. 确定求积公式中的待定参数,使其代数精确度尽可能高,并确定常数 k 和所确定求积公 式的代数精确度,

15.对
1
1
f ( x)dx A0 f (1) A1 f ( x) kf
( 3)
( )

(0,1)

3具有 3 次代数精确度的求积公式。
24.对方程组
(1) 写出相应的 Jacobi 和 Gauss-Seidel 迭代格式。 关于参数 k ,讨论 Jacobi 迭代格式的收敛性(参数 k 0 ). 25.已知线性方程组 Ax b ,其中 A
1 2 1 、b 2 ,若有迭代格式 0 .3 1
f
4

1 3 1 , x1 , x3 , 4 2 4
1)推导以这三个点作为求积节点在 [0,1] 上的插值型求积公式。 2)指明求积公式所具有的代数精确度。 3)用所求公式计算
x
0
1
2
dx 。
13.指出下列数值求积公式是否为插值型求积公式,并指出其代数精确度,

1
1
f ( x )dx f (
3 2 3 b 、 1 ,若有迭代格式 1 2
x ( k 1) x ( k ) ( Ax ( k ) b) ,试问: 取何值时才能使迭代格式收敛。 kx1 x 2 1 x1 kx 2 x3 2 x kx 3 3 2
X ( k 1) X ( k ) ( AX ( k ) b) ,讨论参数 取何值时该迭代公式收敛。 1 2 3 x1 14 2 5 2 x 18 2 3 1 5 x3 20

研究生数值分析(8)分解

研究生数值分析(8)分解

b1 bk
k 1
lkj
yj
j 1
(k 2,3,
(5)
, n)
xn
xk
yn / unn (yk
n
ukj xj ) / ukk
j k 1
(6)
(k n 1,n 2, ,1)
杜利特尔矩阵分解 求解线性方程组的过程为: 10 实现A=LU分解,即
(a)按计算公式(1),(2)依次计算U的第1行元素
(i k, k 1, , n) (3)
k 1
lik (aik liju jk ) / ukk j 1
(i k 1, , n; k n) (4)
在我们利用杜利特尔矩阵分解解线性方程 组AX=b时,只要实现矩阵分解A=LU,依次解三角 形方程组LY=b与UX=Y即可。
计算公式:
y1
yk
u1i (i 1, 2, , n) 与L的第1列元素 li1 (i 2,3, , n)
(b) 对k+2,3,…,n 按计算公式(3),(4)依次
计算U的第k行元素 uki (i k, k 1, , n) 与L的第
k列元素 lik (i k 1, , n; k n)
20 求解三角形方程组LY=b,即按计算公
若U为单位上三角阵(对角元都是1的上三角阵),
L为下三角阵,则称为克劳特(Crout)分解。
下面分析实现矩阵杜利特尔(Doolittle)分解和克 劳特(Crout)分解的条件,讨论这些分解的唯一性。
定理2 (矩阵三角分解基本定理)
设 A Rnn 。若A的顺序主子式
det( Ak ) 0
(k 1, 2, , n)
li,k 1
lik
ln,k 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所以y1=b1/l11,yi=( bi- )/lii,i=2,3,…,n
b)再解单位上三角型方程组Ux=Y。由UX=Y得x1+u12x2+…+u1nxn=y1,x2+…+u2nxn=y2
………xn-1+un-1nxn=yn-1,xn=yn,利用回代解法可得方程组AX=b的解为
xn=yn,xi=yi- ,i=n-1,…,2,1
printf("\n");
for(i=0;i<size;i++)
{
u[i][i]=1;//定初始值令u[i][i]=1
}
for(i=0;i<size;i++)
for(j=i+1;j<size;j++)
{
l[i][j]=0;//定初始值令l[i][j]=0
}
for(j=0;j<size;j++)
for(i=j+1;i<size;i++)
{
x[i]=x[i]-u[i][k]*x[k];//计算x[]
}
}
for(i=0;i<size;i++)
{
printf("x[%d]=%f\n",i+1,x[i]);//输出x[i]的结果
}
}
(2)程序应用
{
for(j=1;j<=i;j++)//计算第2行到第size-1行的l[][]
{
l[i][j]=a[i][j];
for(k=0;k<j;k++)
{
l[i][j]=l[i][j]-l[i][k]*u[k][j];
}
}
printf("\n");
for(j=i+1;j<size;j++)//计算第2行到第size行的u[][]
float b[N],x[N],y[N];//定义变量
printf("\t\t\tCrout分解法解方程组\n");
printf("请输入方阵A的n:");
scanf("%d",&size);
printf("\n");
printf("请输入方程组的系数:\n");
u[i][j]=a[i][j];
for(k=0;k<=i-1;k++)
{
u[i][j]=u[i][j]-l[i][k]*u[k][j];
}
u[i][j]=u[i][j]/l[i][i];
}
printf("\n");
}
for(j=1;j<size;j++)//计算第size行的l[][]
{
l[size-1][j]=a[size-1][j];
uij=(aij- )/lii(i=2,3,···,n,j=i+1,i+2,···,n)
(2)具体算法如下:
①对A作LU分解:由A = LU及矩阵的乘法原理可得:
lij= aij- (j = 1, 2 , …, i,i=1,2,…n)
uij= ( aij- )/lii(j =i + 1, i + 2 , …, n,i=1,2,…n)
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
printf("%f ",a[i][j]);//输出a[][]
}
printf("\n");
}
printf("\n方程组y为:\n");
for(i=0;i<size;i++)
printf("%f ",b[i]);//输出b[]
}
printf("\n");
}
printf("输出矩阵U[i][j]\n");
for(i=0;i<size;i++){
for(j=0;j<size;j++)
{
printf("%f",u[i][j]); printf(" ");//输出单位上三角矩阵u[][]
}
printf("\n");
}
y[0]=b[0]/l[0][0];//给y[0]初始值
for(k=0;k<=j-1;k++)
{
l[size-1][j]=l[size-1][j]-l[size-1][k]*u[k][j];
}
}
printf("\n");
printf("输出矩阵L[i][j]\n");
for(i=0;i<size;i++){
for(j=0;j<size;j++)
{
printf("%f",l[i][j]); printf(" ");//输出下三角矩阵l[][]
for(i=1;i<size;i++)//计算y[i]的值
{
y[i]=b[i];
for(k=0;k<=i-1;k++)
{
y[i]=y[i]-l[i][k]*y[k];//计算公式
}
y[i]=y[i]/l[i][i];
}
printf("\n");
printf("y值:\n");
for(i=0;i<size;i++)
二、Crout方法解线性方程组的程序
(1)程序代码:
#include "stdio.h"
#include "math.h"//头文件
#define N 20//自定义N=20
int main()//主函数
{
int i,j,k;
int size;
float a[N][N],l[N][N],u[N][N];
a1j=(l11,0,0,0···0)· =l11·u1j(j=1,2,···,n)
得:li1=ai1;u1j=a1j/l11(i,j=1,2,···,n)
2当i<j时
aij=(l11,li2,···lii,0···0)· =
当i j时
aij=(l11,li2,···lii,0···0)· =
得:lij=aij- (j=2,3,···,i,i=2,3,···,n)
printf("y[%d]=%f ",i+1,y[i]);//输出y[i]的结果
printf("\n\n");
printf("x的值:\n");
x[size-1]=y[size-1];//给x[size-1]赋值
for(i=size-2;i>=0;i--)
{
x[i]=y[i];
for(k=i+1;k<size;k++)
②解两个三角型方程组
由A = LU及Ax= b可得L (Ux) = b,令Y = ( y1, y2,…, yn)T= Ux,则L Y = b ,于是求解Ax= b就被化为求解下三角型方程组L Y = b及单位上三角型方程组Ux= Y。
a)先解下三角型方程LY=b。由l11y1=b1, l21y1+l22y2=b2l11,……ln1y1+ln2y2+…+lnnyn=bn
【正文】
一、Crout方法解线性方程组的算法
给定线性方程组Ax=b ,其中系数矩阵A=(aij)n×n为可逆的,x=(x1,x2,…,xn)T,b =( b1,b2,…bn)T为常数项列向量。Crout分解后A=LU,L和U的结构为
(1)公式推导:
1由A=LU及矩阵乘积和相等概念,有
ai1=(li1,li2···,lii,0,···0)· =li1(i=1,2,···n)
{
u[i][j]=0;//定初始值令u[i][j]=0
}
l[0][0]=a[0][0];
for(i=1;i<size;i++)
{
l[i][0]=a[i][0];//计算第一行的l[][]
u[0][i]=a[0][i]/l[0][0];//计算第一列的u[][]
}
for(i=1;i<size-1;i++)
crout分解法解线性方程组的算法及程序设计摘要在自然科学和工程技术中很多问题的解决常常归结为解线性方程组而方程组的系数矩阵大致分为两种一种是低阶稠密矩阵阶数不超过150另一种是大型稀疏矩阵矩阵阶数高且零元素较多
Crout分解法解线性方程组的算法及程序设计
【摘要】在自然科学和工程技术中很多问题的解决常常归结为解线性方程组,而方程组的系数矩阵大致分为两种,一种是低阶稠密矩阵(阶数不超过150),另一种是大型稀疏矩阵(矩阵阶数高且零元素较多).解低阶稠密矩阵和某些特殊形式的大型稀疏矩阵宜应用直接法,例如:高斯消元法、矩阵三角分解法。对于一般形式的系数矩阵,Crout分解法是一种有效的方法,本文就Grout分解法给出其计算公式的推导过程及算法程序。
{
for(j=0;j<size;j++)
{
scanf("%f",&a[i][j]);//输入方程组系数矩阵a[][]
相关文档
最新文档