实验六 解线性方程组的迭代法
迭代法解线性方程组数值分析实验报告
迭代法解线性方程组数值分析实验报告一、实验目的本次实验旨在深入研究和掌握迭代法求解线性方程组的基本原理和方法,并通过数值实验分析其性能和特点。
具体目标包括:1、理解迭代法的基本思想和迭代公式的推导过程。
2、掌握雅克比(Jacobi)迭代法、高斯赛德尔(GaussSeidel)迭代法和超松弛(SOR)迭代法的算法实现。
3、通过实验比较不同迭代法在求解不同类型线性方程组时的收敛速度和精度。
4、分析迭代法的收敛性条件和影响收敛速度的因素。
二、实验原理1、线性方程组的一般形式对于线性方程组$Ax = b$,其中$A$ 是$n×n$ 的系数矩阵,$x$ 是$n$ 维未知向量,$b$ 是$n$ 维常向量。
2、迭代法的基本思想迭代法是从一个初始向量$x^{(0)}$出发,按照某种迭代公式逐步生成近似解序列$\{x^{(k)}\}$,当迭代次数$k$ 足够大时,$x^{(k)}$逼近方程组的精确解。
3、雅克比迭代法将系数矩阵$A$ 分解为$A = D L U$,其中$D$ 是对角矩阵,$L$ 和$U$ 分别是下三角矩阵和上三角矩阵。
雅克比迭代公式为:$x^{(k+1)}= D^{-1}(b +(L + U)x^{(k)})$。
4、高斯赛德尔迭代法在雅克比迭代法的基础上,每次计算新的分量时立即使用刚得到的最新值,迭代公式为:$x_i^{(k+1)}=(b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i+1}^{n}a_{ij}x_j^{(k)})/a_{ii}$。
5、超松弛迭代法在高斯赛德尔迭代法的基础上引入松弛因子$\omega$,迭代公式为:$x_i^{(k+1)}= x_i^{(k)}+\omega((b_i \sum_{j=1}^{i-1}a_{ij}x_j^{(k+1)}\sum_{j=i}^{n}a_{ij}x_j^{(k)})/ a_{ii} x_i^{(k)})$。
解线性方程组的迭代法数值计算上机实习报告
解线性方程组的迭代法数值计算上机实习报告一.综述:考虑用迭代法求解线性方程组,取真解为,初始向量取为零,以范数为度量工具,取误差指标为.其中。
分别完成下面各小题:第六题:编制程序实现Jacobi迭代方法和Gauss-Seidel 方法。
对应不同的停机标准(例如残量,相邻误差,后验误差停机标准),比较迭代次数以及算法停止时的真实误差。
其中残量准则:、相邻误差准则:后验误差停机准则:解:为了结果的可靠性,这里我分别对矩阵阶数为400、2500、10000进行试验,得到对应不同的方法、取不同的停机标准,迭代次数和真实误差的数据如下:分析上面数据可知,对应不同的停机标准,GS方法的迭代次数都近似为J方法的一半,这与理论分析一致。
而且从迭代次数可以看出,在这个例子中,作为停机标准,最强的依次为后验误差,再到残量,再到相邻误差。
第七题:编写程序实现SOR 迭代方法。
以真实误差作为停机标准,数值观测SOR 迭代方法中松弛因子对迭代次数的影响,找到最佳迭代因子的取值。
解:本题中考虑n=50,即对2500阶的矩阵A。
由于我们已经知道要使SOR方法收敛,松弛因子需要位于。
下面来求SOR方法中对应的最佳松弛因子。
应用筛选法的思想,第一次我们取松弛因子,间距为0.05,得到的对应的图像如下,从图中可以看出迭代次数随着的增大,先减小后变大,这与理论相符。
同时可以看出最佳松弛因子.第二次将区间细分为10份,即取,可得下面第二幅图像,从图像中可以看出最佳松弛因子第八题:对于J 方法,GS方法和(带有最佳松弛因子的)SOR 方法,分别绘制误差下降曲线以及残量的下降曲线(采用对数坐标系),绘制(按真实误差)迭代次数与矩阵阶数倒数的关系;解:对于J方法,考虑n=50时,采用相邻误差为迭代的终止条件,误差下降曲线及残量的下降曲线如下:对于GS方法,考虑n=50的时候,采用相邻误差作为迭代的终止条件,所得到的残量和误差的下降曲线如下图:从中可以看出,当相邻误差满足误差指标时,真实误差却并不小于误差指标,而为2.6281e-04。
数值分析--第6章 解线性方程组的迭代法
数值分析--第6章解线性方程组的迭代法第6章 解线性方程组的迭代法直接方法比较适用于中小型方程组。
对高阶方程组,即使系数矩阵是稀疏的,但在运算中很难保持稀疏性,因而有存储量大,程序复杂等不足。
迭代法则能保持矩阵的稀疏性,具有计算简单,编制程序容易的优点,并在许多情况下收敛较快。
故能有效地解一些高阶方程组。
1 迭代法概述迭代法的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则。
由不同的计算规则得到不同的迭代法。
迭代法的一般格式(1)()(1)()(,,,),0,1,k k k k m kF k +--==x x x x式中(1)k +x 与()(1)(),,,k k k m --x x x 有关,称为多步迭代法。
若(1)k +x 只与()k x 有关,即(1)()(),0,1,k k kF k +==x x称为单步迭代法。
再设kF 是线性的,即(1)(),0,1,k kk kk +=+=x B x f式中n nk ⨯∈B R ,称为单步线性迭代法。
kB 称为迭代矩阵。
若k B 和kf 与k 无关,即(1)(),0,1,k k k +=+=x Bx f称为单步定常线性迭代法。
本章主要讨论具有这种形式的各种迭代方法。
1.1 向量序列和矩阵序列的极限由于nR 中的向量可与nR 的点建立——对应关系,由点列的收敛概念及向量范数的等价性,可得到向量序列的收敛概念。
定义6.1 设(){}k x 为n R 中的向量序列,nx R ∈,如果()lim 0k k x x →∞-=其中为向量范数,则称序列(){}k x 收敛于x ,记为()lim k k x x →∞=。
定理6.1 nR 中的向量序列(){}k x 收敛于nR 中的向量x 当且仅当()lim (1,2,,)k i i k x x i n →∞==其中()()()()1212(,,,),(,,,)k k k k T Tnnx x x x x x x x ==。
用Jacobi 迭代法,Gauss-Seidol迭代法求解线性方程组,讨论收敛性
2.高斯塞德尔迭代法令M=D-L,A=M-N,得B=(D-L)^-1U=G,G 为高斯塞德尔迭代法的迭代矩阵,得到11111i nk k k ii iij jijjij j i a xa xa xb -++==+=--+∑∑,所以高斯塞德尔计算公式为000012(X ,X ........X )Tn x =,1k ix+=(1111i nk k ij jijji j j i a xa xb -+==+--+∑∑)/ii a ,i=1,2,3.......,k=0,1,2.....【实验问题】用Jacobi 迭代法,Gauss-Seidol 迭代法求解线性方程组,判断收敛性【实验过程与结果】1.理解两种迭代法的计算思想,掌握方法推到计算公式2.用matlab 编程实现3.对实验结果进行分析,比较两种方法,并判断收敛性【结果分析、讨论与结论】两种方法得到的结果一样,雅可比k =17x =-0.1348-1.08293.9203 2.高斯塞德尔k =17x =-0.1348-1.08293.9203【附程序】1.雅可比程序算法function x=jacobi(A,b,x0,tol)n=length(b);x=zeros(n,1);x=x0+1;k=0;while norm(x-x0)>tolif k>20disp('jacobi fails')break;endk=k+1;for i=1:nx0=x;x(i)=(b(i)-A(i,1:n)*x0+A(i,i)*x(i))/A(i,i);endend。
数值分析实验报告--解线性方程组的迭代法及其并行算法
disp('请注意:高斯-塞德尔迭代的结果没有达 到给定的精度,并且迭代次数已经超过最大迭 代次数max1,方程组的精确解jX和迭代向量X 如下: ') X=X';jX=jX' end end X=X';D,U,L,jX=jX'
高斯-塞德尔的输入为:
A=[10 2 3;2 10 1;3 1 10]; b=[1;1;2]; X0=[0 0 0]'; X=gsdddy(A,b,X0,inf, 0.001,100) A=[10 2 3;2 10 1;3 1 10]; 请注意:因为对角矩阵 D 非奇异,所以此方程组有解.
0.0301 0.0758 0.1834
8.心得体会:
这已经是第三次实验了, 或多或少我已经对 MATLAB 有了更多的了 解与深入的学习。通过这次实验我了解了雅可比迭代法和高斯- 塞德尔迭代法的基本思想,虽然我们不能熟练编出程序,但还是 能看明白的。运行起来也比较容易,让我跟好的了解迭代法的多 样性,使平常手算的题能得到很好的验证。通过这次实验让我对 MATLAB 又有了更深一层的认识,使我对这门课兴趣也更加浓厚。
运行雅可比迭代程序输入: A=[10
b=[1;1;2];X0=[0 0 0]'; X=jacdd(A,b,X0,inf,0.001,100)
2 3;2 10 1;3 1 10];
结果为:
k= 1 X=
0.1000 k= 2 X= 0.0200 k= 3 X= 0.0400 k= 4 X= 0.0276 k= 5 X= 0.0314 k= 6 X= 0.0294 k= 7 X= 0.0301 k= 8 X= 0.0297
6、 设计思想:先化简,把对角线的项提到左边,其它项
(精校版)迭代法解线性方程组数值分析实验报告
(完整word版)迭代法解线性方程组-数值分析实验报告编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)迭代法解线性方程组-数值分析实验报告)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)迭代法解线性方程组-数值分析实验报告的全部内容。
数学与计算科学学院《数值分析》课程设计题目:迭代法解线性方程组专业:信息与计算科学学号: 1309302—24姓名:谭孜指导教师:郭兵成绩:二零一六年六月二十日一、前言:(目的和意义)1.实验目的①掌握用迭代法求解线性方程组的基本思想和步骤.②了解雅可比迭代法,高斯—赛德尔法和松弛法在求解方程组过程中的优缺点。
2。
实验意义迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,它是解高阶稀疏方程组的重要方法。
迭代法的基本思想是用逐次逼近的方法求解线性方程组。
比较雅可比迭代法,高斯—赛德尔迭代方法和松弛法,举例子说明每种方法的试用范围和优缺点并进行比较.二、数学原理:设有方程组b Ax = …① 将其转化为等价的,便于迭代的形式f Bx x += …② (这种转化总能实现,如令b f A I B =-=,), 并由此构造迭代公式f Bx x k k +=+)()1( …③ 式中B 称为迭代矩阵,f 称为迭代向量。
对任意的初始向量)0(x ,由式③可求得向量序列∞0)(}{k x ,若*)(lim x x k k =∞→,则*x 就是方程①或方程②的解。
此时迭代公式②是收敛的,否则称为发散的。
构造的迭代公式③是否收敛,取决于迭代矩阵B 的性 1。
雅可比迭代法基本原理设有方程组),,3,2,1(1n i b x a j j nj ij ==∑= …①矩阵形式为b Ax =,设系数矩阵A 为非奇异矩阵,且),,3,2,1(,0n i a ii =≠从式①中第i 个方程中解出x,得其等价形式)(111j nj j ij ii i x a b a x ∑≠=-= …②取初始向量),,,()0()0(2)0(1)0(n x x x x =,对式②应用迭代法,可建立相应的迭代公式: )(111)()1(∑≠=++-=nj j i k j ij ii k ib x a a x…③ 也可记为矩阵形式:J x J k F B x k +==)()1( …④ 若将系数矩阵A 分解为A=D —L-U ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=--=--00000000000000111211212211212222111211n n n nn n nn nn n n n n a a a a a a a a a a a a a a a a a a U L D A式中⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn a a a D2211,⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=-0000121323121nn n n a a a a a a L ,⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=-0000122311312n n n n a a a a a a U 。
第六章 回归问题——线性方程组求解的迭代法
第六章回归问题——线性方程组求解的迭代法6.1 回归问题6.1.1 问题的引入在数理统计中,把研究对象的全体称为总体,而把组成总体的每个单元称为个体,要了解总体的规律性,必须对其中的个体进行统计观测。
但若对全部个体进行观测,这样能对总体有充分的了解,但实际上行不通,而且也不经济。
所以对整体进行随机抽样观测,再根据抽样观察的结果来推断总体的性质成为一种重要的方法。
许多数理统计建模的实际问题中,一个随机变量与另一个随机变量的关系不是线性关系,而是曲线关系,那么如何确定回归方程呢?下表给出了某种产品每件平均单价y(元)与批量x(件)之间的关系的一组数据,试确定y与x的函数关系。
表6.1.1 已知数据6.1.2 模型的分析先将表6.1.1中的数据进行曲线拟合,然后根据经过拟合的曲线形状确定回归方程的次数。
用MATLAB做出拟合图如下,由下图知,可建立二次回归多项式模型。
图6.1.1 散点图6.1.3 模型的假设假设上表给出的数据是真实的,且以上数据是随机抽取的可以较准确地推断单位与批量的关系,假设单价与批量的函数关系是一个多项式函数,可用多项回归来建立模型。
6.1.4 模型的建立根据模型的分析,可以建立多项式模型22012,(0,)y x x N βββεεδ=+++ ,令212,x x x x ==,则回归方程可写成2201121,(0,)y x x N βββεεδ=+++ ,这是一个二元线性回归模型。
且()T T X X X Y β=,其中:120400 1.18125625 1.70130900 1.651351225 1.551401600 1.481502500 1.40 1603600 1.301654225 1.261704900 1.241755625 1.211806400 1.201908100 1.18X Y ⎡⎤⎡⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢==⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎢⎥⎢⎥⎣⎦⎣012 =ββββ⎤⎥⎥⎥⎥⎥⎥⎥⎡⎤⎥⎢⎥⎥⎢⎥⎥⎢⎥⎣⎦⎥⎥⎥⎥⎥⎢⎥⎢⎥⎦ 6.2 线性方程组迭代法概述迭代法:即用某种极限过程逐步逼近线性方程组精确解的方法。
高斯-赛德尔法--数值分析线性方程组的迭代解法
实验六、高斯-塞德尔法
一、实验目的
通过本实验学习线性方程组的迭代解法。掌握高斯-赛德尔迭代法编程。
二、计算公式
}
if(k==T)printf("\nNo");
else
printf("\n",k);
for(i=0;i<M;i++)
printf("x(%d)=%15.7f\n",i+1,x[i]);
}
四、例题
书P189页例6:用高斯-塞德尔迭代解线性方程组:
取 使得
#include<math.h>
#define M 3
#define N 4
main()
{
double a[M][N]={{8,-3,2,20},
{4,11,-1,33},
{6,3,12,36},
};
double x[M]={0,0,0};//初值
double r,t,q,eps=0.0000202;//需要精度
if(j!=i)q=q+a[i][j]*x[j];
x[i]=(a[i][N-1]-q)/a[i][i];
if(fabs(x[i]-t)>r)r=fabs(x[i]-t);
}
if(r<eps)break;
printf("\nk=%d,",k);
for(i=0;i<M;i++)
printf("\nx[%d]=%lf",i,x[i]);
数值分析第六章线性方程组迭代解法
1)
b2 a21x1(k) a23x3(k)
xn( k
1)
bn an1x1(k) an2 x2(k)
a1n
x(k) n
a11
a2n xn(k) a22
an,n1
x(k) n1
ann
x(k1) D1(L U ) x(k) D1b
D1(D A) x(k) D1b
(I D1A) x(k) D1b x(k) D1(b Ax(k) )
x(7) = ( 2.0000, 3.0000, -1.0000 )T 如何确定 SOR 迭代中的最优松弛因子是一件很困难的事
26
收敛性
收敛性定理 Jacobi 迭代收敛的充要条件 (J)<1 G-S 迭代收敛的充要条件 (G)<1 SOR 迭代收敛的充要条件 (L)<1
Jacobi 迭代收敛的充分条件 ||J|| <1 G-S 迭代收敛的充分条件 ||G|| < 1 SOR 迭代收敛的充分条件 ||L|| < 1
x1( k x2( k
1) 1)
1
x(k) 2
2
8
x ( k 1) 1
x(k) 3
3
x3(k1)
5
x ( k 1) 2
2
迭代可得: x(1) = ( 0.5000, 2.8333, -1.0833 )T
x(9) = ( 2.0000, 3.0000, -1.0000 )T
25
举例
SOR 迭代:
x(k1) i
bi
i 1
a x(k1) ij j
n
aij
x(jk
)
aii
j 1
j i 1
解线性方程组的迭代法
(0) (1) (k ) x1 x1 x1 (0) (1) (k ) (0) (1) (k ) x x2 , x x2 ,, x x2 , x (0) x (1) x(k ) 3 3 3
或写为 x B0 x f , 其中
0 4 B0 11 6 12 3 8 0 3 12 2 8 1 , 11 0 20 8 33 f . 11 36 12
5
( k 1) (k ) (k ) x1 (3 x2 2 x3 20) / 8, x ( k 1) (4 x ( k ) x ( k ) 33) /11, 1 3 2 ( k 1) (k ) (k ) x3 (6 x1 3x2 36) /12.
7
构造迭代法
x1( k 1) 2 x2 ( k ) 5, ( k 1) (k ) x 3 x 5. 1 2
则对任何的初始向量,得到的序列都不收敛.
对于给定方程组 x Bx f, 设有唯一解 x * ,则
x* Bx * f .
(1.5)
又设 x ( 0 ) 为任取的初始向量,按下述公式构造向量序列
4
任取初始值,例如取 x ( 0) (0, 0, 0)T .
将这些值代入(1.3) 式右边 (若(1.3)式为等式即求得
方程组的解,但一般不满足). 得到新的值
(1) (1) (1) T x (1) ( x1 , x2 , x3 ) (2.5, 3, 3)T ,
再将 x (1) 分量代入(1.3)式右边得到 x ( 2 ),反复利用这个计
解线性方程组的迭代法
4.若 x x (0) , 输出x, 停机;否则转5。 5.若k N , 置k 1 k , xi xi(0) (i 1, 2, , n), 转3; 否则,输出失败信息,停机。 评价:公式简单,每迭代一次只需计算一次矩阵和向量 的乘法,不改变M 的稀疏性,需两组工作单元,存 x ( k ) , x ( k 1) 。
第六章、解线性方程组的迭代法
• 直接法: 经过有限次运算后可求得方程组精确解 的方法(不计舍入误差!) • 迭代法:从解的某个近似值出发,通过构造一个 无穷序列去逼近精确解的方法。(一般有限步内 得不到精确解) • 直接法比较适用于中小型方程组。对高阶方程组, 既使系数矩阵是稀疏的,但在运算中很难保持稀 疏性,因而有存储量大,程序复杂等不足。 • 迭代法则能保持矩阵的稀疏性,具有计算简单, 编制程序容易的优点,并在许多情况下收敛较快。 故能有效地解一些高阶方程组。
k
(i 1, 2, , n)
( ( 其中x ( k ) ( x1( k ) , x2k ) , , xnk ) )T , x ( x1 , x2 , , xn )T 。
证:由定义, ( k ) }收敛于x即 lim x ( k ) x 0 {x
k
而对任意1 i n,有0 xi( k ) xi max x (jk ) x j x ( k ) x
1n
1 a11 a11 1 a 21 a 22 I 1 a nn a n1
a12 a1n a 22 a 2n 1 I- D A a nn a n2
T
同样
定义:设{ x ( k ) }为R n中的向量序列,x R n,如果 lim x ( k ) x 0
解线性方程组的迭代法
0.9906
0.0355
5 1.01159 0.9953
1.01159 0.01159
6 1.000251 1.005795 1.000251 0.005795
7 0.9982364 1.0001255 0.9982364 0.0017636
可见,迭代序列逐次收敛于方程组的解, 而且迭代7次得到精确到小数点后两位的近似解.
a11x1 a12x2 a13x3 b1 a21x1 a22x2 a23x3 b2 a31x1 a32x2 a33x3 b3
从而得迭代公式
x1
a12 a11
x2
a13 a11
x3
b1 a11
x2
a21 a22
x1
a23 a22
x3
b2 a22
x3
a31 a33
M 00.8 00..75
但(M)=0.8<1,所以迭代法 x(k+1)=Mx(k)+g 是收敛的.
由(3.5)式可见,‖M‖越小收敛越快,且当‖x (k) -x(k-1) ‖很小时,‖x(k) –x*‖就很小,实际中用‖x (k) x(k-1) ‖<作为
迭代终止的条件。 例如,对例1中的Jacobi迭代计算结果
+‖x(k+1) –x*‖‖M‖‖x(k) –x(k-1)‖+‖M‖‖x(k) –x*‖ 从而得‖x(k) –x*‖‖M‖‖x (k) -x(k-1) ‖/(1- ‖M‖)
(3.5) (3.6)
估计式(3.5)得证。利用(3.5)式和
‖x(k+1) 得到
-x(k)
‖‖M‖‖x
(k)
-x(k-1)
‖
解线性方程组 的迭代法
数值分析实验报告--实验6--解线性方程组的迭代法
1 / 8数值分析实验六:解线性方程组的迭代法2016113 张威震1 病态线性方程组的求解1.1 问题描述理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(),,,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。
实验要求:(1)选择问题的维数为6,分别用Gauss 消去法、列主元Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数(至少到100),仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?(3)讨论病态问题求解的算法1.2 算法设计首先编写各种求解方法的函数,Gauss 消去法和列主元高斯消去法使用实验5中编写的函数myGauss.m 即可,Jacobi 迭代法函数文件为myJacobi.m ,GS 迭代法函数文件为myGS.m ,SOR 方法的函数文件为mySOR.m 。
1.3 实验结果1.3.1 不同迭代法球求解方程组的结果比较选择H 为6*6方阵,方程组的精确解为x* = (1, 1, 1, 1, 1, 1)T ,然后用矩阵乘法计算得到b ,再使用Gauss 顺序消去法、Gauss 列主元消去法、Jacobi 迭代法、G-S 迭代法和SOR 方法分别计算得到数值解x1、x2、x3、x4,并计算出各数值解与精确解之间的无穷范数。
Matlab 脚本文件为Experiment6_1.m 。
迭代法的初始解x 0 = (0, 0, 0, 0, 0, 0)T ,收敛准则为||x(k+1)-x(k)||∞<eps=1e-6,SOR方法的松弛因子选择为w=1.3,计算结果如表1。
6线性方程组迭代法
§1 Norms of Vectors and Matrices – Matrix Norms
常用矩阵范数:
Frobenius 范数
对方阵 A R 算子范数
n n
|| A ||F
2 | a | ij — 向量|| ·||2的直接推广 i 1 j 1
n
n
以及 x R n 有 || Ax ||2 || A ||F || x ||2
x ( I A1 A)1 A1 Ax
(只要 A充分小,使得 || A1A || || A1 || || A || 1 )
|| A || || A1 ||
|| A || || x || || A1 || || A || || A || || A || || x || 1 || A1 || || A || 1 1 || A || || A || || A ||
|| A || || A1 ||
( A A) x Ax x A1 A难得准确解。 ( x x) 1 A ( I A A) x Ax || x || 1
|| x x || || A || || A || || A || || A1 || || A || || A ||
A( x x ) b b
x A1 b
绝对误差放大因子
|| x || || A1 || || b ||
1 || A || || x || || b ||
相对误差放大因子
又 || b || || Ax || || A || || x ||
常用条件数有:
cond (A)1
实验解线性方程组的基本迭代法实验
>> [y,n]=GaussSeidel(A,b,x0,eps)
y =
0.4814
0.5732
0.6325
0.6518
0.6606
0.6640
0.6654
0.6660
0.6662
0.6663
0.6663
0.6663
0.6661
0.6656
0.6642
0.6609
0.6521
function [y,n]=SOR(A,b,x0,w,eps)
%*************************************************
%函数名称SOR松弛迭代函数
%参数解释A系数矩阵
% w松弛因子
% b常数项
% x0估计解向量
% eps误差范围
%返回值
% y解向量
% n迭代次数
A(i,j)=-1/4;
end
end
end
>> b=ones(20,1);
>> x0=zeros(20,1);
>> eps=0.005;
>> [y,n]=Jacobi(A,b,x0,eps)
y =
0.4813
0.5729
0.6321
0.6513
0.6600
0.6632
0.6646
0.6651
0.6653
n =
100
第二次给定初始向量为20行一列的0,
右端面项向量b=20行一列的1
迭代误差要求0.00005
松弛因子为1.2
在Command Window中输入
第六章解线性方程组的迭代法
a11
A
a22
0
-
a21
0
ann
an1
an2
D LU
x M 1Nx M 1b
这样,可构造迭代法:
0 a12
-
0
0
a1n
a2n
0
取x(0)为初始向量
x(k
1)
Bx(k )
f
(k 0,1,
)
其中:B M 1N M 1(M A) I M 1A, f M 1b, 称 B I M 1A
为迭代法的迭代矩阵,选取 M 阵,就得到解 Ax b 的各
种迭代法。
6.2 基本迭代法
设 aii 0(i 1, 2, , n) ,并将 A 写为三部分:
Jacobi迭代法的分量表示
记 x(k) (x1(k) , , xi(k) , , xn(k) )T 由Jacobi迭代公式可得:Dx(k1) (L U )x(k) b ,写成分量
i1
n
形式即为:aii xi(k1) aij x(jk)
aij
x(k) j
13 15
例:用迭代法求解线性方程组:
9x1 x2 x3 7 x1 10x2 x3 8
x1 x2 15x3 13
记为:Ax b,其中:
9 1 1 x1 7
A
1
10
1 ,
x
x2
线性方程组迭代解法
实验六:线性方程组迭代解法1)实验目的• 熟悉Matlab 编程;• 学习线性方程组迭代解法的程序设计算法 2)实验题目1.研究解线性方程组Ax=b 迭代法收敛速度。
A 为20阶五对角距阵⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡------------------=321412132141412132141412132141412132141213 A 要求:(1)选取不同的初始向量x 0 及右端向量b ,给定迭代误差要求,用雅可比迭代和高斯-赛德尔迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。
(2)用SOR 迭代法求解上述方程组,松弛系数ω取1< ω <2的不同值,在 时停止迭代.记录迭代次数,分析计算结果并得出你的结论。
2.给出线性方程组b x H n =,其中系数矩阵n H 为希尔伯特矩阵:()n n ij n h H ⨯ℜ∈=,.,,2,1,,1n j i j i ih ij =-+=假设().,1,,1,1*x H b x n n T=ℜ∈= 若取,10,8,6=n 分别用雅可比迭代法及SOR 迭代(5.1,25.1,1=ω)求解,比较计算结果。
3)实验原理与理论基础1.雅克比(Jacobi )迭代法算法设计:①输入矩阵a 与右端向量b 及初值x(1,i); ②按公式计算得),,2,1(1)(1)1(n i x a b a x k j n i j j ij i iik i =⎪⎪⎪⎭⎫ ⎝⎛-=∑≠=+2.高斯――赛得尔迭代法算法设计:1. 输入矩阵a 与右端向量b 及初值x(1,i).2.⎪⎪⎭⎫⎝⎛--=∑∑+=+-=+)(1)1(11)1(1k j ni j ij k j i j ij i iik ix a x a b a x(i = 1, 2,…, n )3.超松驰法算法设计:①输入矩阵a 与右端向量b 及初值x(1,i)。
解线性方程组的迭代法
解线性方程组的迭代法设线性方程组为Ax b =其中,A 为n 阶非奇异矩阵,n x R ∈,n b R ∈,0b ≠。
当A 为低阶稠密矩阵,直接法是比较好的方法。
当A 为高阶稀疏矩阵,例如偏微分方程数值解所产生的方阵,这时采用迭代法比较合适了。
不过,这里所谓低阶与高阶并没有明显的分界,在高性能计算机面前,一万阶也不算高。
所谓稀疏矩阵,笼统地说,就是零元素占绝大多数的矩阵,反之就是稠密矩阵了。
1.迭代法的一般理论将Ax b =等价地改写为方程组x Gx f =+其实,就是将原方程组等价变形为不动点方程的格式,以便于进行不动点迭代。
任取初始向量(0)x ,作 (1)(0)x Gx f =+, (2)(1)x Gx f =+, ……(1)()k k x Gx f +=+,0,1,2,k =⋅⋅⋅G 称为迭代矩阵。
如果向量序列{}()k x 是收敛的,假设()*lim k k x x →∞=,或者()*lim 0k k x x →∞−=,则**x Gx f =+也就是说*x 是x Gx f =+的解,即Ax b =的解,而它与初始向量(0)x 的选取无关。
如何保证该向量序列收敛呢? 设误差()()*k k x x ε=−,则(1)(1)*()*()*()()()k k k k k x x Gx f Gx f G x x G εε++=−=+−+=−=,0,1,2,k =⋅⋅⋅因此,()(1)2(2)3(3)(0)k k k k k G G G G εεεεε−−−====⋅⋅⋅=,0,1,2,k =⋅⋅⋅为了保证对任意初始向量(0)x ,{}()k ε收敛,必须且只须{}k G 收敛。
那么,如何保证{}k G 收敛,{}k G 若收敛,会收敛到哪里?这就需要如下一个引理。
引理1.设n n B C ×∈,则{}k B 收敛当且仅当()1B ρ<。
如果()1B ρ<,则lim 0k k B →∞=。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六 解线性方程组的迭代法
实验6.1(病态的线性方程组的求解)
问题提出:理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?
实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵, n j i j i h h H j i n n j i ,,2,1,,11,)(,, =-+==⨯
这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。
实验要求:
(1)选择问题的维数为6,分别用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?
(2)逐步增大问题的维数,仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?
(3)讨论病态问题求解的算法。