计算方法(方程组的迭代法)
- 格式:ppt
- 大小:1.52 MB
- 文档页数:60


第二章 解线性代数方程组的迭代法
2. 1 引言
在许多实际问题中,常常需要求解这样的线性代数方程组,它的系数矩阵数 很高,但非零元素很少,人们称其为大型稀疏线性代数方程组,对于这类方程组, 如果它乂不具有带状性,那么,再用直接法求解就不太有效,因为用直接法进行消 元或矩阵的三角分解时,没有考虑到系数矩阵的稀疏性,破坏了系数矩阵的形状, 导致了计算量的增加和存储单元的浪费,于是,人们常用迭代法求解大型稀疏线性 代数方程组。迭代法只需要存储系数矩阵的非零元素,这样,占用内存在单元较 少,能解高阶线性代数方程组。山于迭代法是通过逐次迭代来逼近方程组的解,因 此,收敛性和收敛速度是构造迭代法时要注意的问题。那么,是否可以构造一种适 用于一般情况的迭代法呢?回答是否定的,这是因为不同的系数矩阵具有不同的性 态,一般地,每一种迭代法都具有一定的适用范围,在本章的学习中将会看到,有
时,某种方法对一类方程组迭代收敛,而对另一类方程组进行迭代时就会发散。因 此,我们应该学会针对具有不同性质的线性代数方程组,构造合适的迭代方法。
本章主要介绍一些基本的迭代法,并在一定的范围内讨论其中儿种方法的收 敛法。
2. 2 基本迭代法
考虑线性方程组
如坷+如勺+…+气兀”二勺
a2txi+a22x2 + - + a2„xn =b2 ■ • • • • • • • • • • •
(2. 1)
采用矩阵和向量记号,我们可以把(2.1)式写成0
Ax = h
(2.2)
其中,
为非奇异矩阵,设
下面我们介绍雅可比(Jacobi)迭代,高斯-塞德尔(Gauss-Seidel)迭代与
S0R迭代以及SS0R迭代的基本思想和算法。为了方便地给出矩阵表示式,我们引 进下列矩阵分裂:
4SD-U,
(2.3)
其中
-a2\
-an\
(1) 雅可比迭代的基本思想
从式(2.1)的第i个方程中解出Xt =(/ = 1,2,•••,«)
计算方法实验报告(四)
方程和方程组的迭代解法
一、实验问题
利用简单迭代法,两种加速技术,牛顿法,改进牛顿法,弦割法求解习题5-1,5-2,5-3中的一题,并尽可能准确。
选取5-3:求𝑥3−𝑥2−1=0在x=1.5附近的根。
二、问题的分析(描述算法的步骤等)
(1)简单迭代法算法:
给定初始近似值𝑝0,求p=φ(𝑝)的解。
Step 1 令i=0;
Step 2 令𝑝𝑖+1=φ(𝑝𝑖)(计算𝑝𝑖+1);
Step 3 如果𝑝𝑖+1=𝑝𝑖,则迭代终止,否则重复Step 2。
(2)Aitken加速法算法
Step 1 令k=0,利用简单迭代算法𝑥𝑘+1=𝜑(𝑥𝑘)得到迭代序列𝑥𝑘;
Step 2 令x𝑘∗=x𝑘-(𝑥𝑘−𝑥𝑘−1)2𝑥𝑘−2𝑥𝑘−1+𝑥𝑘−2(计算𝑥𝑘∗得到一个新的序列𝑥𝑘∗,其中k=0,1,2…);
Step 3 如果𝑥𝑘+1∗=𝑥𝑘∗,则迭代终止,否则重复Step 2。
(3)插值加速法算法
Step 1 令k=0,利用简单迭代算法𝑥𝑘+1=𝜑(𝑥𝑘)得到迭代序列𝑥𝑘;
Step 2 令x𝑘∗=x𝑘+(𝑥𝑘−𝑥𝑘−1)(𝑥𝑘−𝑥𝑘+1)𝑥𝑘−1−2𝑥𝑘+𝑥𝑘+1(计算𝑥𝑘∗得到一个新的序列𝑥𝑘∗,其中k=1,2,3…);
Step 3 如果𝑥𝑘+1∗=𝑥𝑘∗,则迭代终止,否则重复Step 2。
(4)牛顿法算法
Step 1给定初始近似值𝑥0;
Step 2令𝑥𝑘+1=𝑥𝑘−𝑓(𝑥𝑘)𝑓′(𝑥𝑘),其中k∈N,计算得到𝑥𝑘的 序列;
Step 3如果𝑥𝑘+1=𝑥𝑘,则迭代终止,否则重复Step 2。
(5)改进牛顿法的算法
Step 1给定初始近似值𝑥0;
Step 2令𝑥𝑘+1=𝑥𝑘−2𝑓(𝑥𝑘)𝑓′(𝑥𝑘)+𝑠𝑔𝑛𝑓′(𝑥𝑘)√𝑓′2(𝑥𝑘)−2𝑓"(𝑥𝑘)𝑓(𝑥𝑘) ,其中k∈N,迭代计算得到𝑥𝑘的 序列;
数值分析--第三章--迭代法迭代⼀般⽅程:
本⽂实例⽅程组:
⼀.jacobi迭代法
从第i个⽅程组解出xi。 线性⽅程组Ax=b,先给定⼀组x的初始值,如[0,0,0],第⼀次迭代,⽤x2=0,x3=0带⼊第⼀个式⼦得到x1的第⼀次迭代结果,⽤x1=0,x3=0,带⼊第⼆个式⼦得到x2的第⼀次迭代结果,⽤x1=0,x2=0带⼊第三个式⼦得到x3的第⼀次迭代结果。得到第⼀次的x后,重复第⼀次的运算。
转化成⼀般的形式:(其中L是A的下三⾓部分,D是A的对⾓元素部分,U 是上三⾓部分)
得到迭代公式:
其中的矩阵B和向量f如何求得呢?
其实,矩阵B的计算也很简单,就是每⾏的元素/该⾏上的对⾓元素
⼆.Gauss-Seidel迭代法【收敛速度更快】
这个可以和jacobi法对⽐进⾏理解,我们以第⼆次迭代为例(这⾥的第⼀次迭代结果都⽤⼀样的,懒得去换)
从上表对⽐结果可以看出,Jacobi⽅法的第⼆次迭代的时候,都是从第⼀次迭代结果中,获取输⼊值。
上⼀次迭代结果[2.5,3.0,3.0],将这个结果带⼊上⾯式⼦1,得到x1=2.88,;将[2.5,3.0,3.0]替换成[2.88,3.0,3.0]带⼊第⼆个式⼦的运算,这⾥得到x2=1.95,所以把[2.88,3.0,3.0]替换成[2.88,1.95,3.0]输⼊第三个式⼦计算X3=1.0.这就完成了这⼀次的迭代,得到迭代结果[2.88,1.95,1.0],基于这个结果,开始下⼀次迭代。
特点:jacobi迭代法,需要存储,上⼀次的迭代结果,也要存储这⼀次的迭代结果,所以需要两组存储单元。
⽽Gauss-Seidel迭代法,每⼀次迭代得到的每⼀个式⼦得到的值,替换上⼀次迭代结果中的值即可。所以只需要⼀组存储单元。
转化成⼀般式:注意:第⼆个式⼦中的是k+1次迭代的第⼀个式⼦的值,不是第k次迭代得值。
计算过程同jacobi迭代法的类似
三.逐次超松弛法SOR法
上⾯仅仅通过实例说明,Jacobi和Seidel迭代的运算过程。并没有构造其⼀般的计算公式。Gauss-Seidel迭代法的⼀般公式:
高斯牛顿迭代法解方程组
高斯牛顿迭代法是一种常用的数值计算方法,用于解决非线性方程组。本文将介绍高斯牛顿迭代法的基本原理、步骤和应用场景。
一、高斯牛顿迭代法的原理
高斯牛顿迭代法是利用泰勒展开式对非线性方程组进行近似线性化处理,然后通过迭代逼近的方法求解方程组的解。其基本思想是通过线性化的近似,将非线性方程组转化为一个线性方程组,然后利用线性方程组的解逐步逼近非线性方程组的解。
二、高斯牛顿迭代法的步骤
1. 初始化:给定初值向量x0和迭代误差精度ε。
2. 迭代计算:根据当前的估计解xk,计算出近似的雅可比矩阵Jk和残差向量rk。
3. 判断终止条件:若rk的范数小于等于设定的误差精度ε,则停止迭代,输出近似解xk;否则,进行下一步迭代。
4. 更新迭代:根据当前的估计解xk和雅可比矩阵Jk,计算更新量Δxk。
5. 更新解向量:更新当前的估计解xk+1 = xk + Δxk。
6. 回到步骤2,继续迭代计算,直到满足终止条件。
三、高斯牛顿迭代法的应用场景
高斯牛顿迭代法广泛应用于科学和工程领域的各种问题求解,特别适用于非线性最小二乘问题的求解。以下是一些常见的应用场景:
1. 数据拟合:在实际问题中,常常需要根据一组观测数据拟合出一个数学模型。高斯牛顿迭代法可以通过最小化观测数据与模型之间的误差,来确定最优的模型参数。
2. 图像处理:高斯牛顿迭代法可以用于图像处理中的图像恢复、图像去噪、图像分割等问题的求解。例如,在图像恢复中,可以利用高斯牛顿迭代法求解出最佳的恢复图像。
3. 机器学习:高斯牛顿迭代法可以用于机器学习中的参数估计和模型训练。例如,在逻辑回归中,可以使用高斯牛顿迭代法来求解最优的模型参数。
4. 无线通信:高斯牛顿迭代法在无线通信系统中的信道估计、自适应调制等问题的求解中得到广泛应用。通过迭代计算信道的状态信息,可以提高通信系统的性能。
高斯牛顿迭代法是一种强大的数值计算方法,可以有效地求解非线性方程组。它的原理简单,步骤清晰,应用广泛。在实际问题中,我们可以根据具体的需求和问题特点,选择合适的迭代次数和初始值,通过高斯牛顿迭代法得到准确的解。通过不断改进和优化算法,高斯牛顿迭代法在实际应用中具有更广阔的发展空间。