lu分解法、列主元高斯法、jacobi迭代法、gaussseidel法的原理及matlab程序
Jacobi迭代法与GaussSeidel迭代法算法比较
Jacobi 迭代法与Gauss-Seidel迭代
法算法比较
目录
1 引言 (1)
1.1Jacobi迭代法 (2)
1.2Gauss-Seidel迭代法 (2)
1.3逐次超松弛(SOR)迭代法 (3)
2算法分析 (3)
3 结论 (5)
4 附录程序 (5)
参考文献 (8)
Jacobi 迭代法与Gauss-Seidel 迭代法比较
1 引言
解线性方程组的方法分为直接法和迭代法,直接法是在没有舍入误差的假设下,能在预定的运算次数内求得精确解,而迭代法是构造一定的递推格式,产生逼近精确值的序列。这两种方法各有优缺点,直接法普遍适用,但要求计算机有较大的存储量,迭代法要求的存储量较小,但必须在收敛性得以保证的情况下才能使用。对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,所以比较受工程人员青睐。
迭代法求解方程组就是构造一个无限的向量序列,使它的极限是方程组的解向量。即使计算机过程是精确的,迭代法也不能通过有限次算术运算求得方程组的精确解,而只能逐步逼近它。因此迭代法存在收敛性与精度控制的问题。
迭代法是常用于求解大型稀疏线性方程组(系数矩阵阶数较高且0元素较多),特别是某些偏微分方程离散化后得到的大型稀疏方程组的重要方法。设n 元线性微分方程组
b Ax = (1)
的系数矩阵A 非奇异,右端向量0≠b ,因而方程组有唯一的非零解向量。而对于这种线性方程组的近似解,前辈们发展研究了许多种有效的方法,有Jacobi 迭代法、Gauss —Seidel 迭代法,逐次超松弛迭代法(SOR 法),这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A 分解成两个矩阵N 和P 的差,即P N A -=;其中N 为可逆矩阵,线性方程组(1)化为:
线性方程组的几种求解方法
线性方程组的几种求解方法
1.高斯消元法
高斯消元法是求解线性方程组的一种常用方法。该方法的基本思想是通过对方程组进行一系列简化操作,使得方程组的解易于求得。首先将方程组表示为增广矩阵,然后通过一系列的行变换将增广矩阵化为行简化阶梯形,最后通过回代求解出方程组的解。
2.列主元高斯消元法
列主元高斯消元法是在高斯消元法的基础上进行改进的方法。在该方法中,每次选取主元时不再仅仅选择当前列的第一个非零元素,而是从当前列中选取绝对值最大的元素作为主元。通过选取列主元,可以避免数值稳定性问题,提高计算精度。
3.LU分解法
LU分解法是一种将线性方程组的系数矩阵分解为一个下三角矩阵L 和一个上三角矩阵U的方法。首先进行列主元高斯消元法得到行阶梯形矩阵,然后对行阶梯形矩阵进行进一步的操作,得到L和U。最后通过回代求解出方程组的解。
4.追赶法(三角分解法)
追赶法也称为三角分解法,适用于系数矩阵是对角占优的三对角矩阵的线性方程组。追赶法是一种直接求解法,将系数矩阵分解为一个下三角矩阵L和一个上三角矩阵U,然后通过简单的代数运算即可求得方程组的解。
5.雅可比迭代法
雅可比迭代法是一种迭代法,适用于对称正定矩阵的线性方程组。该方法的基本思想是通过不断迭代求解出方程组的解。首先将方程组表示为x=Bx+f的形式,然后通过迭代计算不断逼近x的解。
6.高斯-赛德尔迭代法
高斯-赛德尔迭代法是雅可比迭代法的改进方法。该方法在每一次迭代时,使用已经更新的解来计算新的解。相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。
7.松弛因子迭代法
常见的线性代数求解方法
常见的线性代数求解方法
1.列主元消去法
列主元消去法是一种经典的求解线性方程组的方法。它通过将
方程组转化为上三角矩阵的形式来求解。这个方法的关键在于选取
主元的策略。一种常见的选取主元的策略是选择当前列中绝对值最
大的元素作为主元,然后进行消去操作,直到将矩阵转化为上三角
矩阵。
2.高斯-约当消去法
高斯-约当消去法是另一种常见的线性方程组求解方法。它通
过消去矩阵的下三角部分来将线性方程组转化为上三角矩阵的形式。这个方法也需要选择主元,常见的选择策略是选取当前行中绝对值
最大的元素作为主元,然后进行消去操作。
3.LU分解法
LU分解法是将矩阵分解为一对矩阵的乘积的方法。这个方法的思想是先将矩阵分解为一个下三角矩阵和一个上三角矩阵,然后通过求解上三角矩阵和下三角矩阵的两个方程组来求解原始的线性方程组。
4.Jacobi迭代法
Jacobi迭代法是一种迭代求解线性方程组的方法。它通过将原始的线性方程组转化为一个对角矩阵和另一个矩阵的乘积的形式,然后通过迭代求解这个对角矩阵和另一个矩阵的方程组来逼近线性方程组的解。
5.Gauss-Seidel迭代法
Gauss-Seidel迭代法是另一种迭代求解线性方程组的方法。它与Jacobi迭代法类似,但是在每一次迭代中,它使用前一次迭代得到的部分解来更新当前的解。这个方法通常比Jacobi迭代法收敛得更快。
以上是一些常见的线性代数求解方法。每种方法都有其特点和适用范围,我们可以根据具体情况选择合适的方法来求解线性方程组的问题。
列主元素Gauss消去法Jacobi迭代法原理及计算方法
一、 列主元素Gauss 消去法、Jacobi 迭代法原理及计算方法
1. 列主元素Gauss 消去法:
1.1 Gauss 消去法基本原理
设有方程组Ax b =,设A 是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵[]B A b = ,将其中的A 变换成一个上三角矩阵,然后求解这个三角形方程组。
1.2 列主元Gauss 消去法计算步骤
将方程组用增广矩阵[]()(1)ij
n n B A b a ⨯+== 表示。
1). 消元过程
对1,2,,1k n =-
(1) 选主元,找{},1,,k i k k n ∈+ 使得 ,max k i k ik k i n
a a ≤≤= (2) 如果,0k i k a =,则矩阵A 奇异,程序结束;否则执行(3)。
(3) 如果k i k ≠,则交换第k 行与第k i 行对应元素位置,k kj i j a a ↔,,,1j k n =+ 。
(4) 消元,对,,i k n = ,计算/,ik ik kk l a a =对1,,1j k n =++ ,计算
.ij ij ik kj a a l a =-
2). 回代过程
(1) 若0,nn a =则矩阵奇异,程序结束;否则执行(2)。
(2) ,1/;n n n nn x a a +=
对1,,2,1i n =- ,计算,11/n i i n ij j ii j i x a a x a +=+⎛⎫=- ⎪⎝⎭
∑
2. Jacobi 迭代法
2.1 Jacobi 迭代法基本原理
Jacobi 迭代法的基本思想是对n 元线性方程组b Ax =,.,n n R b R A ∈∈将其变形为等价方程组f Bx x +=,其中.,,n n n n R x R f R B ∈∈∈⨯B 成为迭代矩阵。从某一取定的初始向量)0(x 出发,按照一个适当的迭代公式 ,逐次计算出向量f Bx x k k +=+)()1( ( 1,0=k ),使得向量序列}{)(k x 收敛于方程组的精确解.
数值分析实验报告
%当方程组行与列的维数不相等时,停止计算,并输出出错信息
ifn~=m
error('The row and columns of matrix A must beepual!');
return;
end
%当方程组与右端项的维数不匹配时,停止计算,并输出错误信息
(二)LU分解法:
其基本思想是:对系数矩阵 进行分解, ,分别得到L为下三角矩阵,U为上三角矩阵,最后通过两个三角方程组 ,最后得出方程组的解。
2、基本程序设计:
列主元素法消元法的MATLAB基本程序如下所示:
function[x,det,flag]=Gauss(A,b)
%求线性方程组的列主元Gauss消元法,其中
%A为方程组的系数矩阵;
%b为方程组的右端项;
%x为方程组的解;
%det为系数矩阵A的行列式的值;
%flag为指标向量,flag='failure'表示计算失败,flag=‘OK’表示计算成功。
A=[5.0 0.96 6.5;2.0 4.5 0.36;0.50 1.1 3.1];
b=[0.96 0.020 6.0];
clear
fprintf('gauss-seidel迭代法')
x1_(1)=0;
线性方程组求解的常用方法与技巧
线性方程组求解的常用方法与技巧线性方程组是数学中常见的问题,它的求解在各个领域都有广泛的
应用。本文将介绍线性方程组求解的常用方法与技巧。
一、高斯消元法
高斯消元法是线性方程组求解最常用的方法之一。它通过化简矩阵,将线性方程组转化为阶梯形式,从而求解未知数的值。
具体步骤如下:
1. 将线性方程组表示为增广矩阵形式。
2. 选择一个主元,通常选择第一列的首个非零元素。
3. 通过初等变换,将主元所在列的其他元素消成零。
4. 重复步骤2和3,直到转化为阶梯形式。
5. 回代求解未知数,得出线性方程组的解。
高斯消元法的优点是简单易行,适用于任意规模的线性方程组。然而,该方法在面对大规模线性方程组时会面临计算复杂度高的问题。
二、雅可比迭代法
雅可比迭代法是另一种常用的线性方程组求解方法,它通过迭代逼
近的方式求解未知数的值。
具体步骤如下:
1. 将线性方程组表示为矩阵形式,即AX=B。
2. 对矩阵A进行分解,将其分解为D、L和U三个矩阵,其中D是A的对角线矩阵,L是A的下三角矩阵,U是A的上三角矩阵。
3. 利用雅可比迭代公式,依次迭代计算未知数的值,直到满足收敛条件。
4. 得到线性方程组的解。
雅可比迭代法的优点是适用于稀疏矩阵,且收敛性较好。然而,它的迭代次数通常较多,计算效率较低。
三、LU分解法
LU分解法是线性方程组求解的一种常见方法,它将矩阵A分解为两个矩阵L和U的乘积。
具体步骤如下:
1. 将线性方程组表示为矩阵形式,即AX=B。
2. 对矩阵A进行LU分解,其中L是单位下三角矩阵,U是上三角矩阵。
3. 将方程组AX=B转化为LUx=B,再分别解得Ly=B和Ux=y两个方程组的解。
高斯消元法与LU分解法的比较及应用
高斯消元法与LU分解法的比较及应用
在数学领域中,解线性方程组是一个基本问题。对于大多数初学者来说,最容易理解的方法可能就是高斯消元法。而在高等数学领域中,还有一种更为高效的方法——LU分解法。
本文将介绍高斯消元法和LU分解法的基本原理及其比较,同时概述它们的应用。
一、高斯消元法
高斯消元法是解线性方程组的最基本方法之一,它的基本思路是通过列主元消元的方法,将n个未知数的线性方程组化为上三角矩阵,然后反向代入求解。
具体而言,它通过如下的几个步骤来求解线性方程组:
1、将线性方程组的增广矩阵写成方程组形式
2、选取主元(即该列中绝对值最大的元素),并通过消元操作将该列其余元素化为0
3、重复上述操作,直至整个矩阵化为上三角矩阵
4、用反向代入法依次求解出各个未知数的值
高斯消元法是非常直观和易于理解的方法,在实际应用中得到了广泛的应用。然而,它还是存在一些问题的。
首先,高斯消元法并不能很好地解决出现多解或无解问题的情况。其次,在消元的过程中,如果主元为0,则需要进行行交换操作,这样可以影响运算的速度和精度。此外,如果对于某些系数矩阵较为复杂的线性方程组,高斯消元法往往会受到很大的计算压力,从而导致求解效率低下。
二、LU分解法
LU分解法是线性代数领域中一种非常重要的分解方法。它将原始矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积。公式如下:
A=LU
其中,A为原始矩阵,L为下三角矩阵,U为上三角矩阵。
LU分解法的基本思路是,将原始矩阵进行消元操作,得到一个下三角矩阵L和一个上三角矩阵U,使原始矩阵A=LU,然后将Ax=b的线性方程组化为Ly=b和Ux=y两个方程组,以此求解出x。
解线性方程组的列主元素高斯消去法和lu分解法
数值试验报告分析
一、实验名称:解线性方程组的列主元素高斯消去法和LU 分解法
二、实验目的及要求:
通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法的优点,以及方程组
系数矩阵和右端向量的微小变化对解向量的影响。
三、算法描述:
本次试验采用的是高斯列主元消去法和LU分解法求解线性方程组的解。
其中,高斯消去法的基本思想是避免接近于零的数作分母;能进行到底的条件: 当A可逆时,列主元Gauss(高斯)消去法一定能进行到底。
优点: 具有很好的数值稳定性;具有与顺序Gauss 消去法相同的计算量。列主元Gauss(高斯)消去法的精度显著高于顺序Gauss(高斯)消去法。
注意:省去换列的步骤,每次仅选一列中最大的元。
矩阵的三角分解法是A=LU,L 是下三角阵,U是上三角阵,Doolittle 分解:L 是单位下三角阵,U是上三角阵;Crout 分解:L 是下三角阵,U是单位上三角阵。矩阵三角分解的条件是矩阵 A 有唯一的Doolittle 分解的充要条件是 A 的前n-1 顺序主子式非零;矩阵A有唯一的Crout 分解的充要条件是 A 的前n-1 顺序主子式非零。三角分解的实现是通过(1)Doolittle 分解的实现;(2)Doolittle 分解的缺点:条件苛刻,且不具有数值稳定性。(3)用Doolittle 分解求解方程组: AX=b LUX=b LY=b
A=LU UX=Y ;
四、实验内容:
解下列两个线性方程组
3.01 6.03 1.99 x1 1
1) 1.27 4.16 1.23 x2 1
实验五矩阵的LU分解法雅可比迭代
实验五矩阵的LU分解法,雅可比迭代
实
验
报
告
学院:计算机科学与软件学院班级:116班
姓名:薛捷星
学号:112547
一、目的与要求:
熟悉求解线性方程组的有关理论和方法;
会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序;
通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。
二、 实验内容:
会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序,进一步了解各种方法的优缺点。
三、 程序与实例
列主元高斯消去法
算法:将方程用增广矩阵[A ∣b ]=(ij a )1n (n )+⨯表示
1) 消元过程
对k=1,2,…,n-1
①选主元,找{}n ,,1k ,k i k +∈使得
k ,i k a =ik a n
i k max ≤≤ ②如果0a k ,i k =,则矩阵A 奇异,程序结束;否则执行③。
③如果k i k ≠,则交换第k 行与第k i 行对应元素位置,
j i kj k a a ↔ j=k,┅,n+1
④消元,对i=k+1, ┅,n 计算
kk ik ik a a l /=
对j=l+1, ┅,n+1计算
kj ik ij ij a l a a -=
2) 回代过程
①若0=nn a ,则矩阵A 奇异,程序结束;否则执行②。
②nn n n n a a x /1,+=;对i=n-1, ┅,2,1,计算
ii n
i j j ij n i i a x a a x /11,⎪⎪⎭⎫ ⎝⎛-
=∑+=+
程序与实例
例1 解方程组
⎪⎩
⎪⎨⎧=++-=++-=++035.3643x .5072x .1835x .2137.2623x .43712x 347x .1 1.1833.555x 2.304x 0.101x 321321321
LU分解法
迭代法是用某种极限过程去逐步逼近真解的方法, 从而也可用有限步运算算出具有指定精确度的近 似解。迭代法主要有:Jacobi迭代法、Gauss一 Seidel迭代法、逐次超松驰法(SOR)、对称逐次超 松驰法(SSOR)以及共扼斜量法。
迭代法的优点是原始系数矩阵始终不变,因而 算法简单,编写程序较方便,且所需存贮单元 也较少,缺点是只有近似解序列收敛时才能被 采用,而且存在收敛性和收敛速度的问题。 LU分解法是直接分解法中的一种算法,将方程 组Ax=b 中的稀疏矩阵A分解为一个上三角矩阵 和一个下三角矩阵,其中A=LU,令y=Ux,那么在 方程租的运算中可以先解Ly=b,再解Ux=y 在编程过程中分两步进行,先对矩阵A进行 LU分解,然后再解方程组
LU分解法
线性方程组的解法通常分为两大类:直接接法和 迭代解法。
直接法是在没有舍入误差的情况下,通过有限步 四则运算可以求得方程组。但是,在实际计算时, 由于初始数据变为机器数而产生的误差以及计算 过程中所产生的舍入误差等都对解的精确度产生 影响,因此直接法实际上也只能算出方程组真解 的近似值。
目前较实用的直接法是高斯消去法和一些变形,例 如选主元的高斯消去法和矩阵的三角分解法,它们 都是目前计算机上常用的有效方法。直接法的优点 是计算量小,可事先估计,缺点是所需存贮单元较 多,编写程序较复杂,计算程序所需时间较长。
具体的计算结果比较,取一正定对称矩阵,比较不 同算法 的结果,以及考虑稀疏和不考虑稀疏计算 时间的差别。
雅可比迭代法及矩阵的特征值
实验五
矩阵的lu 分解法,雅可比迭代法
班级:
**:
:
实验五 矩阵的LU 分解法,雅可比迭代
一、目的与要求:
➢ 熟悉求解线性方程组的有关理论和方法;
➢ 会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序;
➢ 通过实际计算,进一步了解各种方法的优缺点,选择适宜的数值方法。
二、实验内容:
➢ 会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序,进一步了解
各种方法的优缺点。
三、程序与实例
➢ 列主元高斯消去法
算法:将方程用增广矩阵[A ∣b ]=(ij a )1n (n )+⨯表示
1) 消元过程
对k=1,2,…,n-1
①选主元,找{}n ,,1k ,k i k +∈使得
k ,i k a =ik a n
i k max ≤≤ ②如果0a k ,i k =,则矩阵A 奇异,程序完毕;否则执行③。
③如果k i k ≠,则交换第k 行与第k i 行对应元素位置,
j i k j k a a ↔ j=k,┅,n+1
④消元,对i=k+1, ┅,n 计算
对j=l+1, ┅,n+1计算
2) 回代过程
①假设0=nn a ,则矩阵A 奇异,程序完毕;否则执行②。
②nn n n n a a x /1,+=;对i=n-1, ┅,2,1,计算
程序与实例
程序设计如下:
#include <iostream>
#include <cmath>
using namespace std;
void disp(double** p,int row,int col){
for(int i=0;i<row;i++){
Jacobi 迭代法与Gauss-Seidel迭代法算法比较
Jacobi 迭代法与Gauss-Seidel迭代
法算法比较
目录
1 引言 (1)
1.1Jacobi迭代法 (2)
1.2Gauss-Seidel迭代法 (2)
1.3逐次超松弛(SOR)迭代法 (3)
2算法分析 (3)
3 结论 (5)
4 附录程序 (5)
参考文献 (8)
Jacobi 迭代法与Gauss-Seidel 迭代法比较
1 引言
解线性方程组的方法分为直接法和迭代法,直接法是在没有舍入误差的假设下,能在预定的运算次数内求得精确解,而迭代法是构造一定的递推格式,产生逼近精确值的序列。这两种方法各有优缺点,直接法普遍适用,但要求计算机有较大的存储量,迭代法要求的存储量较小,但必须在收敛性得以保证的情况下才能使用。对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,所以比较受工程人员青睐。
迭代法求解方程组就是构造一个无限的向量序列,使它的极限是方程组的解向量。即使计算机过程是精确的,迭代法也不能通过有限次算术运算求得方程组的精确解,而只能逐步逼近它。因此迭代法存在收敛性与精度控制的问题。
迭代法是常用于求解大型稀疏线性方程组(系数矩阵阶数较高且0元素较多),特别是某些偏微分方程离散化后得到的大型稀疏方程组的重要方法。设n 元线性微分方程组
b Ax = (1)
的系数矩阵A 非奇异,右端向量0≠b ,因而方程组有唯一的非零解向量。而对于这种线性方程组的近似解,前辈们发展研究了许多种有效的方法,有Jacobi 迭代法、Gauss —Seidel 迭代法,逐次超松弛迭代法(SOR 法),这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A 分解成两个矩阵N 和P 的差,即P N A -=;其中N 为可逆矩阵,线性方程组(1)化为:
数值计算实验报告----LU分解、追赶法、迭代法(高斯-赛德尔Gauss_Seidel、雅。。。
数值计算实验报告----LU分解、追赶法、迭代法(⾼斯-赛德尔
Gauss_Seidel、雅。。。
数值实验报告
----------------------个⼈作业,如果有后辈的作业习题⼀致,可以参考学习,⼀起交流,请勿直接copy
⼀、实验⽬的
1. 了解并分析LU分解法的优点;
2. 追赶法的应⽤与其与LU分解法的对⽐;
3. 认识迭代法收敛的含义以及迭代法初值和⽅程组系数矩阵性质对收敛速度的影响。
⼆、实验题⽬
三、实验原理
l LU分解:
·如果对A(0)x = b(0)施⾏第⼀次消元后化为A(1)x = b(1),则存在L1,使得
L1A(0)=A(1),L1b(0)= b(1)
⼀般地,进⾏k次消元化后为A(k)x = b(k), 则有
L k A(k-1)=A(k),L k b(k-1)= b(k)
重复这⼀过程,最后得到
L n-1…L2L1A(0) = A(n-1)
L n-1…L2L1b(0) = b(n-1)
将上三⾓形矩阵A(n-1)记为U,则 A=LU ,其中
为下三⾓矩阵。利⽤⾼斯消元法实质上产⽣了⼀个将A分解为两个三⾓形矩阵相乘的因式分解,称为A的三⾓形分解或LU分解。
·矩阵分解不⼀定采⽤⾼斯消元法,以下为直接计算的计算公式:
把增⼴矩阵A 采⽤LU 分解格式,即可得到与原⽅程同解的⽅
l 追赶法:
求解Ax = b 等价于解两个⼆对⾓线⽅程组
Ly = b
Ux =y
⾃上⽽下解⽅程组Ly = b 形象地被称为“追”。
y1 = b1/l11
y i =b i-l ii-1y i-1/l ii, i = 2, 3, … ,n
线性方程组的解法
线性方程组的解法
线性方程组是高中数学中非常基础的一部分,但是线性方程组的求解方法却有很多种。在这篇文章中,我们将系统地介绍几种线性方程组的常用求解方法。
一、高斯消元法
高斯消元法是最基本的线性方程组求解方法之一,其基本思想是通过不断消元,将一组线性方程转化成简单的形式,从而求解出未知数的值。这种方法的主要步骤是:
1. 构造增广矩阵;
2. 选出第一个主元素,采用行变换使其成为1;
3. 将第一个主元素以下的所有元素消为0;
4. 选出下一个主元素,执行第二步和第三步,直到所有主元素都被选完或没有解。
这种方法的时间复杂度为O(n^3),但是它是一种通用的求解方法,能够解决任意规模的线性方程组。
二、列主元高斯消元法
列主元高斯消元法在高斯消元法的基础上进行了改进,它能够更准确地选出主元素,从而加速求解过程。其主要步骤是:
1. 构造增广矩阵;
2. 在每一列中选出绝对值最大的元素作为主元素;
3. 采用行变换使得主元素所在行的其他元素都消为0;
4. 重复2和3步,直到所有未知数的值都解出或者出现无解的情况。
列主元高斯消元法比普通的高斯消元法要更快一些,其时间复杂度
为O(n^3)。
三、LU分解法
LU分解法将线性方程组的系数矩阵分解成一个下三角矩阵和一个
上三角矩阵的乘积,从而将原问题转化成两个较为简单的子问题。其
主要步骤是:
1. 将系数矩阵分解为下三角矩阵L和上三角矩阵U;
2. 将线性方程组Ax=b转化为LUx=b;
3. 解Ly=b和Ux=y。
LU分解法虽然时间复杂度为O(n^3),但是它可以节省计算量,特
解线性方程组的列主元素高斯消去法和LU分解法
解线性方程组的列主元素高斯消去法和LU分解法
数值试验报告分析
一、实验名称:解线性方程组的列主元素高斯消去法和LU分解法二、实
验目的及要求:
通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法
的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。
三、算法描述:
本次试验采用的是高斯列主元消去法和LU分解法求解线性方程组的解。
其中,高斯消去法的基本思想是避免接近于零的数作分母;能进行到
底的条件:当A可逆时,列主元Gau(高斯)消去法一定能进行到底。
优点:具有很好的数值稳定性;具有与顺序Gau消去法相同的计算量。列主元Gau(高斯)消去法的精度显著高于顺序Gau(高斯)消去法。注意:
省去换列的步骤,每次仅选一列中最大的元。
矩阵的三角分解法是A=LU,L是下三角阵,U是上三角阵,Doolittle分
解:L是单位下三
角阵,U是上三角阵;Crout分解:L是下三角阵,U是单位上三角阵。矩阵三角分解的条件是矩阵A有唯一的Doolittle分解的充要条件是A的
前n-1顺序主子式非零;矩阵A有唯一的Crout分解的充要条件是A的前
n-1顺序主子式非零。三角分解的实现是通过
(1)Doolittle分解的实现;(2)Doolittle分解的缺点:条件苛刻,
且不具有数值稳定性。(3)用Doolittle分解求解方程组:A某=bLU某
=bLY=bA=LUU某=Y;
四、实验内容:
解下列两个线性方程组
3.016.031.99某11
4.161.23某21(1)1.270.9874.819.34某1371032.099999(2)51211某1862某2
lu分解法、列主元高斯法、jacobi迭代法、gaussseidel法的原理及matlab程序
一、实验目的及题目
1.1 实验目的:
(1)学会用高斯列主元消去法,LU 分解法,Jacobi 迭代法和Gauss-Seidel 迭代法解线性方程组。
(2)学会用Matlab 编写各种方法求解线性方程组的程序。 1.2 实验题目:
1. 用列主元消去法解方程组:
1241234
123412343421233234
x x x x x x x x x x x x x x x ++=⎧⎪+-+=⎪⎨--+=-⎪⎪-++-=⎩
2. 用LU 分解法解方程组,Ax b =其中
48240122424121206202
66216A --⎛⎫
⎪
-
⎪= ⎪ ⎪
-⎝⎭
,4422b ⎛⎫ ⎪ ⎪= ⎪- ⎪-⎝⎭ 3. 分别用Jacobi 迭代法和Gauss-Seidel 迭代法求解方程组:
123234
1231234102118311210631125
x x x x x x x x x x x x x -+=-⎧⎪-+=-⎪⎨-+=⎪⎪-+-+=⎩
二、实验原理、程序框图、程序代码等
2.1实验原理
2.1.1高斯列主元消去法的原理
Gauss 消去法的基本思想是一次用前面的方程消去后面的未知数,从而将方程组化为等价形式:
1111221122222n n n n nn n n
b x b x b x g b x b x g b x g +++=⎧⎪++=⎪⎨⎪⎪=
⎩
这个过程就是消元,然后再回代就好了。具体过程如下: 对于1,2,
,1k n =-,若()
0,k kk a ≠依次计算
()()
(1)()()(1)()()/,,1,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的及题目
1.1 实验目的:
(1)学会用高斯列主元消去法,LU 分解法,Jacobi 迭代法和Gauss-Seidel 迭代法解线性方程组。
(2)学会用Matlab 编写各种方法求解线性方程组的程序。 1.2 实验题目:
1. 用列主元消去法解方程组:
1241234
123412343421233234x x x x x x x x x x x x x x x ++=⎧⎪+-+=⎪⎨--+=-⎪⎪-++-=⎩
2. 用LU 分解法解方程组,Ax b =其中
4824012242412120620266216A --⎛⎫ ⎪- ⎪= ⎪ ⎪-⎝⎭,4422b ⎛⎫ ⎪ ⎪= ⎪- ⎪-⎝⎭
3. 分别用Jacobi 迭代法和Gauss-Seidel 迭代法求解方程组:
123234
1231234102118311210631125x x x x x x x x x x x x x -+=-⎧⎪-+=-⎪⎨-+=⎪⎪-+-+
=⎩
二、实验原理、程序框图、程序代码等
2.1实验原理
2.1.1高斯列主元消去法的原理
Gauss 消去法的基本思想是一次用前面的方程消去后面的未知数,从而将方程组化为等价形式:
1111221122222n n n n nn n n
b x b x b x g b x b x g b x g +++=⎧⎪++=⎪⎨⎪⎪=
⎩
这个过程就是消元,然后再回代就好了。具体过程如下: 对于1,2,
,1k n =-,若()
0,k kk
a ≠依次计算
()()
(1)()()(1)()()/,,1,
,k k ik ik kk k k k ij ij ik kj
k k k i i ik k m a a a a m a b b m b i j k n
++==-=-=+
然后将其回代得到:
()()
()()()1/()/,1,2,,1
n n n n nn n k k k k k kj j kk j k x b a x b a x a k n n =+⎧=⎪⎨=-=--⎪
⎩
∑
以上是高斯消去。
但是高斯消去法在消元的过程中有可能会出现()
0k kk
a =的情况,这时消元就无法进行了,即使主元数()
0,k kk
a ≠但是很小时,其做除数,也会导致其他元素数量级的严重增长和舍入误差的扩散。因此,为了减少误差,每次消元选取系数矩阵的某列中绝对值最大的元素作为主元素。然后换行使之变到主元位置上,再进行销元计算。即高斯列主元消去法。 2.1.2直接三角分解法(LU 分解)的原理
先将矩阵A 直接分解为A LU =则求解方程组的问题就等价于求解两个三角形方程组。 直接利用矩阵乘法,得到矩阵的三角分解计算公式为:
1111111
11
1,1,2,,/,2,,,,,1,,,2,3,
()/,1,2,
,i i i i k kj kj km mj m k ik ik im mk kk
m u a i n l a u i n
u a l u j k k n k n
l a l u u i k k n k n
-=-===⎧⎨
==⎩⎧
=-=+⎪⎪=⎨⎪=-=++≠⎪⎩
∑∑且
由上面的式子得到矩阵A 的LU 分解后,求解Ux=y 的计算公式为
11
111,2,3,/()/,1,2,
,1
i i i ij j j n n nn n i i ij j ii j i y b y b l y i n
x y u x y u x u i n n -==+=⎧⎪⎨
=-=⎪⎩
=⎧⎪⎨
=-=--⎪⎩
∑∑
以上为LU 分解法。
2.1.3Jacobi 迭代法和Gauss-Seidel 迭代法的原理 (1)Jcaobi 迭代
设线性方程组
b Ax = (1)
的系数矩阵A 可逆且主对角元素nn a ,...,a ,a 2211均不为零,令 ()nn a ,...,a ,a diag D 2211=
并将A 分解成
()D D A A +-= (2) 从而(1)可写成
()b x A D Dx +-= 令
11f x B x +=
其中b D f ,A D I B 1
111
--=-=. (3) 以1B 为迭代矩阵的迭代法(公式)
()()111f x B x k k +=+ (4)
称为雅可比(Jacobi)迭代法,其分量形式为
⎩
⎨⎧
[]
,...,,k ,
n ,...,i x a b
a x
n
i
j j )
k (j j i i
ii
)k (i
21021111==∑-=≠=+ (5)
其中
()()()()
()T
n x ,...x ,x x 002010=为初始向量. (2)Gauss-Seidel 迭代
由雅可比迭代公式可知,在迭代的每一步计算过程中是用()
k x 的全部分量来计算()
1+k x
的
所有分量,显然在计算第i 个分量()
1+k i x 时,已经计算出的最新分量()
()
11
11
+-+k i k x ,...,x 没有被利
用。
把矩阵A 分解成
U L D A --= (6)
其中()nn
a ,...,a ,a diag D 2211=,U ,L --分别为A 的主对角元除外的下三角和上三角部分,