计算方法 解线性方程组的迭代法

合集下载

第四章-解AX=b的迭代法

第四章-解AX=b的迭代法

•迭代格式的收敛性
2 k 引理4.1 (线性代数定理) 设矩阵序列 IM , , M , , M ,
k l i m M 0 ( M ) 1 . k

(证明见关治和陈景良编《数值计算方法》P410-412) 定理4.1 设迭代格式为
( k 1 ) ( k ) xM x g , k 0 , 1 , 2 , ( 4 . 3 )
充分性()设ρ(M)<1,证{x(k)}收敛。
如果ρ(M)<1 ,则I-M为非奇异矩阵。事实上,因
为ρ(M)<1,λi<1,因此λ=1不是M的特征值,即
| 1 IM || IM |0 .
所以方程组 (I-M)x = f 有惟一解x*,满足(I-M)x* = f ,即 x*=Mx* + f 。于是
( k ) ( k 1 ) 2 ( k 2 ) x x * M ( x x * ) M ( x x * ) k ( 0 ) k M ( x x * ) M . 0
由引理4.1知,
k () k I f ( M ) < 1 ,t h e nl i m M 0 , l i m ( x x * ) 0 , i . e . k k () k l i m x x * . k
写成矩阵形式
x1 0 x b 2 21 31 x3 b x b n n1
或简记为
b 12 b 13 0 b23 b 0 32 bn2 bn3
b 1n x 1 g 1 b2n x2 g2 b 3n x 3 g3 g x 0 n n
( k ) ( k ) ( k 1 ) ( k ) x x * x x q x x *

第五章 解线性方程组的迭代解法

第五章 解线性方程组的迭代解法
i 1 n 1 xi = [bi ∑ aij x j ∑ aij x j ] , i = 1, 2,, n. (*) ) aii j =1 j = i +1
定义迭代法为: 定义迭代法为:
x ( k + 1) = G J x ( k ) + g
其中Jacobi迭代矩阵:GJ = D1 ( L + U ) 迭代矩阵: 其中 迭代矩阵
g = D 1b = (7.2, 8.3, 8.4)T 取 x ( 0 ) = (0, 0, 0)T , 代入迭代式,得x(1) = Bx ( 0 ) + g = (7.2, 8.3, 8.4)T x ( 2 ) = Bx (1) + g = (9.71,10.70,11.5)T x (9 ) = (10.9994,11.9994,12.9992) 精确解为 x = (11,12,13)T .

A = D L U
其中 D = diag (a11 ,, ann ) , L, U 分别为 A 的 严格下、上三角形部分元素构成的三角阵 严格下、上三角形部分元素构成的三角阵. Gauss-Seidel方法的矩阵形式为 方法的矩阵形式为
x ( k +1) = D1 ( Lx ( k +1) + Ux ( k ) + b)
或者
x ( k +1) = ( D L)1Ux ( k ) + ( D L)1 b
( 这说明Gauss-Seidel方法的迭代矩阵为 D L)1U 方法的迭代矩阵为 这说明
从而有
定理5.2 定理5.2 Gauss-Seidel方法收敛的充分必要条件为 方法收敛的充分必要条件为
ρ (GG ) < 1 或

计算方法3_线性方程组迭代解法

计算方法3_线性方程组迭代解法

计算方法3_线性方程组迭代解法线性方程组的迭代解法是解决线性方程组的一种常见方法,常用于大规模的线性方程组求解。

该方法通过不断迭代更新解的近似值,直到满足一定的收敛准则为止。

线性方程组的迭代解法有很多种,其中最经典的是雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法。

本文将分别介绍这三种迭代解法及其计算方法。

雅可比迭代法是一种比较简单的线性方程组迭代解法,它的基本思想是先将线性方程组转化为对角占优的形式,然后通过迭代求解逐渐接近精确解。

雅可比迭代法的迭代公式为:其中,x^(k+1)是第k+1次迭代的近似解,n是未知数的个数,a_ij 是系数矩阵A的元素,f_i是方程组的右端向量的元素。

雅可比迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式,即保证矩阵A的对角元素绝对值大于其它元素的绝对值。

2.初始化向量x^(0),设定迭代终止准则。

3.根据雅可比迭代公式,计算x^(k+1)。

4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。

高斯-赛德尔迭代法是雅可比迭代法的改进方法,它的基本思想是在每次迭代计算x^(k+1)时,利用已经计算出的近似解作为x的一部分。

高斯-赛德尔迭代法的迭代公式为:其中,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。

高斯-赛德尔迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式。

2.初始化向量x^(0),设定迭代终止准则。

3.根据高斯-赛德尔迭代公式,计算x^(k+1)。

4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。

超松弛迭代法是对高斯-赛德尔迭代法的一种改进方法,它引入了松弛因子ω,通过调整参数ω的值,可以加快迭代的收敛速度。

超松弛迭代法的迭代公式为:其中,0<ω<2,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。

线性方程组的迭代式求解方法

线性方程组的迭代式求解方法

线性方程组的迭代式求解方法迭代法解方程的基本原理1.概述把 Ax=b 改写成 x=Bx+f ,如果这一迭代格式收敛,对这个式子不断迭代计算就可以得到方程组的解。

道理很简单:对 x^{(k+1)}=bx^{(k)}+f 两边取极限,显然如果收敛,则最终得到的解满足 \lim_{k\rightarrow\infty } x^{(k)}=x^*=Bx^*+f ,从而必然满足原方程 Ax^*=b 。

迭代方法的本质在于这一次的输出可以当作下一次的输入,从而能够实现循环往复的求解,方法收敛时,计算次数越多越接近真实值。

2.收敛条件充要条件:迭代格式 x=Bx+f 收敛的充要条件是 \rho (B)<1充分条件: \Vert B\Vert <1即 \Vert B\Vert <1 \Rightarrow \rho(B)<1\Leftrightarrow 迭代收敛一、Jacobi迭代法怎样改写Ax=b ,从而进行迭代求解呢?一种最简单的迭代方法就是把第i行的 x_i 分离出来(假定 a_{ii} \ne 0 ):\sum_{j=1}^{n}a_{ij}x_j=b_i\Rightarrow x_i=\frac{b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j}{a_{ii}}\quad \\这就是Jacobi(雅可比)迭代法。

迭代格式给定x^{(0)}=\left[x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)}\rig ht]^T ,则Jacobi法的迭代格式(也称分量形式)为x_i^{(k+1)}=\frac{1}{a_{ii}}\left ( {b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j^{(k)}}\right),\quadi=1,2,\cdots,n\\矩阵形式设 A=D-L-U。

Jacobi法的矩阵形式(也称向量形式)为x^{(k+1)}=B_Jx^{(k)}+D^{-1}b\\其中迭代矩阵 B_J=D^{-1}(L+U)收敛条件\begin{eqnarray} \left. \begin{array}{lll} \VertB_J\Vert <1 \\ A 严格对角占优\\ A, 2D-A对称正定\end{array} \right \} \end{eqnarray} \Rightarrow \rho (B_J)<1\Leftrightarrow 迭代收敛特别地,若 A 对称正定且为三对角,则 \rho^2(B_J)=\rho (B_G)<1 。

高斯-赛德尔法--数值分析线性方程组的迭代解法

高斯-赛德尔法--数值分析线性方程组的迭代解法
高斯赛德尔法数值分析线性方程组的迭代解法线性方程组的迭代解法迭代法求解线性方程组高斯赛德尔迭代法高斯赛德尔迭代法原理高斯赛德尔迭代赛德尔迭代法线性方程组的解法pkpm线性方程组解法非线性方程数值解法
实验六、高斯-塞德尔法
一、实验目的
通过本实验学习线性方程组的迭代解法。掌握高斯-赛德尔迭代法编程。
二、计算公式
}
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]);

实验4 求解线性方程组的迭代法

实验4 求解线性方程组的迭代法

实验4 解线性方程组的迭代法一、稀疏矩阵的生成和运算实验内容:稀疏矩阵相关命令的熟悉。

实验要求:1、熟悉sparse、full、nnz、spy等命令的使用方法.(实验报告)注意:spy使用时要加上输入参数,直接运行spy会出现与本课程无关的结果。

2、了解sprand命令的用法。

3、熟悉speye、condest、normest、spdiags等命令的使用方法,并生成107阶的三对角矩阵:(实验报告)二、大型稀疏线性方程组的求解实验内容:用不同的迭代法求解n阶大型稀疏矩阵Ax=b(n=1e+4)。

实验要求:(1)数学问题的生成:(a)使用sprand命令生成,稀疏度0.001,并通过spy观察矩阵的结构;(b)运行PPT第21页的两段代码,分别生成A,运行结果有什么区别?注意:如果用稠密方式生成矩阵,可能会导致内存不够。

(2)增大矩阵阶数到1e+6,使用MATLAB自带的pcg与“\”运算,以及分别Gauss消去法、Jacobi迭代法和Gauss-Seidel迭代法分别求解以下Sx=b,看看运算时间对比:(实验报告)b为全1向量,S为以下代码所生成:m=1000,n=m*m;eone=ones(m,1);s=spdiags([-eone,8*eone,-eone],[-1,0,1],m,m);E=speye(m);a1=blkdiag(kron(E,s));a2=spdiags([ones(n,1)],[m],n,n);A=a1-a2-a2';注意:pcg命令只适用于对称正定矩阵三、病态的线性方程组的求解实验内容:考虑方程组Hx=b的求解,其中系数矩阵H为Hilbert矩阵,首先给定解(例如取为各个分量均为1)再计算出右端b的办法给出确定的问题。

实验要求:(1)设定n=6,分别用Gauss消去法、Jacobi迭代法和Gauss-Seidel迭代法求解方程组,其各自的结果如何?各方法的误差比较如何?(实验报告)(2)逐步增大问题的维数100、1000、3000,仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?(实验报告)。

计算方法 第八章 解线性方程组的迭代法 高斯迭代法 迭代法的收敛性


3
1 1 1 1 1 1 1 1 1
1 . . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0
0 2 1 7 5 8 8 2 1 6 9 3 8 9 1 1
1 1 1 1 1 1 1 1 1
1 . 1. 1 . 1 9 . 1 9 . 1 9 . 1 9 . 1 9 . 1 9 . 1 9 . 1 9 . 1 9
x3 0 1.1644 1.282054 1.297771 1.299719 1.299965 1.299996 1.299999 1.3
16
开始
输入aij , bi , N , , i, j 1 N
N 线形方程组组数 A 系数矩阵aij B 常数矩阵bi X 迭代过程中的解xi Y-上一轮迭代的解yi a b 将b的值赋给a 计算步骤: i 1, 2 n 1 .输入原始数据aij j 1, 2 n bi i 1, 2 n , n 2输入初使迭代值x (0) . xi 0, yi 0, i 1, 2 n 3.迭代计算x ( k ) i 1 n j 1 n 如 i j ,则xi 4.精度判断 i 1 n 如 xi yi 则j 1 n yi xi 转第三步再计算 bi aij x j aii
量利用最新的迭代值,得到
xi( k 1)
i 1 n 1 (bi aij x (jk 1) aij x k ) (i 1, 2, , n) j aii j 1 j i 1
上式称为 Gauss-Seidel 迭代法. 13
§8.2 高斯-塞德尔迭代法
( ( ( ( ( x1 k 1) 1 ( a12 x 2k ) a13 x 3k ) a14 x4k ) a1n x nk ) b1 ) a11 ( ( ( ( ( x 2k 1) 1 ( a 21 x1 k 1) a 23 x 3k ) a 24 x4k ) a 2 n x nk ) b2 ) a 22 ( ( ( ( ( x 3k 1) 1 ( a 31 x1 k 1) a 32 x 2k 1) a 34 x4k ) a 3 n x nk ) b3 ) a 33

解线性方程组的迭代法

定义2 (向量范数) 如果在 R n 中定义了实值函数,记为 || || , 对所有 x, y R n 以及 R ,若满足
|| x || 0 (非负性) ; (1)|| x || 0 ,当且仅当 x 0 时,
(2) || x ||| | || x || (齐次性); (3) || x y |||| x || || y || (三角不等式). 则称 || x || 为向量 x 的范数 (或模).
4.1.2 向量范数和向量序列的极限
常用的向量范数:设 x R n (1)向量的 - 范数 (最大范数): || x || max | xi |
1 i n
|| x ||1 (2)向量的 1 - 范数 (绝对值范数):
(3)向量的 2 - 范数:|| x ||2 ( x , x ) (
|| A ||2 3+2 2 , || A ||F 6
4.1.3 矩阵范数和矩阵序列的极限
(k ) ) R nn ,如果存 定义5 (矩阵序列的极限) 设有矩阵序列 Ak (aij
在 A (aij ) R nn,使
k (k ) lim aij aij ,
i, j 1, 2,
(4) || AB |||| A || || B || ; 则称 || A || 为矩阵 A 的范数.
4.1.3 矩阵范数和矩阵序列的极限
相容性: 设有矩阵范数 || ||s 和向量范数 || ||t ,如果对任何向量 x R n 及矩阵 A R nn ,有/2 || A ||F ( aij ) i , j 1 n
它是与向量 2-范数相容的矩阵范数,但不是从属范数.
4.1.3 矩阵范数和矩阵序列的极限

解线性方程组的迭代法


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)

解线性方程组 的迭代法

第六章 解线性方程组的迭代法.ppt


称 J 为解 Ax b的雅可比迭代法的迭代阵.
(2.5)
15
研究雅可比迭代法(2.5)的分量计算公式.
记 x(k ) ( x1(k ) ,, xi(k ) ,, xn(k ) )T ,
由雅可比迭代公式(2.5), 有
Dx(k1) (L U )x(k ) b,

i1
n
aii
9
定义1 (1) 对于给定的方程组 x Bx f,用公式(1.6) 逐步代入求近似解的方法称为迭代法(或称为一阶定常迭代 法,这里 B与 k无关).
(2) 如果 lim x(k) 存在(记为 x * ),称此迭代法收敛, k
显然 x *就是方程组的解,否则称此迭代法发散. 研究 {x(k )}的收敛性. 引进误差向量
22
例2 用高斯-塞德尔迭代法解线性方程组(1.2).

8x1 3x2 2x3 4x1 11x2 x3

20, 33,
6x1 3x2 12x3 36.
(1.2)
取 x(0) (0, 0, 0)T, 按高斯-塞德尔迭代公式

x ( k 1) 1

记为 Ax b , 其中
(1.2)
8 A4
6
3 2 11 1, 3 12
x1 x x2 ,
x3
20 b 33 .
36
方程组的精确解是 x* (3, 2, 1)T . 现将(1.2)改写为
4

12
于是,求解 Ax b转化为求解 Mx Nx b,即求解
Ax b 求解x M 1Nx M 1b.
可构造一阶定常迭代法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务:设 A Rnn 非奇异 ,b Rn,求解方程组
Ax b
(1)
步骤1:经过某变换构造出方程组(1)的一个等价同解
方程组
x Gx d
步骤2:建立迭代公式:
x(k 1) Gx(k) d, k 0,1,...
步骤3:选定初始向量 x(0) x1(0), x(20), … , x(n0) T ,
4 11
x1
1 11
x3
3
x3
1 2
x1
1 4
x2
3
右端不含x1 右端不含x2 右端不含x3
由此,建立迭代公式:
x1(k 1)
3 8
x(k) 2
1 4
x(k) 3
5 2
x
(k 2
1)
4 11
x(k) 1
1 11
x(k) 3
3
x
(k 3
1)
1 2
x(k) 1
1 4
x(k) 2
3
取初始向量
x(0)

迭代法的基本思想
第六章 解线性方程组的迭代法
• 迭代法是求解线性方程组,尤其是具有大型稀疏矩 阵的线性方程组的重要方法之一。
• 凡是迭代法都有一个收敛问题,有时某种方法对一 类方程组迭代收敛,而对另一类方程组进行迭代时 却会发散。
• 一个收敛的迭代法不仅具有程序设计简单,适于自 动计算,而且较直接法更少的计算量就可获得满意 的解。
结果表明,此迭代过程收敛于方程组的精确解 x*= (3, 2, 1)T。
考察一般的方程组,将n元线性方程组
a11x1 a12x2 … a1nxn b1
a21x1
a22x2
… a2nxn …
b2
an1x1 an2x2 … annxn bn
n
写成
aij x j bi
i 1,2,… , n
xx21
x1 2x1
x2 4x2
3 3
建立迭代公式:
迭代不收敛 的例子
xx(2k1(k11))
x1(k) 2x1(k)
x(2k) 4x(2k)
3 3
取:
x(0) 1
x(0) 2
0
xx(2k1(k11))
x1(k) 2x1(k)
x(2k) 4x(2k)
3 3
x(0) 1
x(0) 2
收敛时,在迭代公式
x ( k1) Gx( k) d 中令 k ,则
(k 0,1,…)
x* Gx* d
故 x * 是方程组
Ax b
的解。
【注1】可以构造各种不同的迭代公式。 【注2】并非所有的迭代公式都收敛
例1 用迭代法求解线性方程组
2x1 2x1
x2 5x2
3
3
解: 构造方程组的等价方程组
j 1
若aii 0, (i 1,2, … , n) ,分离出变量 x i
xi
1 aii
(bi
n
aijx j )
j1
ji
i 1,2,… , n
由此,得到如下的被称为解方程组的 Jacobi迭代公式:
x(k 1) i
1 aii
(bi
n
aij
x(k) j
)
j1
ji
i 1,2,… n
实际计算中,要用雅可比迭代法公式的分量形式:
0
进行迭代计算得:
xx(21(11))
3 3,
xx(21(22))
3 3,
xx(21(33))
9 9,
xx(21(44))
15 15,
xx(21(55))
33 33,
迭代解离精确解
x1 1, x2 1
越来越远。 迭代不收敛。原因是迭代公式不正确。
Home
雅可比(Jacobi)迭代法
§6.2 雅可比(Jacobi)迭代法
bn )
(k=0, 1, 2,…)
例3 试用雅可比迭代法解线性方程组
x1 2x2 - 2x3 1 x1 x2 x3 1 2x1 2x2 x3 1
精确解
x1 -3 x2 3 x3 1
解: 先构造雅可比迭代公式:
x(k 1) 1
x1(k 1)
1 a11
(a12x
(k) 2
a13x(3k)
… a1nx(nk)
b1)
x
(k 2
1)
1 a22
(a21x1(k)
a23x(3k)
… a2nx(nk)
b2)

x
(k n
1)
1 ann
(an1x1(k)
an2x
(k) 2

an
x(k)
n1 n1
计算方法 (Numerical Analysis)
第9次Hale Waihona Puke 解线性方程组的迭代法主要内容
1. 迭代法的基本思想 2. 雅可比(Jacobi)迭代法 3. 雅可比迭代法的矩阵表示 4. 高斯-塞德尔(Gauss-Seidel)迭代法 5. Gauss—Seidel 迭代法的矩阵表示 6. Jacobi迭代与Gauss-Seidel迭代算法实
§6.2.1 雅可比迭代法算法构造
例2. 利用迭代法求解方程组
8x1 3x2 2x3 20 4x1 11x2 x3 33 6x1 3x2 12x3 36
已知精确解: x*=(3, 2, 1)T
解:以下列独特的方式分离出 x1, x,2 x 3
x1
3 8
x2
1 4
x3
5 2
x2
69 22
x(3) 2
45 22
x(3) 3
171 176
当近似解能达到预先要求的精度,迭代终止,以最后
得到的近似解作为线性方程组的解。
当迭代到第10次有:
x ( 10)
( x1( 10),
x
(1 2
0),
x
(1 3
0))
T
( 3 .0 0 0 0 3 21,.9 9 9 8 7,4 0 .9 9 9 8 8)1T
(x1(0) ,
x(0) 2
,
x(0) 3
)T
(0,0,0)T
进行迭代, 可以逐步得出一个近似解的序列:
(x1(k) ,
x(k) 2
,
x(k) 3
),
k
1,2,..., n
同学们, 迭代两次
x(1) 1
5 2
x(1) 2
3
x(1) 3
3
x(2) 1
23 8
x(2) 2
26 11
x(2) 3
1
x(3) 1
§6.1 迭代法的基本思想
若A Rnn 非奇异 ,b Rn,则线性方程组
Ax b
有唯一解x A1b,
a) 将线性方程组转化为便于迭代的等价方程组
b)
对任选一组初始值
x
( i
0
)(
i
1,2,… , n),按某种
计算规则,不断地对所得到的值进行修正,最终
获得满足精度要求的方程组的近似解。
迭代法的基本步骤
反复使用迭代式进行迭代,期望逼近精确解,直到满
足精度要求为止。
收敛定义:如果
x
(k 1
),
x
(k 2
),
… ,
x(k) n
T
当k∞ 时,存在极限
x*
x 1* ,
x
* 2
,

,
x
* n
T
则称迭代法是收敛的,否则就是发散的。
迭代法是收敛的意味着:
lim
k
x(k) i
x, i* i
1 , 2 , . . .n,
相关文档
最新文档