线性方程组6种数值解法的对比研究 您所在的位置:网站首页 数值计算方法和算法答案区别在哪 线性方程组6种数值解法的对比研究

线性方程组6种数值解法的对比研究

2024-07-10 10:11| 来源: 网络整理| 查看: 265

线性方程组数值解法实验研究 一、实验目的

熟悉求解线性方程组的有关理论和方法;会编写Gauss消去法、LU分解法、Jacobi迭代法、Gauss-Seidel迭代法、超松弛(SOR)迭代法及共轭梯度法的程序;通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。

二、实验内容 编程实现Gauss消去法、LU分解法,并用这两种方法求解线性方程组: ⎧⎩⎨⎪⎪x1+2x2−2x3=7x1+x2+x3=22x1+2x2+x3=5(1) 编写Jacobi迭代法、高斯-赛德尔迭代法程序,并用其求解以下84阶线性方程组,并指出各迭代法是否收敛?实验结果说明什么问题? ⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜6816816⋱1⋱8⋱6816816⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜x1x2x3⋮x82x83x84⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜71515⋮151514⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟(2) 编写超松弛(SOR)迭代法程序,并用其求解以下4阶方程组,并分析超松弛因子 对SOR收敛性的影响。实验结果说明了什么问题? ⎛⎝⎜⎜⎜13.422−13.42200012.252−12.25200012.377−12.37700011.797⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜x1x2x3x4⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜750.530010230⎞⎠⎟⎟⎟(3) 编写共轭梯度法程序 ,并用其求解问题(1)(2)(3)中的方程组,并求出共轭梯度法在这三种问题下的收敛速度,列出详细的分析过程。 三、实验结果分析 1. Gauss消去法与LU分解法求解线性方程组

根据线性方程组公式(1)可得,系数矩阵 A 和常数向量 b

A=⎛⎝⎜112212−211⎞⎠⎟,b=⎛⎝⎜725⎞⎠⎟ 假设 x=[x1x2x3]T 由此可得 Ax=b 其中,根据矩阵 A 的初等行变换,可以得到矩阵 A 的秩为3,因此,该线性方程组具有唯一确定解。Gauss消去法和LU分解法都可以得到解。其结果如表1所示。

表1 实验1的结果

方法 x 计算误差(>2.22E−16)Gauss消去法 [12−1]T 0LU分解法 [12−1]T 0 2. Jacobi迭代法与Gauss-Seidel迭代法求解84阶线性方程组

根据公式(2),建立线性方程组标准方程

Ax=b 式中 A=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜6816816⋱1⋱8⋱6816816⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟,b=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜71515⋮151514⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟ x=(x1x2x3⋯x82x83x84)T 基于迭代公式 x(k+1)=Gx(k)+f(4) 将系数矩阵 A 分解成对角矩阵和上(下)三角矩阵的组合,即 A=D−L−U 其中 D=diag(666⋯666) L=−⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜08080⋱⋱808080⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟ U=−⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜010101⋱⋱01010⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟ 根据问题的特殊性,很容易发现该问题的解为 x∗=(111⋯111) 由于常系数矩阵 A 不是满秩矩阵,因此该问题存在多个解。 2.1 Jacobi迭代法

Jacobi迭代法的迭代公式为

Dx(k+1)=(L+U)x(k)+b(5) 将公式(5)转化为公式(4)的形式,则可得 G=D−1(L+U) f=D−1b 接下来分析该迭代法时候收敛,计算矩阵 G 的谱半径 ρ(G) ρ(G)=max{|λi||λi∈λ,Aε=λε}=1.1195>1 因此,Jacobi迭代法对该问题不收敛,无法求解。

2.2 Gauss-Seidel迭代法

Gauss-Seidel迭代法的迭代公式为

(D−L)x(k+1)=Ux(k)+b(6) 将公式(6)转化为公式(4)的形式,则可得 G=(D−L)−1U f=(D−L)−1b 接下来分析该迭代法时候收敛,计算矩阵 G 的谱半径 ρ(G) ρ(G)=max{|λi||λi∈λ,Aε=λε}=0.88747


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有