Gauss消去法、 矩阵分解

合集下载

Gauss列主元消去法、QR(MATLAB)

Gauss列主元消去法、QR(MATLAB)

Gauss列主元消去法、QR(MATLAB)Gauss列主元消去法是一种线性方程组的求解方法,也称Gauss消去法。

其基本思想是将方程组转化为上三角矩阵,然后通过反向代入求解。

该方法的优点在于计算精度高,求解速度快,但缺点是需要大量的计算,尤其是在矩阵阶数较高时。

具体来讲,Gauss列主元消去法的步骤如下:步骤一:将系数矩阵A进行LU分解,其中L是下三角矩阵、U是上三角矩阵。

设$A=LU$,则原方程组可以写成$LUx=b$。

步骤二:通过初等矩阵左乘系数矩阵A,将每一列的主元变为该列所有元素中绝对值最大的那个元素。

这个过程称为选主元,可以避免计算中的数值不稳定问题。

步骤三:将选主元后的系数矩阵A进行LU分解,得到$L^{'}$、$U^{'}$。

步骤五:通过反向代入求解$U^{'}x=y$,得到$x$的解。

Gauss列主元消去法的实现通常通过矩阵的变换来实现。

对于$n$阶矩阵$A=[a_{ij}]$,通过一系列的行变换,可以将其变为上三角矩阵。

其中的变换可以表示为:$$ R_{i} \leftrightarrow R_{j} $$其中,$R_{i}$和$R_{j}$分别表示矩阵$A$中的第$i$行和第$j$行,$k$是一个非零常数。

这些变换被称为初等行变换。

在MATLAB中,可以使用已经实现好的{\color{blue}\texttt{gauss}}函数来求解线性方程组。

该函数实现的算法是Gauss列主元消去法。

其调用格式为:x = gauss(A,b)其中,$A$是系数矩阵,$b$是结果向量。

函数返回结果向量$x$。

如果$A$或$b$不合法,则函数会返回一个空向量。

除了Gauss列主元消去法,还有一种常用的求解线性方程组的方法是QR分解法。

步骤二:通过正交矩阵左乘系数矩阵$A$,使其变为一个上三角矩阵。

这个过程称为正交相似变换。

步骤三:将$b$进行正交相似变换,得到$Q^{T}b$。

高斯消元法与矩阵运算

高斯消元法与矩阵运算

高斯消元法与矩阵运算在数学领域中,矩阵是一种重要的数学工具,广泛应用于各个学科的研究中。

而高斯消元法是一种解线性方程组的常用方法,通过矩阵运算将线性方程组转化为简化的行阶梯形矩阵,从而求得方程组的解。

本文将探讨高斯消元法与矩阵运算的相关概念、原理和应用。

一、矩阵的基本概念与运算1.1 矩阵的定义与表示矩阵是由m行n列的数按一定顺序排列成的矩形数表,用大写字母表示。

例如,一个3行2列的矩阵可以表示为:A = [a11 a12a21 a22a31 a32]其中,a11、a12、a21、a22、a31、a32为矩阵A的元素。

1.2 矩阵的运算矩阵的运算包括加法、减法和乘法。

矩阵的加法和减法要求两个矩阵具有相同的行数和列数,运算规则为对应元素相加或相减。

例如,对于两个3行2列的矩阵A和B,其加法和减法运算如下:A +B = [a11+b11 a12+b12a21+b21 a22+b22a31+b31 a32+b32]A -B = [a11-b11 a12-b12a21-b21 a22-b22a31-b31 a32-b32]矩阵的乘法要求第一个矩阵的列数等于第二个矩阵的行数,运算规则为按行乘以列并求和。

例如,对于一个3行2列的矩阵A和一个2行4列的矩阵B,其乘法运算如下:A *B = [a11*b11+a12*b21 a11*b12+a12*b22 a11*b13+a12*b23a11*b14+a12*b24a21*b11+a22*b21 a21*b12+a22*b22 a21*b13+a22*b23 a21*b14+a22*b24 a31*b11+a32*b21 a31*b12+a32*b22 a31*b13+a32*b23 a31*b14+a32*b24]二、高斯消元法的基本原理高斯消元法是一种解线性方程组的常用方法,其基本原理是通过矩阵运算将线性方程组转化为简化的行阶梯形矩阵,从而求得方程组的解。

2.1 线性方程组的表示线性方程组可以表示为矩阵形式,即AX = B,其中A为系数矩阵,X为未知数矩阵,B为常数矩阵。

浅谈矩阵的LU分解和QR分解及其应用

浅谈矩阵的LU分解和QR分解及其应用

浅谈矩阵的LU分解和QR分解及其应用基于理论研究和计算的需要,往往有必要把矩阵分解为具有某种特性的矩阵之积,这就是我们所说的矩阵分解.本文将介绍两种常用的矩阵分解方法,以及其在解线性方程组及求矩阵特征值中的应用.1.矩阵的LU 分解及其在解线性方程组中的应用1.1高斯消元法通过学习,我们了解到利用Gauss消去法及其一些变形是解决低阶稠密矩阵方程组的有效方法. 并且近些年来利用此类方法求具有较大型稀疏矩阵也取得了较大进展. 下面我们就通过介绍Gauss 消去法,从而引出矩阵的LU 分解及讨论其对解线性方程组的优越性.首先通过一个例子引入:(1.1)例1, 解方程组(1.2)(1.3)解. Step1 (1.1) ( 2) (1.3) 消去(1.3)中未知数, 得到4x2 x3 11 (1.4)Shep2 . (1.2) (1.4) 消去(1.4) 中的未知数x2x1 x2 x3 6 1有4x2x3 5 显然方程组的解为x* 2 上述过程相当于2x3 6 31 1 1 6 1 1 1 6 1 1 1 60 4 1 5 0 4 1 5 0 4 1 52 2 1 10 4 1 100 2 62)+ (r i 表示矩阵的i行)由此看出,消去法的基本思想是: 用逐次消去未知数的方法把原方程化为与 其等价的三角方程组 .下面介绍解一般 n 阶线性方程组的 Gauss 消去法 .a11a1nx 1b 1设AXb则n 阶线性方程组a n1annx nb nAX b (1.5) 并且 A 为非奇异矩阵 .通过归纳法可以将 AX b 化为与其等价的三角形方程,事实上: 及方程(1.5)为A 1 X b 1 ,其中A1Ab 1b(1) 设 a 1(11)0,首先对行计算乘数 mi1a i11m 111. 用 m i1乘 (1.5)的第一个方程加到第 i i 2,3, ,n 个方程上 .消去方程 (1.5)的第 2个方程直到第 n 个方程的未知数 x . a 111 得到与 (1.5) 等价的方程组A 2 b 2(1.6)其中 a ij 2a ij 1m i1a ij 1b i 2b i 1m i1b 11(2) 一般第 k 1 k n 1 次消去,设第 k 1步计算完成 . 即等价于A kX b k(1.7)a 111 a 112 a222且消去未知数 x 1,x 2, ,x k 1.其中 A kb 11简记作 b n 2由设 D i 0(i 1, ,k)及式 (1.8)有 a kk k设 a k (kk) 0 计 算 m ik a ik k/a k kk (ik= 1, n,ikn用 m ik aa ik k (i k 1, ,n) 消去 第k 1 个 方 程直 到第 n 个 方 程的 未知 数 x k . 得 到与 (1. 7等)价的 方 程组 A k 1X b k 1故由数学归纳法知,最后可以把原方程化成一个与原方程等价的三 角方程组 . 但是以上分析明显存在一个问题,即使 A 非奇异也无法保证 a ii i0, 需要把非奇异的条件加强 .D i 0. 即a11 D1 a11 0,Dkak1aikakk证明 利用数学归纳法证明引理的充分性 . 显然,当 k 1 时引理的充分性是成 立的,现在假设引理对 k 1是成立的,求证引理对 k 亦a ii i0 i 1,2 k 1 于是可用 Gauss 消去法将中,即a 111 a 121a 222A1 A ka kk a 11na 22nka knD 2a122 a 111 a 222a 222Dka n k ka n knnnD 3 a 111 a 222 a 333a2ka 111 a 222 a kk k(1.8)a k kka 222显然,由假设 a ii10 i 1,2 k ,利用(1.8) 亦可以推出D i 0(i 1, ,k) 从而由此前的分析易得;定理 1 如果n阶矩阵A的所有顺序主子式均不为零,则可通过Gauss消去法(不进行交换两行的初等变换) ,将方程组(1.5) 约化成上三角方程组,即a111a112a11n x1 b11a222 a22n x2 b22(1.9)a n n n x nb n n1.2矩阵LU 分解从而由以上讨论即能引出矩阵的LU 分解,通过高等代数我们得知对 A 施行行初等变换相当于用初等矩阵左乘A,即L1A1 A2 L1b 1 b2其中1m21 1L1m n1 0 1一般第k 步消元,,相当于L k A k A k 1 Lkb k b k 1重复这一过程,最后得到L n 1 L2L1A1A nn 1 2 11 n(1.10)L n 1 L2L1b 1 b n1m k 1,k 1m nk将上三角形矩阵A n记作U,由式(1.9)得到A=L11L21L n11U LU ,其中其中1m21 1m n1 m n2 1 由以上分析得;定理 2 (LU 分解) 设 A 为n阶矩阵,如果 A 的顺序主子式D i 0(i 1,2,, n 1). 则 A 可分解为一个单位下三角矩阵 L 和一个上三角矩阵 U的乘积,且这种分解是唯一的 .证明 由先前的分析得出存在性是显然的,即 A LU . 下证唯一性 ,设A LU CD 其中 L , C 为单位下三角矩阵, U , D 为上三角矩阵 . 由于D 1 L C UD 上式右端为上三角矩阵,左端为单位下三角矩阵,从而上式两端都 必须等于单位矩阵,故 U D , L C . 证毕.11 例 2 对于例子 1 系数矩阵矩阵 A 0 4 22 结合例 1,故1 0 0 1 1 1A LU0 1 0 0 4 121 10 2对于一般的非奇异矩阵, 我们可以利用初等排列矩阵 I ki (由交换单位矩阵 I的第 k 行与第 i k 行得到),即L 1I 1i 1A 1 A 2 ,L 1I 1i 1b 1 b21 1 (1.11) L k I ki kA k A k 1 ,L k I ki kb kbk 1(1.11)利用(1.11)得L n 1I n 1,i n 1 L 1I 1i 1A AU .简记做. 其中面就 n 情况来考察一下矩阵A AL4I 4i 4L 3I 3i 3L 2I 2i 2L 1I 1i 1A L 4 I 4i 4L 3I 4i 4 (I 4i 4I3i 3I 2i 2L 1I 4i 4I 3i 3I 2i 2) (I 4i 4 I 3i 3I 2i 2I 1i 1)A11 由 Gauss 消去法,得(I4i 4 I 3i 3L 2I 4i 4I 3i 3 )从而记从而容易的为单位下三角矩阵, 总结以上讨论可得如下定理.定理3 如果A非奇异矩阵,则存在排列矩阵P使PA LU 其中L为单位下三角矩阵,U 为上三角矩阵.1.3矩阵LU 分解的应用以上对非奇异矩阵 A 的LU 分解进行了全面的讨论,一下我们就简单介绍一下应用.对于矩阵A一旦实现了LU 分解,则解线性方程的问题,便可以等价于:(1) Ly b 求y (2) Ux=y , 求x (1.12)即,设 A 为非奇异矩阵,且有分解式 A LU ,其中三角矩阵。

Guass列选主元消去法和三角分解法

Guass列选主元消去法和三角分解法

Guass列选主元消去法和三⾓分解法 最近数值计算学了Guass列主消元法和三⾓分解法解线性⽅程组,具体原理如下:1、Guass列选主元消去法对于AX =B1)、消元过程:将(A|B)进⾏变换为,其中是上三⾓矩阵。

即:k从1到n-1a、列选主元选取第k列中绝对值最⼤元素作为主元。

b、换⾏c、归⼀化d、消元2)、回代过程:由解出。

2、三⾓分解法(Doolittle分解)将A分解为如下形式由矩阵乘法原理a、计算U的第⼀⾏,再计算L的第⼀列b、设已求出U的1⾄r-1⾏,L的1⾄r-1列。

先计算U的第r⾏,再计算L的第r列。

a)计算U的r⾏b)计算L的r列C#代码: 代码说明:Guass列主消元法部分将计算出来的根仍然储存在增⼴矩阵的最后⼀列,⽽Doolittle分解,将分解后的结果也储存⾄原来的数组中,这样可以节约空间。

using System;using System.Windows.Forms;namespace Test{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Cannel_Button_Click(object sender, EventArgs e){this.textBox1.Clear();this.textBox2.Clear();this.textBox3.Clear();boBox1.SelectedIndex = -1;}public double[,] GetNum(string str, int n){string[] strnum = str.Split(' ');double[,] a = new double[n, n + 1];int k = 0;for (int i = 0; i < n; i++){for (int j = 0; j < strnum.Length / n; j++){a[i, j] = double.Parse((strnum[k]).ToString());k++;}}return a;}public void Gauss(double[,] a, int n){int i, j;SelectColE(a, n);for (i = n - 1; i >= 0; i--){for (j = i + 1; j < n; j++)a[i, n] -= a[i, j] * a[j, n];a[i, n] /= a[i, i];}}//选择列主元并进⾏消元public void SelectColE(double[,] a, int n){int i, j, k, maxRowE;double temp; //⽤于记录消元时的因数for (j = 0; j < n; j++){maxRowE = j;for (i = j; i < n; i++)if (System.Math.Abs(a[i, j]) > System.Math.Abs(a[maxRowE, j]))maxRowE = i;if (maxRowE != j)swapRow(a, j, maxRowE, n); //与最⼤主元所在⾏交换//消元for (i = j + 1; i < n; i++){temp = a[i, j] / a[j, j];for (k = j; k < n + 1; k++)a[i, k] -= a[j, k] * temp;}}return;}public void swapRow(double[,] a, int m, int maxRowE, int n){int k;double temp;for (k = m; k < n + 1; k++){temp = a[m, k];a[m, k] = a[maxRowE, k];a[maxRowE, k] = temp;}}public void Doolittle(double[,] a, int n){for (int i = 0; i < n; i++){if (i == 0){for (int j = i + 1; j < n; j++)a[j, 0] = a[j, 0] / a[0, 0];}else{double temp = 0, s = 0;for (int j = i; j < n; j++){for (int k = 0; k < i; k++){temp = temp + a[i, k] * a[k, j];}a[i, j] = a[i, j] - temp;}for (int j = i + 1; j < n; j++){for (int k = 0; k < i; k++){s = s + a[j, k] * a[k, i];}a[j, i] = (a[j, i] - s) / a[i, i];}}}}private void Exit_Button_Click(object sender, EventArgs e){this.Close();}private void Confirm_Button_Click(object sender, EventArgs e){if (this.textBox2.Text.Trim().ToString().Length == 0){this.textBox2.Text = this.textBox1.Text.Trim();}else{this.textBox2.Text = this.textBox2.Text + "\r\n" + this.textBox1.Text.Trim();}this.textBox1.Clear();}private void Calculate_Button_Click(object sender, EventArgs e){string str = this.textBox2.Text.Trim().ToString();string myString = str.Replace("\n", " ").Replace("\r", string.Empty);double[,] a = new double[this.textBox2.Lines.GetUpperBound(0) + 1, this.textBox2.Lines.GetUpperBound(0) + 2];a = GetNum(myString, this.textBox2.Lines.GetUpperBound(0) + 1);if (boBox1.Text == "Guass列主消元法"){Gauss(a, this.textBox2.Lines.GetUpperBound(0) + 1);for (int i = 0; i < this.textBox2.Lines.GetUpperBound(0) + 1; i++){this.textBox3.Text = this.textBox3.Text + "\r\nX" + (i + 1) + "=" + a[i, this.textBox2.Lines.GetUpperBound(0) + 1]; }}else if (boBox1.Text == "Doolittle三⾓分解法"){this.textBox3.Enabled = true;Doolittle(a, this.textBox2.Lines.GetUpperBound(0) + 1);bel3.Text = "分解后的结果:";this.textBox3.Clear();this.textBox3.Text += "L矩阵:\r\n";for (int i = 0; i < this.textBox2.Lines.GetUpperBound(0) + 1; i++) {for (int j = 0; j < this.textBox2.Lines.GetUpperBound(0) + 1; j++) {if (j < i){this.textBox3.Text += a[i, j].ToString() + "\t";}else if (i == j){this.textBox3.Text += "1\t";}else{this.textBox3.Text += "0\t";}}this.textBox3.Text += "\r\n";}this.textBox3.Text += "\r\nU矩阵:\r\n";for (int i = 0; i < this.textBox2.Lines.GetUpperBound(0) + 1; i++) {for (int j = 0; j < this.textBox2.Lines.GetUpperBound(0) + 1; j++) {if (j >= i){this.textBox3.Text += a[i, j].ToString() + "\t";}else{this.textBox3.Text += "0\t";}}this.textBox3.Text += "\r\n";}}}private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter){if (this.textBox1.Text.Trim().ToString().Length == 0){Calculate_Button_Click(sender, e);}else{Confirm_Button_Click(sender, e);}}}private void button1_Click(object sender, EventArgs e){this.textBox2.Enabled = true;}}} 运⾏截图: ⾄此完毕。

gauss消元法和doolittle乘法运算次数

gauss消元法和doolittle乘法运算次数

《深入探讨高斯消元法和Doolittle分解的乘法运算次数》在数学和计算机科学领域,高斯消元法和Doolittle分解是两种常见的线性代数运算方法。

它们被广泛用于解决线性方程组和矩阵求逆等问题。

本文将从深度和广度的角度对这两种方法进行全面评估,并进一步探讨它们的乘法运算次数的比较。

1. 高斯消元法简介高斯消元法是一种用于解决线性方程组的方法,通过矩阵变换将其转化为上三角矩阵,从而求解方程组。

其基本思想是通过一系列的行变换,将系数矩阵变换为上三角矩阵,再通过回代求解出未知数的值。

在实际应用中,高斯消元法通常需要进行大量的乘法和加法运算,其乘法运算次数随矩阵的大小而增加。

2. Doolittle分解简介Doolittle分解是将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积,这种分解方法可以简化矩阵的求逆和解线性方程组的计算。

与高斯消元法相比,Doolittle分解在某些情况下可以更加高效地解决线性方程组的问题,尤其是对于大型矩阵的计算。

其乘法运算次数与矩阵的大小和稀疏程度密切相关。

3. 乘法运算次数比较在实际应用中,我们常常需要比较高斯消元法和Doolittle分解的乘法运算次数,以确定哪种方法更适合特定的问题。

根据理论分析和实际测试,我们可以得出以下结论:- 对于小型矩阵,通常情况下高斯消元法的乘法运算次数略少于Doolittle分解。

- 对于大型矩阵,Doolittle分解的乘法运算次数通常比高斯消元法少很多,尤其是在矩阵稀疏的情况下。

- 对于需要多次求解的问题,Doolittle分解可以通过分解一次,多次使用的方式,进一步减少总体的乘法运算次数。

4. 个人观点和理解从个人观点来看,高斯消元法和Doolittle分解都是非常重要的线性代数运算方法,它们各有优劣。

在实际应用中,我们需要根据具体的问题特点来选择合适的方法。

对于小型矩阵或需一次性解决问题的情况,高斯消元法可能更加便捷;而对于大型矩阵或需要多次使用的情况,Doolittle分解可能更具优势。

第五章方程组-Gauss消去法1-2

第五章方程组-Gauss消去法1-2

Ax = b
------------(1) ------------(1)
a11 a21 A= M a n1
a12 L a1n x1 b1 a22 L a2 n x2 b = b2 x= M M M M M x b an 2 L ann n n
假定 a
( 1) 11
≠0
定义行乘数
a mi 1 = a
( 1) i1 ( 1) 11
i = 2 ,3 , L , n
第i行 − 第1行 × mi 1 , 则
a
(2) ij
=a
( 1) ij
−m a
( 1) i1 1 j
i , j = 2 ,3 , L , n
( bi( 2 ) = bi( 1 ) − mi 1b11 )
( A( 1 ) , b( 1 ) )
由于 det( A) ≠ 0
( 可知 aiii ) ≠ 0
i = 1,2 , L , n
因此 , 上三角形方程组 A( n ) x = b( n ) 有唯一解
因此可得线性方程组 Ax = b 的解:

( bnn ) xn = ( n ) ann
引言
稀疏线性 方程组 (80%)
按未知量 的个数: 的个数:
高阶线性 (如1000) 方程组
低阶线性 方程组
按系数矩Байду номын сангаас阵的形状
对称正定 方程组
三角形 方程组
三对角占 优方程组
1、Gauss消去法----直接法 Gauss消去法----直接法 消去法---- 1、消元与回代计算 对线性方程组

研究生数值分析第四版第二章2.1Gauss消去法

研究生数值分析第四版第二章2.1Gauss消去法

2.1 Gauss消去法
一 、三角形方程组的解法 1.下三角形方程组 2.上三角形方程组
a11 x1 a12 x2 a1n xn b1 a22 x2 a2n xn b2 ann xn bn
b1 a11 x1 a x a x b2 21 1 22 2 an1 x1 an 2 x2 ann xn bn
a11(1) (1) a21 (1) ( A b) a31 an1(1)
a11(1) 0 0 0
a12
(1)
a13
(1)


a1n1(1)来自a1n(1)b1
a22 a32 an 2
(1) ( 2) ( 2)
第二章 线性方程组的解法
2.1 Gauss消去法
2.2 直接三角分解法 2.3 矩阵的条件数与病态方程组 2.4 迭代法
第二章 线性方程组的解法
2.1 Gauss消去法
一 、三角形方程组的解法 二、Gauss消去法
2.1 Gauss消去法
一 、三角形方程组的解法 1.下三角形方程组 2.上三角形方程组
求解线性方程组的方法可分为两大类: 直接法和迭代法 直接法(精确法):指在没有舍入误差的情况下经过 有限次运算就能得到精确解。 迭代法(逐次逼近法):从一个初始向量出发,按照一 定的计算格式,构造一个向量的无穷序列,其极限才是 所求问题的精确解,只经过有限次运算得不到精确解。 Cramer(克莱姆)法则是直接方法中的一种,根据 此法则,方程组(2.1)的解为
前代法
x1 b1 / a11
xi (bi aij x j ) / aii ,

数值分析分解法

数值分析分解法

§3 LU 分解法——Gauss 消去法的变形知识预备:1矩阵的初等行变换、初等矩阵及其逆、乘积2矩阵的乘法3上三角矩阵的乘积、单位下三角矩阵的乘积 4单位下三角矩阵的逆、可逆的上三角矩阵的逆一、Gauss 消去法的矩阵解释Gauss 消去法实质上是将矩阵A 分解为两个三角矩阵相乘。

我们知道,矩阵的初等行变换实质就是左乘初等矩阵。

第一轮消元:相当于对A(1)左乘矩阵L 1,即)2()1(1A A L =其中)1(11)1(11)2()2(2)2(2)2(22)1(1)1(12)1(11)2(131211,,1001011a a l a a a a a a a Al l l L i i nn n n n n =⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡---=第二轮消元:对应于)3()2(2A A L =一般地1,,2,1)1()(-==+n k A A L k k k (1)其中nk k i a a l l l L k kkk ikik nk kk k ,,2,1,,10111)()(1 ++==⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--=+整个消元过程为U A A L L L L n n n 记)(1221=-- ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=nn nnu u u u u u 22211211………(2) 从而U L U L L L L U L L L L A n n n n ⋅===---------1112121111221)(其中L 是单位下三角矩阵,即,1,,1,,3,2,,1111)()(21323121⎪⎪⎭⎫⎝⎛-===⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=n j n i l l l l l l L j jj j ija a ij n n …(3) 【注】消元过程等价于A 分解成LU 的过程回代过程是解上三角方程组的过程。

二、矩阵的三角分解1、若将A 分解成L?U ,即A=L?U ,其中L 为单位下三角矩阵,U 为非奇异上三角矩阵,则称之为对A 的Doolittle 分解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全主元消去法
(k) max a 定义 k k i , j n i , j .
此时交换 A 和 b 的行及 A 的列,使主元位置的元素 的绝对值具有给出的最大值 k , 然后进行第 k 步消元过程
<< 第14页/共42页 >>
注意:因为有列的交换,因此未知量的
次序有改变,待求解过程结束后必须还原。
x1 x2 2
精确解为 x1 10.000 / 9.999, x2 9.998 / 9.999. 下面我们用三位浮点十进制数求解: (1) 按Gauss逐步消元法
103 0.100 x1 101 0.100 x2 101 0.100 105 0.100 x2 105 0.100
>>
<< 第7页/共42页
(k) ( k 1) aij aij
1) ai(,k k 1
其中
bi( k ) bi( k 1)
a
( k 1) k 1, k 1
( k 1) ak 1 j ,
i, j k ,
n,
1) ai(,kk 1 ( k 1) ak 1, k 1
lk 1,1 l , H k k 2,1 l 1 n,1
( 2) ( 2) ( 2) ( 2) a22 x2 a23 x3 a24 x4 b2 ,
a x3 a x4 b ,
( 3) 33 ( 3) 34 ( 3) 3 ( 3) ( 3) ( 3) a43 x3 a44 x4 b4 .
(3)
其中
( 3) ( 2) ( 2) aij aij li 2 a2 j ,
我们得到
1 1 A L L 1 2
(3)
其中Ak 形如(1)式 我们可以将 LK 写成
Mk Lk Hk 0 I n k
其中M k和H k 表示如下
<< 第22页/共42页 >>
1 l 21 Mk l k1
A11 A 21
1 lkk 1
,n1 )
定义

a1 k 为 A 的 k 阶顺序主子矩阵 akk
其中 k 1, 2,
,n
<< 第21页/共42页 >>
定理5.10 当且仅当 A 的所有顺序主子阵均非奇异时, A
有唯一的 LU 分解。
证明 根据
Ak Lk 1
L1 A
1 L k 1 Ak Lk Ak
得近似解 x 10 0.100,
'' 2 1
x 10 0.100
'' 1 1
相当近似 x1
下面我们讨论选主元素的方法。
<< 第12页/共42页 >>
1)
列主元消去法 假设Gauss消去法的消元过程进行到 第 k (1 k n 1) 步,设
ak max a
kin (k) i ,k
多使用列主元消去法。
<< 第15页/共42页 >>
2.3
矩阵的三角分解与Gauss消去法的变形 Gauss消去法的实质是将矩阵 A 分解为
A LU
()
其中 L --单位下三角矩阵, U --上三角矩阵。 事实上,线性方程组
Ax b
经过 k 步消元过程后,有等价方程组
Ak x bk ,
, n 1,
记 lk (0,
, ln,k )T , k 1, 2,
则 Lk I lk e
Ak Lk 1
L1 A , bk Lk 1
<< 第18页/共42页 >>
L1b ( k 2,
, n)
用矩阵 L1 ,
, Ln1 依次左乘原给方程组 Ax b bn Ln1 Ln 2
(4)
其中
(4) a44
(3) a (3) (3) a44 43 a 34 , (3) a33
(4) b4
(3) a (3) (3) b4 43 b 3 . (3) a33
(4) 若a44 0, 从(4)的最后一个方程组得到 (4) (4) x4 b4 / a44 ,
若 jk 并令 j为达到最大值 ak 的最小行标 j k ,
则交换 A 和 b 中的第 j 行和第 k 行, 再进行消元过程的第 k步。
<< 第13页/共42页 >>
(k) (k) l a / a 这时每个乘子 ik i ,k k ,k
都满足
li ,k 1,
2)
i k,
, n,
可以防止有效数字大量丢失而产生误差。
bi( 2) bi li 1 b1 ,
显然方程组(2)和原方程组(1)等价
<< 第2页/共42页 >>
2) ( 2) / a22 以(2)的第 i 个方程 ( i 3,4) 减去 li 2 ai(2 乘以第二个方程,得到
a11 x1 a12 x2 a13 x3 a14 x4 b1 ,
1 ln , n 1
(2)
<< 第20页/共42页 >>
Gauss逐步消去法等价于下述过程:
1. 将矩阵 A 作 LU 分解;
Ux L b 2. 求解三角形方程组 (回代过程)。
(注意上面的全部讨论中要求 a
a11 ak 1
(k) k ,k
1
0, k 1, 2,
i , j 3,4, i 3,4.
b
( 3) i
b
( 2) i
li 2 b ,
( 2) 2
依此方法继续下去,得到
<< 第3页/共42页 >>
a11 x 1 a12 x2 a13 x3 a14 x4 b1 ,
( 2) ( 2) ( 2) ( 2) a22 x2 a23 x3 a24 x4 b2 , ( 3) ( 3) ( 3) a33 x3 a34 x4 b3 , (4) (4) a44 x4 b4 .
(1)
可以直接验证 Ak 1 Lk Ak
<< 第17页/共42页 >>
1 其中 Lk
1 lk 1, k ln , k
, 0, lk 1, k ,
T k
1
(k) ai , k , li , k ( k ) akk 1
<< 第4页/共42页
>>
再将
x4 代入(4)倒数第二个方程,可得:
( 3) ( 3) ( 3) x3 ( b3 a34 x4 ) / a33 ,
类似地,得到:
( 2) ( 2) ( 2) ( 2) x2 ( b2 a23 x3 a24 x4 ) / a22 ,

x1 ( b 1 a12 x2 a13 x3 a14 x4 ) / a11 ,
<< 第1页/共42页 >>
(1)
若 a11 0 ,则以第 i( i 2, 3,4) 个方程减去
li1 ai1 / a11 乘以第一个方程,这样方程组(1) a11 x1 a12 x2 a13 x3 a14 x4 b1 , ( 2) ( 2) ( 2) ( 2) a22 x2 a23 x3 a24 x4 b2 ,
得近似解
1 x2 10 0.100,
0, x1
完全失去近似意义。 x1
<< 第11页/共42页 >>
(2)变换方程的顺序然后消元
101 0.100 x1 101 0.100 x2 101 0.200 101 0.100 x2 101 0.100
a21 x1 a22 x2 an1 x1 an 2 x2
1. 消元过程 首先消去第一列除 a11 之外的所有元素,
<< 第6页/共42页 >>
( 2) 0, 设 a11 0, a22
( n1) , an 1, n1 0
总可由消元过程得到系数矩阵为上三角阵的线性代数 方程组,其第 k 步的结果为
A1 A, b1 b 其中:
而 Ak 和 bk的形式为:
<< 第16页/共42页 >>
(1)) a11 Ak
(k) akk
a
(k) nk
(1) (1) a1 b n 1 (k) (k) , bk bk akn (k) (k) ann bn
(1) (1) a11 x1 a12 x2 ( 2) a22 x2 (1) (1) a1 x b n n 1 , ( 2) ( 2) a2 x b n n 2 ,
(k) akk xk
(k) (k) akn xn bk ,
(k) ank xk
(k) (k) ann xn bn .
我们称将方程组(1)按以上步骤化为等价方程组
(4)的过程为解线性方程组的消元过程 从(4)中得出解的过程称为高斯消去法的回代过程
<< 第5页/共42页 >>
一般情形
对于一般的 n 阶线性代数方程组 Ax b
a11 x1 a12 x2

a1n xn b1 , a2 n xn b2 , ann xn bn
两边,得等价方程组 An x bn 其中 An Ln1 Ln2 乘积 Ln1
相关文档
最新文档