实验二迭代法初始值与收敛性 (3)

合集下载

37第七节 迭代法及其收敛性

37第七节 迭代法及其收敛性
x(k) x q x(k) x(k1) 1q
x(k) x qk x(1) x(0) 1q
证 因 (B)||B||=q<1, 所以迭代格式收敛, 且有 设 lim x (k) =x*,由 x(k+1) = Bx(k) + f , 得 x* = Bx* + f ,则
数学学院 信息与计算科学系
又 || Bk|| ||B||k ,有 lim||Bk||=0 , 故 lim B k =0,由1)知,迭代格式收敛。
数学学院 信息与计算科学系
三、迭代法的收敛速度
考察误差向量
e(k) =x(k) -x*=Bk ·e(0)
设B有n个线性无关的特征向量及相应的特征值为
1 ,2 , ,n ,
1 , 2 , , n
数学学院 信息与计算科学系
2) 由1)知,迭代格式收敛 lim Bk=O , 即lim||Bk||=0 ,从而存在 k ,使 || B k || <1,由谱半径 的性质有
[( B )]k = (B k ) ||B k ||<1,
故得
( B )<1,
因(B)=inf{||B||}且(B)<1,存在 >0及使 || B || ( B )+ <1,
取对数得 定义3 称
k s ln10
ln (B)
R(B) ln (B)
为迭代法 x(k+1) = Bx(k) + f 的收敛速度。 由此看出,当(B)<1愈小,速度R(B)就愈大,
所需要的迭代次数也就愈少。
数学学院 信息与计算科学系
定理 2 若 ||B||=q<1,则对任意x(0) 迭代格式 x(k+1) = Bx(k) + f 收敛 ,且有误差估计式

37第七节 迭代法及其收敛性

37第七节 迭代法及其收敛性
从而 ||x(k+1) -x(k)|| =||(x(k+1) -x*)-(x(k) -x*)|| ||x(k) -x*||-||x(k+1) -x*|| ||x(k) -x*||-q||x(k) -x*||
=(1-q) ||x(k) -x*||
数学学院 信息与计算科学系
故得
1 q ( k 1) (k ) x x x x x ( k ) x ( k 1) 1 q 1 q k q q x ( k ) x x ( k ) x ( k 1) x (1) x(0) 1 q 1 q


数学学院 信息与计算科学系
二、迭代法的收敛性
定义2 如果
lim A
k
k
(k )
A O
则称矩阵序列{A(k)}依范数收敛于A,记
lim A( k ) A
由范数的等价性可以推出,矩阵序列{A(k)} 依某种范数收敛,则依任何一种范数它都收敛,故 下面不强调是在那种范数意义下收敛。
x
k 1
Bx( k ) f
k 0,1,2
其中B称为迭代矩阵。
数学学院 信息与计算科学系
若序列{x(k)}收敛,即
lim x ( k ) x
k
显然有
x Bx f
此极限 x*就是方程组 Ax=b 的解。 定义1 如果序列{x(k)}的极限存在(记 x*), 则称迭代法收敛,x*就是方程组 Ax=b 的解,否则 称此迭代法发散。
数学学院 信息与计算科学系
x(k+1) -x*= B( x(k) -x* ) , x(k+1) –x(k)= B( x(k) –x(k-1) )
即有

实验二:迭代法、初始值与收敛性

实验二:迭代法、初始值与收敛性

实验二:迭代法、初始值与收敛性一:实验要求考虑一个简单的代数方程210,x x --=针对上述方程,可以构造多种迭代法,如211111,1,1n n n n n nx x x x x x +++=-=+=+等。

在实轴上取初值,分别用以上迭代做实验,记录各算法的迭代过程。

二:实验要求及实验结果(1) 取定某个初始值,按如上迭代格式进行计算,它们的收敛性如何?重复选取不同放入初始值,反复实验。

请读者自行设计一种比较形象的记录方式(如何利用Matlab 的图形功能),分析三种迭代法的收敛性与初值的选取关系。

(2) 对三个迭代法中的某一个,取不同的初值进行迭代,结果如何?试分析对不同的初值是否有差异?实验内容:ⅰ)对211n n x x +=-进行迭代运算,选取迭代次数n=20;分别选择初值-0.6, 1.6进行实验,并画出迭代结果的趋势图。

编写MATLAB 运算程序如下:%迭代法求解 %令x=x^2-1 clearn=30; x=-0.5;x1=x^2-1; for i=1:nx1=x1^2-1;xx(i)=x1;endm=linspace(0,29,n);plot(m,xx) title('x=-0.5')2468101214161820-1-0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.10x=-0.602468101214161820-1-0.500.511.5x=1.6如上图所示,选取初值分别为-0.6、1.6时,结果都是不收敛的。

分析:2()1n g x x =-,'()2g x x =,要想在某一邻域上'()21,[1,1]g x x x =<∀∈-则但是()[1,1]g x ∉-,所以不存在某个邻域使得该迭代公式收敛。

即迭代公式对任何初值都是发散的。

ⅱ)对111n nx x +=+进行迭代运算,选取迭代次数n=30;分别选择初值=-0.7, 2.1进行实验,并画出迭代结果的趋势图。

数学数学实验Newton迭代法

数学数学实验Newton迭代法

数学实验题目4 Newton 迭代法摘要0x 为初始猜测,则由递推关系产生逼近解*x 的迭代序列{}k x ,这个递推公式就是Newton 法。

当0x 距*x 较近时,{}k x 很快收敛于*x 。

但当0x 选择不当时,会导致{}k x 发散。

故我们事先规定迭代的最多次数。

若超过这个次数,还不收敛,则停止迭代另选初值。

前言利用牛顿迭代法求的根程序设计流程问题1(1 程序运行如下:r = NewtSolveOne('fun1_1',pi/4,1e-6,1e-4,10) r = 0.7391(2 程序运行如下:r = NewtSolveOne('fun1_2',0.6,1e-6,1e-4,10) r = 0.5885问题2(1 程序运行如下:否 是否是是定义()f x输入012,,,x N εε开 始1k =01()f x ε<0100()()f x x x f x =-'102||x x ε-<k N =输出迭代失败标志输出1x输出奇 异标志结 束01x x = 1k k =+ 否r = NewtSolveOne('fun2_1',0.5,1e-6,1e-4,10)r = 0.5671(2)程序运行如下:r = NewtSolveOne('fun2_2',0.5,1e-6,1e-4,20)r = 0.5669问题3(1)程序运行如下:①p = LegendreIter(2)p = 1.0000 0 -0.3333p = LegendreIter(3)p = 1.0000 0 -0.6000 0p = LegendreIter(4)p =1.0000 0 -0.8571 0 0.0857p = LegendreIter(5)p = 1.0000 0 -1.1111 0 0.2381 0②p = LegendreIter(6)p = 1.0000 0 -1.3636 0 0.4545 0 -0.0216r = roots(p)'r= -0.932469514203150 -0.6612 0.9324695142031530.6612 -0.238619186083197 0.238619186083197用二分法求根为:r = BinSolve('LegendreP6',-1,1,1e-6)r = -0.932470204878826 -0.661212531887755 -0.2386200573979590.2386 0.661192602040816 0.932467713647959(2)程序运行如下:①p = ChebyshevIter(2)p = 1.0000 0 -0.5000p = ChebyshevIter(3)p = 1.0000 0 -0.7500 0p = ChebyshevIter(4)p = 1.0000 0 -1.0000 0 0.1250p = ChebyshevIter(5)p = 1.0000 0 -1.2500 0 0.3125 0②p = ChebyshevIter(6)p = 1.0000 0 -1.5000 0 0.5625 0 -0.0313r = roots(p)'r = -0.965925826289067 -0.7548 0.9659258262890680.7547 -0.258819045102521 0.258819045102521用二分法求根为:r = BinSolve('ChebyshevT6',-1,1,1e-6)r = -0.965929926658163 -0.7755 -0.2588289221938780.2588 0.7020 0.965924944196429与下列代码结果基本一致,只是元素顺序稍有不同:j = 0:5;x = cos((2*j+1)*pi/2/(5+1))x =0.965925826289068 0.7548 0.258819045102521-0.258819045102521 -0.7547 -0.965925826289068(3)程序运行如下:①p = LaguerreIter(2)p = 1 -4 2p = LaguerreIter(3)p = 1 -9 18 -6p = LaguerreIter(4)p = 1 -16 72 -96 24p = LaguerreIter(5)p =1.0000 -25.0000 200.0000 -600.0000 600.0000 -120.000②p = LaguerreIter(5)p =1.0000 -25.0000 200.0000 -600.0000 600.0000 -120.000r = roots(p)'r =12.6432 7.8891 3.5964257710407111.4520 0.263560319718141用二分法求根为:r = BinSolve('LaguerreL5',0,13,1e-6)r = 0.263560314567722 1.4789 3.5964257656311507.0720 12.6490(4)程序运行如下:①p = HermiteIter(2)p = 1.0000 0 -0.5000p = HermiteIter(3)p = 1.0000 0 -1.5000 0p = HermiteIter(4)p = 1.0000 0 -3.0000 0 0.7500p = HermiteIter(5)p = 1.0000 0 -5.0000 0 3.7500 0②p = HermiteIter(6)p = 1.0000 0 -7.5000 0 11.2500 0 -1.8750r = roots(p)'r =-2.3587 2.3588 -1.3358490740136961.335849074013698 -0.4367 0.4366用二分法求根为:r = BinSolve('HermiteH6',-3,3,1e-6)r =-2.3516 -1.335849********* -0.43630.4366 1.335848983453244 2.3504所用到的函数function r = NewtSolveOne(fun, x0, ftol, dftol, maxit)% NewtSolveOne 用Newton法解方程f(x)=0在x0附近的一个根%% Synopsis: r = NewtSolveOne(fun, x0)% r = NewtSolveOne(fun, x0, ftol, dftol)%% Input: fun = (string) 需要求根的函数及其导数% x0 = 猜测根,Newton法迭代初始值% ftol = (optional)误差,默认为5e-9% dftol = (optional)导数容忍最小值,小于它表明Newton法失败,默认为5e-9 % maxit = (optional)迭代次数,默认为25%% Output: r = 在寻根区间内的根或奇点if nargin < 3ftol = 5e-9;endif nargin < 4dftol = 5e-9;endif nargin < 5maxit = 25;endx = x0; %设置初始迭代位置为x0k = 0; %初始化迭代次数为0while k <= maxitk = k + 1;[f,dfdx] = feval(fun,x); %fun返回f(x)和f'(x)的值if abs(dfdx) < dftol %如果导数小于dftol,Newton法失败,返回空值r = [];warning('dfdx is too small!');return;enddx = f/dfdx; %x(n+1) = x(n) - f( x(n) )/f'( x(n) ),这里设dx = f( x(n) )/f'( x(n) )x = x - dx;if abs(f) < ftol %如果误差小于ftol,返回当前x为根r = x;return;endendr = []; %如果牛顿法未收敛,返回空值function p = LegendreIter(n)% LegendreIter 用递推的方法计算n次勒让德多项式的系数向量Pn+2(x) = (2*i+3)/(i+2) * x*Pn+1(x) - (i+1)/(i+2) * Pn(x)%% Synopsis: p = LegendreIter(n)%% Input: n = 勒让德多项式的次数%% Output: p = n次勒让德多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %P0(x) = 1p = 1;return;elseif n == 1 %P1(x) = xp = [1 0];return;endpBk = 1; %初始化三项递推公式后项为P0pMid = [1 0]; %初始化三项递推公式中项为P1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Pn+1pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的PnpBkCal(3:i+3) = pBk;pFwd = (2*i+3)/(i+2) * pMidCal - (i+1)/(i+2) * pBkCal; %勒让德多项式三项递推公式Pn+2(x) = (2*i+3)/(i+2) * x*Pn+1(x) - (i+1)/(i+2) * Pn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把勒让德多项式最高次项系数归一化function p = ChebyshevIter(n)% ChebyshevIter 用递推的方法计算n次勒让德-切比雪夫多项式的系数向量Tn+2(x) = 2*x*Tn+1(x) - Tn(x)%% Synopsis: p = ChebyshevIter(n)%% Input: n = 勒让德-切比雪夫多项式的次数%% Output: p = n次勒让德-切比雪夫多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %T0(x) = 1p = 1;return;elseif n == 1 %T1(x) = xp = [1 0];return;endpBk = 1; %初始化三项递推公式后项为T0pMid = [1 0]; %初始化三项递推公式中项为T1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Tn+1pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的PnpBkCal(3:i+3) = pBk;pFwd = 2*pMidCal - pBkCal; %勒让德-切比雪夫多项式三项递推公式Tn+2(x) = 2*x*Tn+1(x) - Tn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把勒让德-切比雪夫多项式最高次项系数归一化function p = LaguerreIter(n)% LaguerreIter 用递推的方法计算n次拉盖尔多项式的系数向量Ln+2(x) = (2*n+3-x)*Ln+1(x) - (n+1)*Ln(x)%% Synopsis: p = LaguerreIter(n)%% Input: n = 拉盖尔多项式的次数%% Output: p = n次拉盖尔多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %L0(x) = 1p = 1;return;elseif n == 1 %L1(x) = -x+1p = [-1 1];return;endpBk = 1; %初始化三项递推公式后项为L0pMid = [-1 1]; %初始化三项递推公式中项为L1for i = 0:n-2pMidCal1 = zeros(1,i+3); %构造用于计算的x*Ln+1(x)pMidCal1(1:i+2) = pMid;pMidCal2 = zeros(1,i+3); %构造用于计算的Ln+1(x)pMidCal2(2:i+3) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的Ln(x)pBkCal(3:i+3) = pBk;pFwd =( (2*i+3)*pMidCal2 - pMidCal1 - (i+1)*pBkCal )/ (i+2); %拉盖尔多项式三项递推公式Ln+2(x) = (2*n+3-x)*Ln+1(x) - (n+1)^2*Ln(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把拉盖尔多项式最高次项系数归一化function p = HermiteIter(n)% HermiteIter 用递推的方法计算n次埃尔米特多项式的系数向量Hn+2(x) = 2*x*Hn+1(x) - 2*(n+1)*Hn(x)%% Synopsis: p = HermiteIter(n)%% Input: n = 埃尔米特多项式的次数%% Output: p = n次埃尔米特多项式的系数向量if round(n) ~= n | n < 0error('n必须是一个非负整数');endif n == 0 %H0(x) = 1p = 1;return;elseif n == 1 %H1(x) = 2*xp = [2 0];return;endpBk = 1; %初始化三项递推公式后项为L0pMid = [2 0]; %初始化三项递推公式中项为L1for i = 0:n-2pMidCal = zeros(1,i+3); %构造用于计算的x*Hn+1(x)pMidCal(1:i+2) = pMid;pBkCal = zeros(1,i+3); %构造用于计算的Hn(x)pBkCal(3:i+3) = pBk;pFwd =2*pMidCal - 2*(i+1)*pBkCal; %埃尔米特多项式三项递推公式Hn+2(x) = 2*x*Hn+1(x) - 2*(n+1)*Hn(x)pBk = pMid; %把中项变为后项进行下次迭代pMid = pFwd; %把前项变为中项进行下次迭代endp = pFwd/pFwd(1); %把拉盖尔多项式最高次项系数归一化function r = BinSolve(fun, a, b, tol)% BinSolve 用二分法解方程f(x)=0在区间[a,b]的根%% Synopsis: r = BinSolve(fun, a, b)% r = BinSolve(fun, a, b, tol)%% Input: fun = (string) 需要求根的函数% a,b = 寻根区间上下限% tol = (optional)误差,默认为5e-9%% Output: r = 在寻根区间内的根if nargin < 4tol = 5e-9;endXb = RootBracket(fun, a, b); %粗略寻找含根区间[m,n] = size(Xb);r = [];nr = 1; %初始化找到的根的个数为1maxit = 50; %最大二分迭代次数为50for i = 1:ma = Xb(i,1); %初始化第i个寻根区间下限b = Xb(i,2); %初始化第i个寻根区间上限err = 1; %初始化误差k = 0;while k < maxitfa = feval(fun, a); %计算下限函数值fb = feval(fun, b); %计算上限函数值m = (a+b)/2;fm = feval(fun, m);err = abs(fm);if sign(fm) == sign(fb) %若中点处与右端点函数值同号,右端点赋值为中点b = m;else %若中点处与左端点函数值同号或为0,左端点赋值为中点a = m;endif err < tol %如果在a处函数值小于tolr(nr) = a; %一般奇点不符合该条件,这样可以去除奇点nr = nr + 1; %找到根的个数递增k = maxit; %改变k值跳出循环endk = k + 1; %二分迭代次数递增endendfunction X = powerX(x,a,b)% powerX 对给定向量(x1, x2,..., xn)返回增幂矩阵(x1^a, x2^a,..., xn^a; x1^a+1, x2^a+1,..., xn^a+1; ...; x1^b, x2^b,..., xn^b;)%% Synopsis: X = powerX(x,a,b)%% Input: x = 需要返回增幂矩阵的向量% a,b = 寻根区间上下限%% Output: X = 增幂矩阵(x1^a, x2^a,..., xn^a; x1^a+1, x2^a+1,..., xn^a+1; ...; x1^b, x2^b,..., xn^b;)if round(a) ~= a | round(b) ~= berror('a,b must be integers');elseif a >= berror('a must be smaller than b!');endx = x(:)';row = b-a+1;col = length(x);X = zeros(row, col);for i = b:-1:aX(b-i+1,:) = x.^i;Endfunction [f, dfdx] = fun1_1(x)f = cos(x) - x;dfdx = -sin(x) - 1;function [f, dfdx] = fun1_2(x)f = exp(-x) - sin(x);dfdx = -exp(-x) - cos(x);function [f, dfdx] = fun2_1(x)f = x - exp(-x);dfdx = 1 + exp(-x);function [f, dfdx] = fun2_2(x)f = x.^2 - 2*x*exp(-x) + exp(-2*x);dfdx = 2*x - 2*exp(-x) + 2*x*exp(-x) - 2*exp(-2*x);function y = LegendreP6(x)p = LegendreIter(6);X = powerX(x,0,6);y = p*X;function y = ChebyshevT6(x)p = ChebyshevIter(6);X = powerX(x,0,6);y = p*X;function y = LaguerreL5(x)p = LaguerreIter(5);X = powerX(x,0,5);y = p*X;function y = HermiteH6(x)p = HermiteIter(6);X = powerX(x,0,6);y = p*X;思考题(1)由于Newton法具有局部收敛性,所以在实际问题中,当实际问题本身能提供接近于根的初始近似值时,就可保证迭代序列收敛,但当初值难以确定时,迭代序列就不一定收敛。

初值的选取对迭代法的影响实验报告

初值的选取对迭代法的影响实验报告

迭代法的分类
线性迭代法
适用于线性方程组的求解,如高斯-赛德尔迭代法、 雅可比迭代法等。
非线性迭代法
适用于非线性方程或方程组的求解,如牛顿法、拟牛 顿法等。
共轭梯度法
适用于大规模稀疏线性方程组的求解,具有较好的数 值稳定性和收敛性。
迭代法的收敛性
01
迭代法的收敛性是指随着迭代的进行,解的近似值会逐渐接近 于精确解。
实验方法
1
选择常用的迭代法,如雅可比迭代法、高斯-赛德 尔迭代法等
2
设计不同初值,观察迭代法的收敛速度和精度
3
通过实验数据对比,分析初值选取对迭代法的影 响
实验步骤
01
准备实验数据和迭代法所需的基础知识
02 设计不同初值,并记录迭代法的收敛速度和精度
03
对实验数据进行整理和分析,得出结论
04
实验结果与分析
迭代精度
初值的选择对迭代法的精度也有影 响,合适的初值可以提高迭代法的 精度。
不同初值对迭代法的影响
初始解的选取
不同的初始解会导致迭代法收敛到不同的解,因此初始解的选择 对迭代法的结果有很大影响。
初始误差
初始误差的大小也会影响迭代法的收敛速度和精度,初始误差越 大,迭代法需要的时间和迭代次数越多。
VS
本实验为实际应用中迭代法的选择和 使用提供了有益的参考。在处理具体 问题时,应充分考虑初值和参数的影 响,并采取适当的策略进行优化。
05
初值选取的影响
初值选取的重要性
迭代法的收敛性
初值的选择直接影响到迭代法的 收敛性,如果初值选择不当,迭 代法可能不收敛或收敛到错误的
结果。
迭代速度
初值的选择也会影响迭代法的速度 ,合适的初值可以加快迭代法的收 敛速度。

第六章6.3迭代法的收敛性

第六章6.3迭代法的收敛性

一阶定常迭代法的收敛性
det 1 det( I B J) 2 2

2
2 3 1 0
所以
( B max(| |) 0 1 0 J)
即Jaobi迭代法收敛。
8
一阶定常迭代法的收敛性
(2) 求Gauss-Seidel法的迭代矩阵
j 1 j i 1 j i 1
14
i 1
n
n
如果 | | 1 ,则有
| | | a | | | | a | | a | ii ij ij
j 1 j i 1 i 1 n
则 [(DL )U] 为严格对角占优矩阵
从而 det[ ( D L ) U ] 0
16
补充例题
例:方程组
x1 x2 b1 x1 2x2 b2
(1)写出解该方程组的Jacobi迭代的迭代
阵,并讨论迭代收敛的条件;
(2)写出解该方程组的G-S迭代的迭代阵,
并讨论迭代收敛的条件。
17
补充例题
例:AX=b为二阶线性方程组, 证明:解该方程组的Jacobi迭代与G-S迭 代同时收敛或同时发散。
的充要条件为: (B ) 1
5
一阶定常迭代法的收敛性
例:判别下列方程组用Jacobi迭代法和G-S 法求解是否收敛。
1 2 2 x1 1 1 1 1 x2 1 2 2 1 x 1 3
6
一阶定常迭代法的收敛性
由于 B 的形式不易确定 , G
13
B 的特征值 满足 det( I B ) 0 G G

2.2 迭代法的一般形式与收敛性定理

2.2 迭代法的一般形式与收敛性定理

设aii0 (i=1,2,,n),并将A写成三部分
0 a11 a 21 0 a 22 A a n 1 ,1 a n 1 , 2 0 a nn a n 2 a n , n 1 a n1 0 a12 a1,n1 a1n 0 a 2 , n 1 a 2 n 0 a n 1, n 0 D LU. 0

k
B ( H )
k
两边取对数得: k ln ( H ) ln k
ln ln ( H )
定义:
ln ( H )
为迭代法(2.2.3)的渐近收敛速 度。
解线性方程组的迭代法
线性方程组
a11 x1 a12 x2 a x a x 21 1 22 2 an1 x1 an 2 x2 a1n xn b1 a2 n xn b2 ann xn bn
复习:矩阵的谱半径 设λ是矩阵A相应于特征向量x的特征值,即 Ax=λx 向量-矩阵范数的相容性,得到 |λ| || x ||=||λx|| =|| Ax|| ≤ || A || ||x|| 从而,对A的任何特征值λ均成立 |λ|≤|| A || ( 3)
设n阶矩阵A的n个特征值为λ1,λ2,…λn,称 ( A) max i
x ( k 1) x* H ( x ( k ) x* )
由此递推:x ( k 1) x* H k 1 ( x ( 0) x* ), k 0,1,2,
x 是线性方程组Ax=b的解
x* Hx* g
x
k 1
*

第3章3-06迭代法和收敛性

第3章3-06迭代法和收敛性

解 方程组化为等价的方程组 0.2 x2 + 0.1x3 + 0.3 x1 = + 0.1x3 + 1.5 x2 = 0.2 x1 x = 0.2 x + 0.4 x + 2 1 2 3 构造高斯 赛德尔迭代公式 高斯构造高斯-赛德尔迭代公式 ( ( x1( k +1) = 0.2 x2k ) + 0.1x3k ) + 0.3 ( k +1) ( x2 = 0.2 x1( k +1) + 0.1x3k ) + 1.5, k = 0,1, 2,L ( k +1) ( x3 = 0.2 x1( k +1) + 0.4 x2k +1) + 2
雅可比迭代公式
i −1 n 1 ( k +1) (k ) (k ) xi = (bi − ∑ aij x j − ∑ aij x j ) , (i = 1,2,L, n) aii j =1 j =i +1
分量形式
( k +1) 1 ( ( ( x1 = (b1 − a12 x2k ) − a13 x3k ) − L − a1n xnk ) ) a11 ( k +1) 1 ( ( x2 = (b2 − a21 x1( k ) − a23 x3k ) − L − a2 n xnk ) ) a22 LLLL ( k +1) 1 ( ( ) xn = (bn − an1 x1( k ) − an 2 x2k ) − L − ann −1 xnk 1 ) − ann
高斯-赛德尔 高斯 赛德尔(Seidel)迭代公式 赛德尔 迭代公式
i −1 n 1 ( k +1) ( k +1) (k ) xi = (bi − ∑aij x j − ∑aij x j ), aii j =1 j =i +1

迭代函数对收敛性的影响实验报告

迭代函数对收敛性的影响实验报告

迭代函数对收敛性的影响一、实验目的:初步了解非线性方程的简单迭代法及其收敛性,体会迭代函数对收敛性的影响,知道当迭代函数满足什么条件时,迭代法收敛。

、实验内容:用简单迭代法求方程f(x) =2x3 _x _1 = 0的根。

方案一:化f (x)二2x3 - x -1 = 0为等价方程X = 3"0^ △0(x)\ 2 =万案二:化f (x) = 2x —x—^^=0为等价方程x 二2x3」(x) 、实验要求:(1)分别对方案一、方案二取初值X。

=0,迭代10次,观察其计算值,并加以分析。

(2)用MATLAB^部函数solve直接求出方程的所有根,并与(1)的结果进行比较。

四、迭代法程序fun ctio n[k,pia ncha,xdpia ncha,xk]=diedai(x0,k)x(1)=x0;for i=1:kx(i+1)=fu n1(x(i));pia ncha=abs(x(i+1)-x(i));xdpia ncha=pia ncha/(abs(x(i+1))+eps);i=i+1;xk=x(i);[(i-1) pia ncha xdpia ncha xk]endif (pia ncha>1)&( xdpia ncha>0.5)&(k>3)disp('此迭代序列发散,请重新输入新的迭代公式')return;endif (pia ncha<0.001)&( xdpia ncha<0.0000005)&(k>3)disp('此迭代序列收敛,且收敛速度较快')return;endp=[(i-1) pia ncha xdpia ncha xk]'五、实验结果:方案一:3化f(x)=2x-X-1 = 0为等价方程xfjx)建立M文件fun 1.m的文件function y1=fu n1(x)y1= ((x+1) ./2 ) 9(1/3)在MATLAB窗口输入程序>> [k,pia ncha,xdpia ncha,xk]=diedai(0,10)运行后输出结果y1 =0.7937ans =1.0000 0.7937 y1 =0.9644ans =2.0000 0.1707 y1 = 0.9940ans =3.0000 0.0297 y1 =0.9990ans =4.0000 0.0050 y1 = 0.9998ans =5.0000 0.0008 y1 =1.0000ans =6.0000 0.0001 y1 = 1.0000ans =7.0000 0.0000 y1 = 1.0000ans =8.0000 0.0000 y1 =1.0000ans =9.0000 0.0000 y1 =1.0000ans =10.0000 1.0000 0.7937 0.1770 0.9644 0.0298 0.9940 0.0050 0.9990 0.0008 0.9998 0.0001 1.0000 0.0000 1.0000 0.0000 1.0000 0.0000 1.00000.0000 0.0000 1.0000此迭代序列收敛,且收敛速度较快k =10 pia ncha = 1.0685e-07 xdpia ncha =1.0685e-07 xk =1.000033x = 2x -仁〕(x)2、方案二: 化f (x) = 2x …X - 1 = 0为等价方程 (1)建立 M 文件fun,m 的文件function y 仁fu n1(x) y1=2.*(x93)-1(2 )在MATLAB 窗口输入程序>> [k,pia ncha,xdpia ncha,xk]=diedai(0,10) (3 )运行后输出结果 y1 =-1y1 =-3y1 =-55y1 =-332751 ans =1.0e+05 *y1 =-I nfans =8 Inf NaN -Infy1 =-I nf ans =9 NaN NaN -Inf y1 =-I nf ans =10 NaN NaN -Inf p = 10 NaN NaN -I nfk = 10 pia ncha =NaN xdpia ncha = NaN xk =-I nf0.0000 3.3270 y1 =-7.3687e+16 ans =1.0e+16 * 0.0000 7.3687 y1 =-8.0019e+50 ans =1.0e+50 * 0.0000 8.0019 y1 =-1.0247e+153 ans =1.0e+153 * 0.0000 1.0247 0.0000 -3.32750.0000 -7.36870.0000 -8.00190.0000 -1.0247ans =1.0000 1.0000 1.0000 -1.0000ans =2.0000 2.00000.6667 -3.0000ans =3.0000 52.00000.9455 -55.00003、用MATLAB^部函数solve直接求(1 )输入程序>> x=solve('2.*(x.A3)-x-1=0')运行后输出的结果x =1.-.50000000000000000000000000000000+.50000000000000000000000000000000*i-.50000000000000000000000000000000-.50000000000000000000000000000000*i从表1可以看出,方案一收敛很快,偏差和偏差的相对误差几乎为零;方案二根本不收敛,它的偏差piancha已经NaN且相对误差xdwucha的知也已经NaN由此可见,迭代序列的敛散性与迭代公式有关,也与相邻两次迭代的偏差和偏差的相对误差有关,他们的值越小,迭代序列的收敛速度越快。

数值计算线性方程迭代法实验

数值计算线性方程迭代法实验

实验报告一一、实验目的理解线性方程组直接法与迭代法思想,掌握常用算法的设计,掌握用MATLAB 实现的数值解法。

二、实验题目实验一 线性方程组迭代法实验 1、 迭代法的收敛速度用迭代法分别对n=20,n=200解方程组,b Ax =其中nn A ⨯⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛------------------=431513143151513143151513143151513143151314(1) 选取不同的初值0x 和不同的右端向量b,给定迭代误差,用两种迭代法计算,观测得到的迭代向量并分析计算结果给出结论;(2) 取定初值0x 和右端向量b,给定迭代误差,将A 的主对角元成倍放大,其余元素不变,用Jacobi 迭代法计算多次,比较收敛速度,分析计算结果并给出结论。

2、 SOR 迭代法松弛因子的选取用逐次超松弛(SOR )迭代法求解方程组,b Ax =其中 .5555551221212211212212121221121221212200199198321⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛----------=x x x x x x A (1) 给定迭代误差,选取不同的超松弛因子1>ω进行计算,观测得到的近似值向量并分析计算结果,给出你的结论;(2) 给定迭代误差,选取不同的低松弛因子1<ω进行计算,观测得到的近似值向量并分析计算结果,给出你的结论。

三、实验原理Jacobi 迭代法算法:步1 取初始点()0x ,精度要求ε,最大迭代次数N ,置0:=k ;步 2 由()n i x a b a x ni j j j ij i ii k i,,1,1,11 =⎪⎪⎭⎫⎝⎛-=∑≠=+ 或()b D x A D D x k 111)(--++-= 计算()1+k x ; 步3 若()()ε≤-∞+k k xx1,则停算,输出()1+k x作为方程组的近似解; 步4 若N k =,则停算,输出迭代失败信息;否则置1+=k k ,转布2。

迭代法解一元三次方程的应用

迭代法解一元三次方程的应用

迭代法解一元三次方程的应用一元三次方程是数学中常见的高次方程之一,解一元三次方程可以使用不同的方法,其中迭代法是一种常用的数值计算方法。

本文将介绍迭代法解一元三次方程的原理和具体应用。

1. 迭代法解一元三次方程的原理迭代法是一种通过逐步逼近的方法求解方程的数值解。

对于一元三次方程ax^3 + bx^2 + cx + d = 0,我们可以通过迭代的方式逐步逼近方程的解x。

具体而言,可以通过以下步骤进行迭代计算:(1) 选择一个初始值x0;(2) 根据迭代公式x_{n+1} = f(x_n),计算下一步的迭代值x_{n+1},其中f(x)为方程ax^3 + bx^2 + cx + d的一个函数;(3) 判断迭代值x_{n+1}与x_n的差值是否满足收敛条件,如果满足,则认为x_{n+1}是方程的近似解;如果不满足,则返回第(2)步继续迭代计算。

2. 迭代法解一元三次方程的具体应用迭代法解一元三次方程在实际应用中具有广泛的应用价值。

以下是一些相关领域中的具体应用案例:2.1 金融工程学在金融工程学中,迭代法可用于求解期权定价模型中的一元三次方程。

期权定价模型通常涉及到高次方程的求解,通过迭代法可以得到方程的数值解,进而计算出期权的价格。

2.2 物理学在物理学中,迭代法常被用于求解一元三次方程模型。

例如,在自由落体运动的模型中,通过迭代法可以求解出物体运动的轨迹方程,进而可以对物体的运动进行预测和分析。

2.3 工程学在工程学中,迭代法常用于求解电路网络中复杂电流电压分布的方程。

通过将电路网络建模为一元三次方程,利用迭代法可以逐步逼近得到电路中各节点的电流和电压数值解,从而可以有效分析和设计电路。

2.4 经济学在经济学研究中,迭代法被用于求解一元三次方程模型,用于分析和预测经济变量的变化趋势。

例如,对于经济增长模型中的一元三次方程,可以通过迭代法求解得到经济增长率的数值解,进而进行经济政策的制定和评估。

3. 迭代法解一元三次方程的优缺点迭代法解一元三次方程具有以下优点和缺点:3.1 优点(1) 对大部分情况可行:迭代法可用于求解各种类型的一元三次方程,在实际应用中通用性较高;(2) 数值解精度高:通过逐步逼近的方式,迭代法可以得到一定精度的方程数值解。

收敛性与收敛速度的比较(数值分析实验)

收敛性与收敛速度的比较(数值分析实验)

收敛性与收敛速度的比较实验目的:通过用不同迭代法解同一非线性方程,比较各种方法的收敛性与收敛速度。

实验内容:求解非线性方程 0232=-+-x e x x 的根,准确到106-。

实验要求:(1) 用你自己设计的一种线性收敛的迭代法求方程的根(利用算法4.1(简单迭代法)计算);(2)用斯蒂芬森加速迭代(算法4.2)计算。

输出迭代初值、各次迭代值及迭代次数。

(3)用牛顿法(算法4.3)求方程的根,输出迭代初值、各次迭代值及迭代次数,并与(1)、(2)的结果比较。

(4)用MATLAB 内部函数solve 直接求出方程的所有根,并与(1)、(2)、(3)的结果进行比较。

实验程序:(1) 简单迭代法:初值选用0.5 format longc=10.^(-6);x0=0.5;syms x fxfx=(x.^2-exp(x)+2)/3;j=1;fx0=(x0.^2-exp(x0)+2)/3while(abs((x0-fx0)/fx0)>c)x0=fx0;fx0=(x0.^2-exp(x0)+2)/3j=j+1;endj结果:fx0 =0.200426243099957fx0 =0.272749065098375fx0 =0.253607156584130 fx0 =0.258550376264936 fx0 =0.257265636335094 fx0 =0.257598985162190 fx0 =0.257512454514832 fx0 =0.257534913615251 fx0 =0.257529084167956 fx0 =0.257530597238330 fx0 =0.257530204510457fx0 =0.257530306445639j =12j =12迭代次数:12(2)斯蒂芬森加速迭代法:format longc=10.^(-6);y=0.5;syms x fx gx hxfx=(x.^2-exp(x)+2)/3;gx=(fx.^2-exp(fx)+2)/3;hx=x-(fx-x).^2/(gx-2*fx+x);j=1;fy=(y.^2-exp(y)+2)/3;gy=(fy.^2-exp(fy)+2)/3;hy=y-(fy-y).^2/(gy-2*fy+y)while((abs(y-hy)/hy)>c)y=hy;fy=(y.^2-exp(y)+2)/3;gy=(fy.^2-exp(fy)+2)/3;hy=y-(fy-y).^2/(gy-2*fy+y)j=j+1;endj结果:hy =0.258684427565791hy =0.257530317719808hy =0.257530285439861j =3迭代次数:3(3)牛顿法format longc=10.^(-6);x0=0.5;syms x fxfx=x-(x.^2-3*x-exp(x))+2/(2*x-exp(x)-3);j=1;fx0=(x0.^2-exp(x0)+2)/3while((abs(x0-fx0)/fx0)>c)x0=fx0;fx0=x0-(x0.^2-3*x0-exp(x0)+2)/(2*x0-exp(x0)-3) j=j+1;end结果:fx0 =0.200426243099957fx0 =0.257208351085202fx0 =0.257530275750830fx0 =0.257530285439861迭代次数:4(4)solve函数直接求根x=solve('x^2-3*x+2-exp(x)=0')x =0.25753028543986076045536730493724用solve方法直接求根收敛速度较快,迭代次数较少。

迭代法实验报告

迭代法实验报告

迭代法实验报告迭代法实验报告引言:迭代法是一种常见的数值计算方法,通过反复迭代逼近解的过程,来解决一些复杂的数学问题。

本实验旨在通过实际操作,深入理解迭代法的原理和应用,并通过实验数据验证其有效性。

一、实验目的本实验的主要目的有以下几点:1. 掌握迭代法的基本原理和步骤;2. 熟悉迭代法在数值计算中的应用;3. 理解迭代法的收敛性和稳定性;4. 验证迭代法在实际问题中的有效性。

二、实验原理迭代法是一种通过不断逼近解的方法,其基本原理可概括为以下几步:1. 选择一个初始值作为迭代的起点;2. 根据问题的特点和要求,构造一个递推公式;3. 通过不断迭代计算,逐步逼近解;4. 判断迭代过程是否收敛,并确定最终的解。

三、实验步骤1. 选择合适的初始值。

初始值的选择对迭代的结果有重要影响,通常需要根据问题的特点进行合理选取。

2. 构造递推公式。

根据问题的数学模型,建立递推公式,将问题转化为迭代求解的形式。

3. 进行迭代计算。

根据递推公式,进行迭代计算,直到满足收敛条件或达到预定的迭代次数。

4. 判断迭代结果。

根据实际问题的要求,判断迭代结果是否满足精度要求,并进行相应的调整和优化。

四、实验结果与分析通过实验操作,我们得到了一组迭代计算的结果。

根据实验数据,我们可以进行以下分析:1. 收敛性分析。

通过观察迭代过程中的数值变化,我们可以判断迭代法的收敛性。

如果数值逐渐趋于稳定,且与理论解的误差在可接受范围内,说明迭代法收敛。

2. 稳定性分析。

迭代法的稳定性是指在初始值变化时,迭代结果是否保持稳定。

通过改变初始值,我们可以观察迭代结果的变化情况,从而评估迭代法的稳定性。

3. 精度分析。

迭代法的精度取决于迭代过程中的误差累积情况。

通过与理论解的比较,我们可以评估迭代法的精度,并对迭代过程进行优化。

五、实验结论通过本次实验,我们深入了解了迭代法的原理和应用,通过实际操作验证了迭代法在数值计算中的有效性。

实验结果表明,迭代法在解决复杂数学问题中具有较高的准确性和稳定性,能够满足实际应用的需求。

实验报告

实验报告

实验实验题一实验题1 水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。

由于旅途的颠簸,大家都很疲倦,很快就入睡了。

第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。

第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰好一只给猴子,私藏一堆,再去入睡。

天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子。

试问原来共有几只椰子?试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题。

实验题2 设,。

(1)从I0尽可能精确的近似值出发,利用递推公式:计算从I1到I20的近似值:(2)从I30较粗糙的估计值出发,用递推公式:计算从I1到I20的近似值:(3)分析所得结果的可靠性以及出现这种现象的原因。

实验题3 递推计算的稳定性计算积分其中a为参数,分别对a =0.05及a =15按下列两种方案计算,列出其可靠性进行分析比较,说明原因。

方案I 用递推公式递推初值可由积分直接得。

方案II 用递推公式根据估计式或取递推初值为或计算中取n =13开始。

实验课题4 三种求ln2的算法比较按下列三种方案构造逼近ln2的数列,用以求出ln2的近似值,要求精度。

观察和比较三种计算方案的收敛速度。

方案I 利用级数设则可取。

方案II 对方案I中的数据,按下列公式生成新数列。

称为数列的埃特金(Aitken)外推数列。

可以证明。

因此可取。

方案III 利用级数设则可取。

实验课题5 值的计算下面给出了三种求的近似值的计算方案,试比较它们的收敛速度和精度。

方案I 利用逼近单位圆半周长的方法。

单位圆半周长的值为,图1所示为一单位半圆,设为将半圆弧分成等份得以的角,其对应的弦线长度是。

则这样的弦线之和为(1-5)P n就是单位圆半周长的一个近似值由三角公式知(1-6)记,则由式(1-5),(1-6)可建立如下迭代公式(1-7)(1-8)则P n就是的逼近值。

6-3迭代法的收敛性

6-3迭代法的收敛性

1
2 x1 2 x2 x3 3
讨论Jacobi法与Gauss-Seidel法旳收敛性。
解:由定理,迭代法是否收敛等价于迭代矩阵 旳谱半径是否<1,故应先求迭代矩阵。而
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
| I
B |
1/a
2 / a 0
3 / a 2 / a

1 0 ,
2,3
|
4 a
|
故 (B) 4
|a|
由 (B) 1 得 | a | 4
故当 | a | 4 时,Jacobi迭代法收敛。
作业: 习题 1,2(2)
1 1 5
2 矩阵 B 1
1 2
0 1
不严格对角占优, 是弱对角占优
0 1 2
定义:假如矩阵A不能经过行旳互换和相应列 旳互换成为形式
A11 A12
0
A22
其中A11,A22为方阵,则称A为不可约.
例如:判断下列矩阵是否可约?
1 1 0
2 1 0
矩阵 A 1 1 0 是可约旳。 0 1 1
9 3
4 10
显然Aˊ是严格对角占优阵,所以对方程组
Ax b 用Jacobi法和Gauss-Seidel法均收敛。
例3*:设A=(aij)是二阶方阵,且a11a22≠0.试证 求解方程组Ax=b旳Jacobi法与Gauss-Seidel法 同步收敛或发散。
证明:Jacobi迭代矩阵为
0
BJ
a
21

数值分析中的迭代方法与收敛性分析

数值分析中的迭代方法与收敛性分析

数值分析中的迭代方法与收敛性分析迭代方法是数值分析中一种重要的算法,用于求解数值问题。

迭代方法基于一个初始猜测解,并通过不断迭代逼近真实解。

本文将介绍迭代方法的基本原理以及如何进行收敛性分析。

一、迭代方法的原理迭代方法的基本原理是通过不断更新猜测解来逼近真实解。

假设我们要求解一个方程f(x)=0,其中f(x)表示一个函数。

我们可以通过选择一个初始猜测解x0,然后使用迭代公式x_{k+1}=g(x_k)来生成下一个近似解x_{k+1},其中g(x_k)是一个迭代函数。

通过不断迭代,我们希望逐渐接近真实解。

二、常见的迭代方法在数值分析中,有许多常见的迭代方法被广泛应用于求解不同类型的数值问题。

以下是几种常见的迭代方法:1. 不动点迭代法不动点迭代法通过将方程f(x)=0转化为等价的x=g(x)的形式来求解。

其中g(x)是一个迭代函数,可以通过不断迭代x_{k+1}=g(x_k)逼近真实解。

不动点迭代法的收敛性通常需要满足收敛性条件,如Lipschitz条件或收缩映射条件。

2. 牛顿迭代法牛顿迭代法通过利用函数的导数信息来加速收敛速度。

迭代公式为x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)},其中f'(x_k)表示函数f(x_k)的导数。

牛顿迭代法的收敛性通常需要满足局部收敛性条件,如满足Lipschitz条件和拟凸性条件。

3. 雅可比迭代法雅可比迭代法用于求解线性方程组Ax=b,其中A是系数矩阵,b是常数向量。

迭代公式为x_{k+1}=D^{-1}(b-(L+U)x_k),其中D、L和U分别是矩阵A的对角线、下三角和上三角部分。

雅可比迭代法的收敛性要求系数矩阵A满足严格对角占优条件。

三、迭代方法的收敛性分析在使用迭代方法求解数值问题时,我们需要进行收敛性分析,以确定迭代方法是否能够逼近真实解。

常用的迭代收敛性分析方法包括:1. 收敛域分析收敛域分析用于确定迭代方法的收敛域,即迭代过程中能够保证收敛的初始猜测解的范围。

数值分析第三章线性方程组的迭代法课件

数值分析第三章线性方程组的迭代法课件

§ 3.3.2 Gauss—Seidel 迭代法的矩阵表示
将A分裂成A =D+L+U,则Ax b 等价于
(D+L+U )x = b
于是,则高斯—塞德尔迭代过程
Dx(k1) Lx(k1) Ux(k) b
因为 D 0 ,所以 D L D 0

(D L)x(k1) Ux(k) b
x(k1) (D L)1Ux(k) (D L)1b
e(k) x(k) x* Gx(k1) d (Gx* d) G(x(k1) x* ) Ge(k1)
于是 e(k) Ge(k1) G 2e(k2) Gk e(0)
由于 e (0)可以是任意向量,故 e(k) 收敛于0当且仅
故 (D L)x(k1) (1)D U x(k) b
显然对任何一个ω值,(D+ωL)非奇异, (因为假设 aii 0,i 1,2,, n )于是超松弛迭代公式为
x(k1) (D L)1 (1)D U x(k) (D L)1b
令 L (D L)1 (1)D U
f (D L)1b
则超松弛迭代 公式可写成
称为雅可比迭代公式, B称为雅可比迭代矩阵
雅可比迭代矩阵表示法,主要是用来讨论其收敛 性,实际计算中,要用雅可比迭代法公式的分量 形式。即
x1(k 1)
1 a11
(a12 x2(k )
a13 x3(k )
a1n xn(k )
b1 )
x2(k 1)
1 a 22
(a21 x1(k )
a23 x3(k )
§ 3.4.2超松弛迭代法的矩阵表示 设线性方程组 Ax=b 的系数矩阵A非奇异,且主对角
元素 aii 0(i 1,2,, n) , 则将A分裂成

数值计算中的迭代方法与收敛性

数值计算中的迭代方法与收敛性

数值计算中的迭代方法与收敛性迭代方法在数值计算中起着重要的作用,它通过逐步逼近解决了很多复杂的数学问题。

本文将探讨数值计算中的迭代方法以及它们的收敛性。

一、迭代方法的基本原理迭代方法是通过不断重复逼近的过程来求解问题的一种数值计算方法。

其基本原理是从一个初始值开始,通过迭代公式不断逼近目标值,直至满足预设的收敛条件。

通常情况下,迭代方法可以应用于求解方程、优化问题等。

二、常见的迭代方法1. 不动点迭代法不动点迭代法是迭代方法中最常见的一种。

其基本思想是将原问题转化为寻找一个函数的不动点,即函数自身在某点上的取值等于该点本身。

通过选择适当的迭代函数,不动点迭代法可以有效地求解方程或优化问题。

2. 牛顿迭代法牛顿迭代法是一种高效的求解方程的方法。

其核心思想是利用函数的局部线性近似来逼近方程的解。

通过迭代公式不断逼近方程的根,牛顿迭代法可以在较短的时间内获得较高的精度。

3. 雅可比迭代法雅可比迭代法是一种用于线性方程组求解的迭代方法。

它通过将方程组表示为矩阵乘法的形式,将解向量的每个分量都表示为先前迭代解的线性组合。

通过不断迭代更新解向量的各个分量,雅可比迭代法可以逐步逼近方程组的解。

三、迭代方法的收敛性分析迭代方法的收敛性是判断该方法是否能够求解准确解的重要指标。

常用的收敛性分析方法有局部收敛性和全局收敛性。

1. 局部收敛性局部收敛性是指在迭代过程中,当初始值选择在某个特定的范围内时,迭代方法能够收敛到准确解。

局部收敛性通常通过迭代函数的导数来分析,若导数满足一定条件,则可以判断方法具有局部收敛性。

2. 全局收敛性全局收敛性是指迭代方法对于任意初始值都能够收敛到准确解。

全局收敛性是迭代方法的理想性质,但在实际应用中很难满足。

对于某些迭代方法,可以通过收敛域的定义和分析来判断其全局收敛性。

四、迭代方法的应用与改进迭代方法在数值计算中有着广泛的应用,涉及到方程求解、优化、插值等领域。

尽管迭代方法具有很多优点,但也存在一些问题,如收敛速度慢、迭代公式复杂等。

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

实验二:迭代法、初始值与收敛性
一:实验要求
考虑一个简单的代数方程
210,x x --=
针对上述方程,可以构造多种迭代法,如211111,1,n n n n n
x x x x x +++=-=+
=记录各算法的迭代过程。

二:实验要求及实验结果
(1) 取定某个初始值,按如上迭代格式进行计算,它们的收敛性如何?重复选取不同放入初始值,反复实验。

请读者自行设计
一种比较形象的记录方式(如何利用Matlab 的图形功能),分析三种迭代法的收敛性与初值的选取关系。

(2) 对三个迭代法中的某一个,取不同的初值进行迭代,结果如何?试分析对不同的初值是否有差异?
实验内容:
ⅰ)对211n n x x +=-进行迭代运算,选取迭代次数n=20;分别选择初值-0.6, 1.6进行实验,并画出迭代结果的趋势图。

编写MATLAB 运算程序如下: %迭代法求解
%令x=x^2-1
clear
n=30;
x=-0.5;
x1=x^2-1;
for i=1:n
x1=x1^2-1;
xx(i)=x1;
end m=linspace(0,29,n);
plot(m,xx)
title('x=-0.5')
x=-0.6
x=1.6
如上图所示,选取初值分别为-0.6、1.6时,结果都是不收敛的。

分析:2()1n g x x =-,'()2g x x =,要想在某一邻域上'()21,[1,1]g x x x =<∀∈-则但是()[1,1]g x ∉-,所以不存在某个
邻域使得该迭代公式收敛。

即迭代公式对任何初值都是发散的。

ⅱ)对111n n
x x +=+进行迭代运算,选取迭代次数n=30;分别选择初值=-0.7, 2.1进行实验,并画出迭代结果的趋势图。

编写MATLAB 运算程序如下:
%迭代法求解
%令x=x^2-1
clear
n=20;
x=-0.5;
x1=1+1./x;
for i=1:n
x1=1+1./x1;
xx(i)=x1; end
m=linspace(0,29,n);
plot(m,xx,'b')
title('x=-0.5')
x=-0.7x=2.1
如上图所示,选取初值分别为-0.7、2.1时,结果都是收敛。

分析:1()1,n g x x =+设 '21()[1.65,],[1.65,],()g x x g x x ∈+∞∀∈+∞=-在[1.65,]+∞上有界,且
'2
1()1,[1.65,]g x x x =<∀∈+∞则由迭代式对任意初始值0[1.65,]x ∈+∞1()1,n g x x =+产生的序列都收敛。

同时由1()1,n g x x =+
可以看到,在0[,]x ∈-∞+∞选取初值,在进行n 次迭代后,都会存在一个 1.65n x >,此时n x 相当于是在[1.65,]+∞范围内的初始值,迭代公式产生的序列收敛。

所以初值的选取对数列的收敛性没有影响。

ⅲ)对1n x +=n=20;分别选择初值=-0.6,2.1进行实验,并画出迭代结果的趋势图。

编写MATLAB 运算程序如下:
%迭代法求解
%令x=sqrt(1+x)
clear
n=20;
x=-0.5;
x1= sqrt(1.+x);
for i=1:n
x1= sqrt(1+x1);
xx(i)=x1; end
m=linspace(0,29,n);
plot(m,xx,'b')
title('x=-0.5')
x=-0.6
如上图所示,选取初值分别为-0.6、2.1时,结果都是收敛。

分析:()1g x =
设 '()[1,],[1,],()g x x g x ∈-+∞∀∈-+∞=在[1,]-+∞实
数域上有界,且'()1,[1,]
g x x =<∀∈-+∞则由迭代式对任意初始值0[1,]x ∈-+∞()g x =产生的序列都收敛。

同时由()g x =可以看到,在0[,1]x ∈-∞-选取初值,对迭代结果所产生的虚数的实部和虚部也是收敛的。

如初值选取x=-3,得到20次的迭代结果如下:实部收敛于1.618,虚部收敛于0,
Columns 1 through 5
1.1688 + 0.6050i 1.4867 + 0.2035i 1.5782 + 0.0645i 1.6058 + 0.0201i 1.6143 + 0.0062i
Columns 6 through 10
1.6169 + 0.0019i 1.6177 + 0.0006i 1.6179 + 0.0002i 1.6180 + 0.0001i 1.6180 + 0.0000i
Columns 11 through 15
1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i
Columns 16 through 20
1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i 1.6180 + 0.0000i
x=-3
上图是初值选取为-3的迭代结果趋势图,可以看出,当迭代结果为虚数时,迭代结果最终还是收敛的。

在进行n 次迭代后,实部都会存在一个1n x >-,此时n x 相当于是在[1,]-+∞范围内的初始值,迭代公式产生的序列收敛。

所以初值的选取对数列的收敛性没有影响。

(3) 线性方程组迭代法的收敛性是不依赖初值的选取的。

比较线性与非线性问题迭代的差异,有何结论和问题。

ⅰ)对线性方程1212()()()f ax bx af x bf x +=+,设()f x ax b =+,则'()f x a =。

若线性方程的迭代是收敛的,则有'()1,11f x a a =<-<<对()f x ax b =+而言,在[,]-∞+∞上,都有,()[,]x f x ∈-∞+∞,
所以,对任何初值,方程的迭代都是收敛的,不受初值的影响。

若线性方程的迭代是发散的,则对任何初值都发散,方程迭代的收敛性也不受初值的影响。

ⅱ)对非线性方程的迭代,就复杂的多。

对于方程迭代发散的方程而言,无论初值如何选择,收敛性是不会改变的。

方程的迭代还是发散。

对方程迭代收敛的情况而言,若想要使得初值的选择不会影响收敛性,那必须要使得,()[,]x f x ∈-∞+∞并且在某一定点的邻域内'()1f x <,情况是很复杂的。

相关文档
最新文档