数值分析课程设计比较各种迭代收敛速度模板
雅可比迭代法和高斯塞德尔迭代法对比

雅可比迭代法和高斯塞德尔迭代法对比引言雅可比迭代法和高斯塞德尔迭代法是数值分析中常用的迭代求解线性方程组的方法。
它们都是通过迭代更新变量的值,逐渐逼近方程组的真实解。
本文将详细讨论这两种迭代法的原理、特点和适用情况,并给出一些比较和应用实例。
雅可比迭代法(Jacobi Iteration)雅可比迭代法是一种逐个更新变量的值的迭代方法。
对于线性方程组Ax = b,雅可比迭代法的更新公式如下:x i(k+1)=1a ii(b i−∑a ijnj=1j≠ix j(k))其中,aii表示系数矩阵A的第i行第i列的元素,而bi表示方程组的第i个方程的右侧常数。
特点1.雅可比迭代法的计算过程简单,容易理解和实现。
2.每次迭代只更新一个变量的值,相邻两次迭代之间没有数据依赖关系,可以并行计算。
3.雅可比迭代法收敛的条件是系数矩阵A满足严格对角占优条件或对称正定条件。
优缺点•优点:简单易懂,在一些特定情况下收敛速度较快。
•缺点:收敛速度相对较慢,尤其是在系数矩阵A的条件数较大时;不适用于对角占优条件较弱的问题。
高斯塞德尔迭代法(Gauss-Seidel Iteration)高斯塞德尔迭代法是一种逐个更新变量的值,并立即使用最新的值进行下一个变量的更新的迭代方法。
对于线性方程组Ax = b,高斯塞德尔迭代法的更新公式如下:x i(k+1)=1a ii(b i−∑a iji−1j=1x j(k+1)−∑a ijnj=i+1x j(k))特点1.高斯塞德尔迭代法相较于雅可比迭代法,每次迭代可以使用当前迭代步骤中已更新的变量值,因此收敛速度更快。
2.如果系数矩阵A是严格对角占优或对称正定的,高斯塞德尔迭代法一定收敛。
优缺点•优点:相较于雅可比迭代法,收敛速度更快,对于条件数较大的问题也有较好的效果。
•缺点:实现稍微复杂一些,每次迭代的计算依赖于之前已更新的变量值,无法并行计算。
雅可比迭代法和高斯塞德尔迭代法的比较收敛速度在一些特定的问题中,雅可比迭代法可以比高斯塞德尔迭代法更快地收敛。
数值分析课程实验报告-二分法和牛顿迭代法

用二分法和牛顿迭代法求方程的根
算法名称用二分法和牛顿迭代法求方程的根
学科专业机械工程
作者姓名xxxxxx
作者学号xxxBiblioteka xx作者班级xxxxxxxx
xx大学
二〇一五年十二月
《数值分析》课程实验报告
实验名称
用二分法和牛顿迭代法求方程的根
成绩
一、问题背景
在科学研究与工程计算中,常遇到方程(组)求根问题。若干个世纪以来,工程师和数学家花了大量时用于探索求解方程(组),研究各种各样的方程求解方法。对于方程f(x)=0,当f(x)为线性函数时,称f(x)=0为线性方程;当f(x)为非线性函数时,称式f(x)=0为非线性方程。对于线性方程(组)的求解,理论与数值求法的成果丰富;对于非线性方程的求解,由于f(x)的多样性,尚无一般的解析解法。当f(x)为非线性函数时,若f(x)=0无解析解,但如果对任意的精度要求,设计迭代方程,数值计算出方程的近似解,则可以认为求根的计算问题已经解决,至少能够满足实际要求。
fx=subs(ff,x,xk);
fa=subs(ff,x,a);
k=k+1;
iffx==0
y(k)=xk;
break;
elseiffa*fx<0
b=xk;
else
a=xk;
end
y(k)=xk;
end
plot(y,'.-');
gridon
(2)牛顿迭代法程序:
functionx=newton(xx,n)
对二分法和牛顿迭代法的观察和分析我们可以知道,二分法的优点是方法比较简单,编程比较容易,只是二分法只能用于求方程的近似根,不能用于求方程的复根,且收敛速度慢。而牛顿迭代法的收敛速度明显大于二分法的速度。
数值分析课程设计:比较各种迭代收敛速度

数值分析课程设计比较各种迭代收敛速度分别用雅可比迭代法(J)、高斯—塞德尔迭代法(G-S)、超松弛迭代法(SOR)计算方程组=A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----410141014⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321x x x =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡10810 并比较哪一种迭代方法收敛的速度更快方程真实值计算:A=[4-10;-14-1;0-14];b=[10810]'; jX=A\b得到结果:3.42863.71433.4286雅可比迭代:首先编写jacdd.m 的函数文件(见附录一) 调用程序,在命令窗口分别输入如下语句: A=[4-10;-14-1;0-14]; b=[10;8;10];X0=[000]';X=jacdd(A,b,X0,inf,0.00001,100) 结果见表一高斯—塞德尔迭代:首先编写gsdddy.m 的函数文件(见附录二) 调用程序,在命令窗口分别输入如下语句: A=[4-10;-14-1;0-14];b=[10;8;10]; X0=[000]';X=gsdddy(A,b,X0,inf,0.00001,100) 结果见表一雅可比迭代误差计算:x0=[3.42863.71433.4286];%此为方程组的真实值x1=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42853.42853.42 86];x2=[2.00003.25003.50003.65633.68753.70703.71093.71343.71393.71423.71423.71 43];x3=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42853.42853.42 86];formatlong%循环求二范数的平方fori=1:12t(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;sqrt(t(i))end结果见表一高斯—塞德尔迭代误差计算:x0=[3.42863.71433.4286];%此为方程组的真实值x1=[2.50003.15633.39453.42433.42803.42853.4286];x2=[2.62503.57813.69733.71223.71403.71433.7143];x3=[3.15633.39453.42433.42803.42853.42863.4286];formatlong%循环求二范数的平方fori=1:6s(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;sqrt(s(i))end结果见表一画图比较:画图函数:k=1:12;x=[2.15949540.76352500.26996830.09544590.03374520.01196120.00424740.0015 5880.00058310.00017320.00017320];%J的迭代误差plot(k,x,'b')holdony=[1.45705860.30636670.03834450.00482290.00067820.0000999000000];%G-S的迭代误差plot(k,y,'-.')legend('J迭代','G-S迭代')%画出图形,标明各曲线的含义title('误差图');%加上标题text(k(1),x(1),'start')%注明起始和终止点text(k(11),x(11),'end')xlabel('K迭代次数');%标注横,纵坐标ylabel('误差');gridon%画出网格结论:从数据图表可观察到:雅可比的迭代次数明显比高斯塞德尔的迭代次数要多,所以高斯塞德尔比雅可比迭代的收敛速度快.G-S迭代与J迭代在本质上没有必然的联系,求解方程组时,J迭代的速度与G-S迭代收敛的速度没有确定的关系,但在此题中,J迭代比G-S迭代的收敛速超松弛迭代法最佳松弛因子选取编写文件名为sor.m的M文件(见附录三)得到结果如下表(全部结果的部分,包含最少迭代次数的松弛因子):D=2.5857864376269054.0000000000000005.414213562373096max=5.414213562373096x0=3.4285714285714283.7142857142857143.4285714285714283.4285703243697273.7142801602446313.428570324369727ans=0.25500000000000013.000000000000000结论:最佳松弛因子=0.2550,使得迭代次数最少且结果最接近真实值。
用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。
数值分析10迭代法的收敛性分析

研究方向
进一步深入研究迭代法的收敛性,探索更有 效的迭代公式和算法,以提高收敛速度和稳 定性。
展望
随着计算技术的发展,迭代法在数值分析中 的应用将更加广泛,其收敛性分析将为解决 实际问题提供更有力的支持。同时,随着数 学理论的发展,迭代法的收敛性分析将更加 深入和完善。
感谢您的观看
THANKS
例如,梯度下降法和牛顿法是两种常见的求解优化问 题的迭代法。通过收敛性分析,可以发现梯度下降法 在一般情况下是收敛的,但可能会遇到收敛速度较慢 或者不收敛的情况;而牛顿法在一般情况下也是收敛 的,且收敛速度可能比梯度下降法更快。因此,在实 际应用中,可以根据问题的具体情况选择合适的迭代 方法。
06
迭代法收敛的充要条件
迭代法收敛的充要条件是迭代矩阵的谱半径小于1。谱半径是迭代矩阵所有特征值的模的最大值。
收敛性的判定方法
可以通过计算迭代矩阵的特征值来判断迭代法的收敛性,也可以通过迭代矩阵的范数来近似判断。
收敛速度的度量
01
02
03
迭代次数
迭代次数是衡量收敛速度 的一个直观指标,迭代次 数越少,收敛速度越快。
在非线性方程求解中的应用
非线性方程的求解是数值分析中的另一个重 要问题,迭代法也是求解非线性方程的重要 方法之一。与线性方程组求解类似,收敛性 分析在非线性方程求解中也有着重要的作用 。通过收敛性分析,可以判断迭代法的收敛 速度和收敛性,从而选择合适的迭代方法和 参数,提高求解效率。
数值分析23迭代法的收敛性

1 2 2
A 1 1
1
2 2 1
故A分解后的各矩阵分别为
1
D
1
1
0 0 0
L
1
0
0
2 2 0
0 2 2
U 0 0 1 0 0 0
Jacobi迭代法的迭代矩阵为
0 2
1 2 2
2 A 1 1
2 2 1
0 2 1
于是迭代矩阵为
0 2 2
M (D L)1U 0 2 3 0 0 2
其特征方程为
2 2 | I M | 0 2 3 ( 2)3 0
0 0 2
故 (B) 2 1,
所以Gauss-Seidel迭代法发散。
请思考: (1) 若 记 不 住 Jacobi 迭 代 法 和 GaussSeidel迭代法的矩阵表示,怎么写出迭 代矩阵?
Ax b ,
其中A
9 3
4 10
显然Aˊ是严格对角占优阵,因此对方程组
Ax b 用Jacobi法和Gauss-Seidel法均收敛。
例 3 : 设 A=(aij) 是 二 阶 方 阵 , 且 a11a22≠0. 试 证 求 解 方 程 组 Ax=b 的 Jacobi 法 与 Gauss-Seidel 法 同时收敛或发散。
注:定理表明,迭代法收敛与否只决定于迭代 矩阵的谱半径,与初始向量及方程组的右 端项无关。对同一方程组,由于不同的迭 代法迭代矩阵不同,因此可能出现有的方 法收敛,有的方法发散的情形。
举例:解方程组
x1 x1
2x2 2x3 x2 x3 2
1
2 x1 2 x2 x3 3
讨论Jacobi法与Gauss-Seidel法的收敛性。
数值分析3.1.二分法、迭代法及收敛性

上述令p→∞, 及limxk+p=x* (p→∞)即得(2.6)式. 证毕. 注:误差估计式(2.5)原则上确定迭代次数,但它由 于含有信息 L 而不便于实际应用. 而误差估计式(2.6) 是实用的,只要相邻两次计算结果的偏差足够小即 可保证近似值 xk 具有足够精度.
注: 对定理1和定理2中的条件2º 可以改为导数,即 在使用时如果(x)∈C[a, b]且对任意x∈[a, b]有
显然f(x)∈C[a, b],且满足f(a)=(a)-a>0, f(b)=(b)-b<0, 由连续函数性质可知存在 x*∈(a, b) 使 f(x*)=0,即 x*=(x*),x*即为(x)的不动点. 再证不动点的唯一性. 设x1*, x2*∈[a, b]都是(x) 的不动点,则由(2.4)得
可以如此反复迭代计算
xk+1=(xk) 到的序列{xk}有极限 (k=0,1,2,). (2.2)
(x)称为迭代函数. 如果对任何x0∈[a, b],由(2.2)得
lim xk x .
k
则称迭代方程(2.2)收敛. 且x*=(x*)为(x)的不动点, 故称(2.2)为不动点迭代法.
例1 用二分法求方程 f(x)=x3-x-1=0在(1, 1.5)的实根, 要求误差不超过0.005.
解 由题设条件,即:
|x*-xn|≤0.005 则要
1 2
n 1
(b a)
1 2
n 1
(1.5 1)
1 2
n 2
0.005
2 由此解得 n 1 5.6,取 n=6, 按二分法计算过程见 lg 2
L2 xk 1 xk 2 Lk x1 x0 .
于是对任意正整数 p 有
数值计算方法 迭代法及其收敛性 - 迭代法及其收敛性

x*
lim
k
x
k
1
lim
k
(
xk
)
(lim k
xk
)
( x* )
故k充分大时,xk可作为方程根的近似值
按上述方法构造迭代格式来求解方程的方法称为简单迭代法或逐
次迭代法。
不动点迭代法: 将方程 f ( x) 0 改写为: x ( x).
1 若要求x*满足f ( x* ) 0,则x* ( x* );反之亦然,
重点
实多项式方程
f ( x) a0 x n a1 x n1 an1 x an (a0 0),
的求根问题.
(其中系数ai (i 0,1,, n)为实数)
若 方程f ( x*) 0, 则x*称为函数f ( x)的零点
1
若方程 f (x) (x x* )m g(x),
其 中m为 正 整 数 , 且g( x* ) 0.
真真解解::xx==1.13.234274272
典型例题
例3
用不同方法求方程x2 3 0的根x* 3.
(1) xk1 xk2 xk 3,(x) x2 x 3
(2)
xk 1
3 xk
,(x)
3, x
(3)
xk 1
xk
1 4
( xk2
3), ( x)
x
1 4
(x2
3)
(4)
xk 1
1 2
典型例题
(2)
xk1
3 xk
,(x)
3, x
( x* ) 1
(3)
xk 1
xk
1 4
(
x
2 k
3),( x)
x
1 (x2 4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析课程设计
比较各种迭代收敛速度
分别用雅可比迭代法(J)、 高斯—塞德尔迭代法(G-S)、 超松弛迭代
法(SOR)计算方程组=A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----410141014⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321x x x =⎥⎥
⎥⎦
⎤
⎢⎢⎢⎣⎡10810 并比较哪一种迭代方法收敛的速度更快 方程真实值计算:
A=[4-10;-14-1;0-14];b=[10810]'; jX=A\b 得到结果:
3.42863.71433.4286 雅可比迭代:
首先编写jacdd.m 的函数文件( 见附录一) 调用程序, 在命令窗口分别输入如下语句: A=[4-10;-14-1;0-14]; b=[10;8;10];
X0=[000]';X=jacdd(A,b,X0,inf,0.00001,100)
结果见表一
高斯—塞德尔迭代:
首先编写gsdddy.m的函数文件( 见附录二)
调用程序, 在命令窗口分别输入如下语句:
A=[4-10;-14-1;0-14];b=[10;8;10];
X0=[000]';
X=gsdddy(A,b,X0,inf,0.00001,100)
结果见表一
雅可比迭代误差计算:
x0=[3.42863.71433.4286];%此为方程组的真实值
x1=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42 853.42853.4286];
x2=[2.00003.25003.50003.65633.68753.70703.71093.71343.71393.71 423.71423.7143];
x3=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42 853.42853.4286];
formatlong
%循环求二范数的平方
fori=1:12
t(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;
sqrt(t(i))
end
结果见表一
高斯—塞德尔迭代误差计算:
x0=[3.42863.71433.4286];%此为方程组的真实值
x1=[2.50003.15633.39453.42433.42803.42853.4286];
x2=[2.62503.57813.69733.71223.71403.71433.7143];
x3=[3.15633.39453.42433.42803.42853.42863.4286];
formatlong
%循环求二范数的平方
fori=1:6
s(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;
sqrt(s(i))
end
结果见表一
表一
注: MATLAB计算的误差为16位有效数字, 由于表的位置有限, 这里只取8位有效数字
画图比较:
画图函数:
k=1:12;
x=[2.15949540.76352500.26996830.09544590.03374520.01196120.00 424740.00155880.00058310.00017320.00017320];%J的迭代误差plot(k,x,'b')
holdon
y=[1.45705860.30636670.03834450.00482290.00067820.0];%G-S的迭代误差
plot(k,y,'-.')
legend('J迭代','G-S迭代')%画出图形,标明各曲线的含义
title('误差图');%加上标题
text(k(1),x(1),'start')%注明起始和终止点
text(k(11),x(11),'end')
xlabel('K迭代次数');%标注横,纵坐标
ylabel('误差');
gridon%画出网格
结论:
从数据图表可观察到: 雅可比的迭代次数明显比高斯塞德尔的迭代次数要多,因此高斯塞德尔比雅可比迭代的收敛速度快.
G-S迭代与J迭代在本质上没有必然的联系, 求解方程组时, J 迭代的速度与G-S迭代收敛的速度没有确定的关系, 但在此题中, J 迭代比G-S迭代的收敛速度慢。
超松弛迭代法最佳松弛因子选取
编写文件名为sor.m的M文件(见附录三)
得到结果如下表(全部结果的部分, 包含最少迭代次数的松弛因子): D=
2.905
4.000。