利用直接发求解线性方程组及其应用

合集下载

求解线性方程组的直接解法

求解线性方程组的直接解法

求解线性方程组的直接解法5.2LU分解① Gauss消去法实现了LU分解顺序消元结束时的上三角矩阵U和所用的乘数,严格下三角矩阵。

将下三角矩阵的对角元改成1,记为L,则有A=LU,这事实是一般的,我们不难从消去的第k个元素时的矩阵k行及k列元素的历史得到这一点.因为从消元的历史有u kj=a kj-m k1u1j- m k2u2j -…- m k,k-1u k-1,j, j=k,k+1,…,nm ik=(a ik-m i1u1k- m i2u2k -…-m i,k-1u k-1,k>/u kk i=k+1,k+2,…,n于是a kj=m k1u1j+m k2u2j+…+m k,k-1u k-1,j+u kj, j=k,k+1,…,na ik=m i1u1k+m i2u2k+…+m i,k-1u k-1,k+m ik u kk i=k+1,k+2,…,n从前面两个式子我们可以直接计算L和U(见下段>.将矩阵分解为单位下三角矩阵和上三角矩阵之积称为矩阵的LU分解.顺序消元实现了LU分解,同时还求出了g, Lg=b的解.②直接LU分解上段我们得到(l ij=m ij>u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j, j=k,k+1,…,nl ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk i=k+1,k+2,…,n2诸元素对应乘积,只不过算L的元素时还要除以同列对角元.这一规律很容易记住.可写成算法(L和U可存放于A>:for k=1:n-1for j=k:nu kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,jendfor i=k+1:nl ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kkendend这一算法也叫Gauss消去法的紧凑格式,可一次算得L,U的元素,不需逐步计算存储.考察上面的表格会发现还可安排其它计算次序,只要在这一次序下每个元素左边的L的元素与上方的U的元素已计算在先。

求解线性方程组的直接解法范文

求解线性方程组的直接解法范文

求解线性方程组的直接解法5.2 LU 分解① Gauss 消去法实现了LU 分解顺序消元结束时的上三角矩阵U 和所用的乘数,严格下三角矩阵。

将下三角矩阵的对角元改成1,记为L ,则有A =LU ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-613322121121542774322这事实是一般的,我们不难从消去的第k 个元素时的矩阵k 行及k 列元素的历史得到这一点.因为从消元的历史有 u kj =a kj -m k 1u 1j - m k 2u 2j -…- m k ,k-1u k-1,j , j=k ,k+1,…,n m ik =(a ik -m i 1u 1k - m i 2u 2k -…-m i ,k-1u k-1,k )/u kk i=k+1,k+2,…,n 于是 a kj =m k 1u 1j +m k 2u 2j +…+m k ,k-1u k-1,j +u kj , j=k ,k+1,…,n a ik =m i 1u 1k +m i 2u 2k +…+m i ,k-1u k-1,k +m ik u kk i=k+1,k+2,…,n 从前面两个式子我们可以直接计算L 和U (见下段).将矩阵分解为单位下三角矩阵和上三角矩阵之积称为矩阵的LU 分解.顺序消元实现了LU 分解,同时还求出了g , Lg =b 的解.② 直接LU 分解上段我们得到(l ij =m ij ) u kj =a kj -l k 1u 1j -l k 2u 2j -…- l k ,k-1u k-1,j , j=k ,k+1,…,n l ik =(a ik -l i 1u 1k -l i 2u 2k -…-l i ,k-1u k-1,k )/u kk i=k +1,k+2,…,n2诸元素对应乘积,只不过算L 的元素时还要除以同列对角元.这一规律很容易记住.可写成算法(L 和U 可存放于A ): for k =1:n -1 for j=k :n u kj =a kj -l k 1u 1j -l k 2u 2j -…- l k ,k-1u k-1,jendfor i=k+1:nl ik =(a ik -l i 1u 1k -l i 2u 2k -…-l i ,k-1u k-1,k )/u kk end end这一算法也叫Gauss 消去法的紧凑格式,可一次算得L ,U 的元素,不需逐步计算存储.考察上面的表格会发现还可安排其它计算次序,只要在这一次序下每个元素左边的L 的元素与上方的U 的元素已计算在先。

线性方程组的直接解法及matlab的实现

线性方程组的直接解法及matlab的实现

本科毕业论文( 2010 届)题目线性方程组的直接解法及matlab的实现学院数学与信息工程学院专业数学与应用数学班级2006级数学1 班学号**********学生姓名胡婷婷指导教师王洁完成日期2010年5月摘要随着科技技术的发展及人类对自然界的不断探索模拟.在自然科学和工程问题中的很多问题的解决常常归结为线性代数问题!本文的主要内容是对线性方程组求解方法的探讨,主要介绍了四种求解线性方程组的方法,第一种是教科书上常见的消元法,我们称之为基本法.第二种方法是标准上三角形求解法,即将增广矩阵经过初等变换后化成标准上三角形,然后求解.它改进了一般教科书上的常见方法,与常见方法比较有如下优点:1)规范了自由未知量的选取;2)只用矩阵运算;3)减少了计算量.第三种方法是对特定的方程组(系数矩阵A为n阶对称正定矩阵,且A的顺序主子式均不为零.)的求解方法进行描述,并且为这种线性方程的求解提供了固定的公式化的方法.第四种方法是对现在实际问题中常常会遇到的系数矩阵为三对角矩阵的方程组的求解方法.同时给出这几种方法的数值解法(matlab程序),由于运用电脑软件求解,所以必须考虑计算方法的时间、空间上的效率以及算法的数值稳定性问题,所以针对不同类型的线性方程组有不同的解法.但是,基本的方法可以归结为两大类,即直接法和迭代法.关键词高斯消去法;三角分解法;乔莱斯基分解法;追赶法AbstractSystems of linear equations are associated with many problems in engineering and scinence ,as well as with applications of mathematics to the social sciences and the quantitative study of business and economic problems.The main content of this article is the method for solving linear equations, we introduce four methods for solving linear equations in this paper. The first is the elimination method which is commonly found in textbooks, and we call the Basic Law. The second method is Standard on the triangle Solution, that first change Augmented matrix into standards in primary triangle, and then solving. It improves the general textbook on common methods, compared with the common method has the following advantages:1) Specification of the free choice of unknowns; 2)Only matrix operations;3) Reduce the computation. The third method describes a way to solve a Specific equations(N coefficient matrix A is symmetric positive definite matrix, and A are not zero-order principal minor), And for this linear equation provides a fixed formulaic approach. The fourth method is to present practical problems often encountered in the coefficient matrix is tridiagonal matrix method for solving the equations. These methods are given numerical solution of (matlab program), As the use of computer software to solve, it is necessary to consider ways of computing time and space efficiency and numerical stability of algorithms, Therefore, different types of linear equations have a different solution. However, the basic method can be classified into two categories, namely direct methods and iterative methods.Key wordsGaussian elimination; Triangular decomposition; Cholesky decomposition method;Thomas algorithm目录1. 引言 (1)2.相关知识 (2)2.1 向量和矩阵 (2)2.2 特殊矩阵 (3)3.问题叙述 (3)4.问题分析 (4)4.1高斯分解法 (4)4.2三角分解法 (6)4.3乔莱斯基分解法 (6)4.4追赶法 (7)5. 举例说明与总结 (9)5.1举例说明 (9)5.1.1高斯分解的matlab程序方法 (9)5.1.2三角分解法的matlab程序方法 (10)5.1.3乔莱斯基分解法的matlab程序方法 (11)5.1.4追赶法的matlab程序方法 (13)5.2总结 (14)参考文献 (16)谢辞 (17)线性方程组的直接解法及matlab的实现Direct solution of linear equations and matlab implementation数学与信息工程学院数学与应用数学专业胡婷婷指导教师:王洁1.引言随着科技技术的发展及人类对自然界的不断探索模拟.在自然科学和工程问题中的很多问题的解决常常归结为线性代数问题!例如电学中的网络问题,用最小二乘法求实验数据拟合问题(如大地测量数据处理),解非线性方程组问题,用差分法或有限元法解常微分方程、偏微分方程边值问题等最终都归结于解线性代数方程组.从实际数据来看,这些方程组的系数矩阵大致分为两种,一种是低阶稠密矩阵(阶数不超过150).另一种是大型稀疏矩阵(矩阵阶数高且零元素较多).所以,现在我们需要对求线性方程组的方法进行探究,以便能够找到一些简便的方法来加以应用!本文主要就线性方程组的直接解法予以讨论.线性方程组是线性代数的主要内容,包括线性方程组有解性的判定、消元法解线性方程组和线性方程组解的结构. 它与矩阵、向量的内容密切相关,与矩阵、向量组相关的许多重要结论都是线性方程组有关结论的应用和推广. 如:一个向量是否可以由一个向量组线性表示、表示形式是否唯一往往与非齐次线性方程组是否有解、有唯一解还是无穷多解是等价的;一个向量组是否线性相关与齐次线性方程组是否有非零解是等价的等等.而且随着现代工业的发展,线性方程组的应用出现在各个领域,伴随着大量方程和多未知数的出现, 例如电学中的网络问题,用最小二乘法求实验数据拟合问题(如大地测量数据处理),解非线性方程组问题,用差分法或有限元法解常微分方程、偏微分方程边值问题等最终都归结于解线性代数方程组。

07线性代数方程组的解法

07线性代数方程组的解法

总计∑ n (k2k) n(n21)
k1
3
除法
n1
k

n(n1)
k1
2
回 代 总 计 算 量 n(n1) 2
总 乘 除 法 共 n 3 3 n 2 1 3 n (n 3 0 ,为 9 8 9 0 )
21
三、Gauss消去法的矩阵表示
每一步消去过程相当于左乘初等变换矩阵Lk
a x a x a x a b 得

(1)


解 (1)


程 (1)A(3组 )x=b(1() 3)
(1)
11 1
12 2
13 3
1n
1

a x a x (2) (2)
22 2
23 3
a x(3) 33 3
a b (2) (2)
2n
2
a b (3) (3)


11 1
12 2
1n n
1

b x 22 2
b2nxn g 2

称 消 元 过 程 。 逐 次 计 算 b出 nn x xn n, x gn 1 n,, x 1 称 回 代 过 1程 0 。
一、Gauss 消去法计算过程
a a b b 统一记 → 号 (1) : , →(1)
(2) ,
2
(3)
(2)
2
1

0
1
L m 0 2
32
1

0 mn2 0


m a a
(2) (2)

i2
i2
22
i 3,4, ,n

用矩阵的直接三角分解法解方程组

用矩阵的直接三角分解法解方程组

用矩阵的直接三角分解法解方程组矩阵的直接三角分解法(LU分解法)是解线性方程组的一种常用方法。

该方法通过将系数矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积,从而简化方程组的求解过程。

下面我们就来详细分步骤地介绍一下这种方法的求解过程。

第一步,将原线性方程组表示为矩阵形式,即将系数矩阵、未知量矩阵和常数矩阵分别表示为A、X和B。

我们的目标是找到一个下三角矩阵L和一个上三角矩阵U,使得方程组可以表示为LUx = B的形式。

第二步,通过高斯消元法将系数矩阵A化为上三角矩阵U。

具体地,我们将系数矩阵A变换为U的过程可以分解为一系列的初等矩阵变换,例如交换两行、乘以一个非零常数和将某一行加上另一行的若干倍等等。

这些初等矩阵变换可以表示为一个矩阵M的乘积,即A =M1M2...MnU。

从而,我们得到了上三角矩阵U。

第三步,同样通过一系列初等矩阵变换将U转化为下三角矩阵L。

这些初等矩阵变换可以表示为一个矩阵N的乘积,即U = NL1L2...Lm。

从而,我们得到了下三角矩阵L。

第四步,将方程组表示为LUx = B的形式。

具体地,我们将A, X 和B分解为L, U和x的乘积,即A = LU,X = UL,B = Ux。

从而,原方程组可以表示为LUx = B,即L(Ux) = B。

第五步,解方程组L(Ux) = B。

由于L是下三角矩阵,因此可以通过前代法求解得到Ux。

具体地,我们先通过Lw = B求解出向量w,然后再通过Ux = w求解出未知量向量x。

总的来说,矩阵的直接三角分解法(LU分解法)是一种常用的解线性方程组的方法。

它将原方程组表示为LUx = B的形式,然后通过前代法和回代法求解得到未知量向量x。

这种方法具有求解速度快、计算量小的优点,因此在实际应用中得到了广泛的应用。

线性方程组的直接法和迭代法

线性方程组的直接法和迭代法

线性方程组的直接法 直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。

线性方程组迭代法 迭代法就就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方法具有 对讣算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等 优点,就是求解大型稀疏矩阵方程组的重要方法.迭代法不就是用有限步运算求 精确解,而就是通过迭代产生近似解逼近精确解•如Jacobi 迭代、Gauss- Seidel 迭代、S0R 迭代法等。

1. 线性方程组的直接法直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方 法。

1.1 Cramer 法则Cramer 法则用于判断具有n 个未知数的n 个线性方程的方程组解的情况。

当 方程组的系数行列式不等于零时,方程组有解且解唯一。

如果方程组无解或者有 两个不同的解时,则系数行列式必为零。

如果齐次线性方程组的系数行列式不等 于零,则没有非零解。

如果齐次线性方程组有非零解,则系数行列式必为零。

定理1如果方程组Ax = b 中»= A 工0,则Ax = b 有解,且解事唯一的, 解为X 严 ¥,/岸,..% 理,D 就是D 中第i 列换成向量b 所得的行列式。

Cramer 法则解n 元方程组有两个前提条件:1、 未知数的个数等于方程的个数。

2、 系数行列式不等于零例1 a 取何值时,线性方程组X] + 兀2 + 兀3 = adX] +兀2 +些=1有唯一解。

內+花+ 0勺=1所以当a 丰1时,方程组有唯一解。

定理2当齐次线性方程组Av = O, |4|乂0时该方程组有唯一的零解。

定理3齐次线性方程组Ar = 0有非零解<=>同=0。

1.2 Gauss 消元法Gauss 消元法就是线性代数中的一个算法,可用来为线性方程组求解,求出 矩阵的秩,以及求出可逆方阵的逆矩阵。

当用于一个矩阵时,高斯消元法会产生出 一 1 1 11 1 1解:|牛 a 1 1= () 1-6/ 1-« 1 1 a 00 G-1 =_(。

线性方程组的直接解法1


(续3)
设为
A
(k )
(k ) x b
Step k: 若 a ( k ) kk
o
,令
l ik
a ik
(k )
a kk
(k )
, (i=k+1,k+2,…n)
用- l ik 来乘以第k个方程,加到第i个方程,并保留第k 个方程, 得: (i=k+1,k+2,…n)
August 6, 2012 yfnie@ 9
Step1: 若a
(1 ) 11
0 ,令 l i 1
a i1
(1 )
a 11
(1 )
( i 2 ,3 ,... n )
,用
l i1 乘
第一个方程加到第 i 个方程 式,得
( i 2 , 3 ,... n ) ,并保留第一
August 6, 2012
yfnie@
k 1 1
k 1
n
n ( n 1) 2
11
yfnie@
• 计算量
• Gauss顺序消去法消去过程所需的乘除运算次数为
2 ( n k ) ( n k )
2 k 1
n 1
n
3

n
2

n 3
5n 6
O (n )
3
3
n
2
a kk 0
(k )
(1 k n )
k 0
(1 k n )
August 6, 2012
yfnie@
14
命题证明
A A
(1 )ቤተ መጻሕፍቲ ባይዱ
A
(k )

线性方程组的解法及其应用

线性方程组的解法及其应用摘要:线性方程组是线性代数的核心内容之一,其解法研究是代数学中经典且重要的研究课题.本文综述了几种不同类型的线性方程组的解法,如消元法、克拉默法则、广义逆矩阵法、直接三角形法、平方根法、追赶法,并以具体例子介绍不同解法的应用技巧. 在这些解法中,广义逆矩阵方法,具有表达式清晰,使用范围广的特点.另外,这些方法利于快速有效地解决线性方程组的求解问题,为解线性方程组提供一个简易平台,促进了理论与实际的结合.关键词:线性方程组解法广义逆矩阵应用实例1. 引言线性方程组理论是高等数学中十分重要的内容,而线性方程组的解法是利用线性方程组理论解决问题的关键.本文主要介绍线性方程组的广义逆矩阵法、追赶法、平方根法等求解方法,为求解线性方程组提供一个平台.文章也给出线性方程组在其他领域中的应用实例,揭示了各学科之间的内通性.首先,我们讨论一般线性方程组.这里所指的一般线性方程组形式为11112211211222221122,,.n n n n s s sn n s a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ ()i()i 式中(1,2,,)i x i n =代表未知量,(1,2,,;1,2,,)ij a i s j n ==称为方程组的系数,(1,2,,)j b j n =称为常数项.线性方程组)(i 称为齐次线性方程组,如果常数项全为零,即120s b b b ====.令111212122212n n s s sn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦, 12s b b B b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,则()i 可用矩阵乘法表示为AX B =,,,.m n n m A C X C B C ⨯∈∈∈2. 线性方程组的解法2.1 消元法在初等代数里,我们已经学过用代入消元法和加减消元法解简单的二元、三元线性方程组.实际上,这个方法比用行列式解方程组更具有普遍性.但对于那些高元的线性方程组来说,消元法是比较繁琐的,不易使用.例 1 解线性方程组123123123123324,32511,23,237.x x x x x x x x x x x x +-=⎧⎪+-=⎪⎨++=⎪⎪-++=-⎩ 解 分别将第一个方程的(-3)倍,(-2)倍和2倍加到第二、三、四个方程上,整理得123232323324,71,555,7 1.x x x x x x x x x +-=⎧⎪-+=-⎪⎨-+=-⎪⎪-=⎩将此方程组第二个方程加到第四个方程上,使该方程两边全为零,并将第三个方程的两边乘以15-,得1232323324,71,1.x x x x x x x +-=⎧⎪-+=-⎨⎪-=⎩再将第三个方程的7倍加到第二个方程上,消去第二个方程中的未知量2x ,整理得123233324,1,6 6.x x x x x x +-=⎧⎪-=⎨⎪-=⎩最后解得123(,,)(2,0,1)T T x x x =--.正如消元法是我们接触比较早的,被我们所熟悉的一种方法,在此只给出三元线性方程组的解法,三元以上的方程组的具体理论、性质和解题过程详见参考文献[1]. 2.2 应用克莱姆法则对于未知个数与方程个数相等的情形,我们有定理1[1] 如果含有n 个方程的n 元线性方程组11112211211222221122,,.n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ ()ii的系数矩阵111212122212n n n n nn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦的行列式111212122212det 0n n n n nna a a a a a A a a a =≠,那么线性方程组()ii 有唯一解:det (1,2,,),det j j B x j n A==其中det j B 是把矩阵中第j 列换成线性方程组的常数项12,,,n b b b 所成的矩阵的行列式,即111,111,11222,122,121,1,1det,1,2,,.j j n j j n j n n j n n j nna ab a a a a b a a B j n a a b a a -+-+-+==此外,还可以叙述为,如果含有n 个未知数、n 个方程的线性方程组Ax b =的系数矩阵的行列式det 0A ≠,则线性方程组Ax b =一定有解,且解是唯一的. 例2 解线性方程组12342341242342344,3,31,73 3.x x x x x x x x x x x x x -+-=⎧⎪-+=-⎪⎨++=⎪⎪-++=-⎩ 解 由已知可得系数行列式12341234123401110111111det 16013015352073173148A ---------====≠----,因此线性方程组有唯一解.又因124234143431110311det 128,det 48,1301110137310331B B -------==-==-341244123401310113det 96,det 0.1311130107310733B B ------====--故线性方程组的解为1234(,,,)(8,3,6,0)T T x x x x =-.克莱姆法则主要给出了解与系数的明显关系,但只能应用于系数矩阵的行列式不为零的线性方程组,并且它进行计算是不方便的. 2.5 直接三角分解法[5]设有线性方程组11112211211222221122,,,n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩或写成矩阵形式Ax b =,其中111212122212n n n n nn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n x x x x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n b b b b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦.若A 为非奇异矩阵,且有分解式A LU =,其中U 为上三角矩阵,L 为单位下三角矩阵,即11121212221,1111n n n n n nn u u u l u u A LU l l u -⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦, 则线性方程组Ax b =的求解等价于 解以下两个三角方程组:(1)Ly b =,求y ; (2)Ux y =,求x .直接三角形分解法求解线性方程组,基本步骤如下: 第一步: 11,(1,2,,),i i u a i n == 1111,(2,3,,)i i l a u i n ==,计算U 的第r 行,L 的第r 列元素,2,3,,r n =.第二步: 11,(,1,,)r ri ri rk ki k u a l u i r r n -==-=+∑.第三步: 11,(1,,;)r ir ir ik kr rr k l a l u u i r n r n -==(-)=+≠∑.求解Ly b =,Ux y =的计算公式如下:第四步: ()1111,,2,3,.i i i ik k k y b y b l y i n -==⎧⎪⎨=-=⎪⎩∑第五步: 1,(),(1,2,,1).n n nn n i i ik k ii k i x y u x y u x u i n n =+=⎧⎪⎨=-=--⎪⎩∑例5 求解线性方程组1231212321,42,227.x x x x x x x x ++=⎧⎪+=-⎨⎪-++=⎩解 由直接三角分解法第二、三步可得211100211410210012221131004A LU ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥==--=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦⎣⎦. 于是线性方程组变为LUx b =,求解线性方程组(1,2,7)T Ly =-,得(1,4,4)T y =--;求解线性方程组(1,4,4)T Ux =--,得(1,2,1)T x =-.2.6 平方根法[7]在许多应用中,欲求解的线性方程组的系数矩阵是对称正定的.所谓平方根法,就是利用对称正定矩阵的三角分解而得到的求解具有对称正定矩阵的线性方程组的一中有效方法,目前在计算机上广泛应用平方根法解此类方程组.定理6[12] 若A 的各阶顺序主子式非零,则A 可以分解为A LDU =,其中L 是单位下三角矩阵,U 是单位上三角矩阵,D 是对角矩阵,且这种分解是唯一的.定理7[12] 设A 为对称正定矩阵,则存在三角分解T A LL =,其中L 是非奇异下三角形矩阵,且当限定L 的对角线元素为正时,这种分解是唯一的.应用对称正定矩阵的平方根法,可以解具有对称正定系数矩阵的线性方程组Ax b =,具体算法如下:1) 对j =1,2,,n ,计算11221()j jj jj jkk l a l -==-∑,11j ij ij ik jk k l a l l -==-∑(1,,)i j n =+.2) 求解线性方程组Ax b =等价于解两个三角方程组,.TLy b L x y =⎧⎨=⎩ 计算11()i i i ik k ii k y b l y l -==-∑,(i =1,2,,n ), 1()ni i ki kii k i x b lx l =+=-∑,(i n =,1n -,,2,1),即可.例6 求解线性方程组12341161 4.25 2.750.5.1 2.75 3.5 1.25x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 解 设1111213121222232313233334111 4.25 2.751 2.75 3.5l l l l l l l l l l l l -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 由矩阵乘法得1121223132332,0.5,2,0.5, 1.5, 1.l l l l l l ==-====解下三角方程组123260.520.50.5 1.51 1.25y y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 得1233,0.5,1,y y y ===-再由123230.520.50.5 1.511Tx x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦, 得线性方程组的解为123(,,)(2,1,1)T T x x x =-.可以用消元法解此方程组,但发现此方程组的系数矩阵为正定矩阵,运用平方根法解这个方程组比较容易,而且理论分析指出,解对称正定方程组的平方根法是一个稳定的算法,其在工程计算中使用比较广泛. 2.7 追赶法[5]在许多实际问题中,都会要求解系数矩阵为对角占优的三对角方程组11112222211111iiii i n n n n n nn n n x k b c x k a b c a b c x k a b c x k a b x k -----⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 简记作 Ax k =, 其中A 满足下列对角占优条件:(1) 110b c >>;(2) i i i b a c ≥+, i a ,i c 0≠(i =2,3, ,1n -);(3) 0n n b c >>.由系数矩阵A 的特点,可以将A 分解为两个三角矩阵的乘积,即A LU =,其中L 为下三角矩阵,U 为单位上三角矩阵.求解线性方程组Ax k =等价于解两个三角方程组Ly k =与Ux y =,先后求y 与x ,从而得到以下解三角方程组的追赶法公式:第一步:计算的递推公式111c b β=,1()i i i i i c b a ββ-=-,(2i =,3,,1)n -;第二步:解Ly k =:111y k b =,11()()i i i i i i i y k a y b a β--=--,(2,3,,)i n =;第三步:解Ux y =:n n x y =,1i i i i x y x β+=-,(1,2,,2,1)i n n =--.例7 求解三对角线性方程组123421001131020111200210x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦.解 设有三角分解111122222233333344441111b c p q a b c a p q a b c a p q a b a p ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 由矩阵乘法易得111,,1,2,3.,2,3,4.i i i ii i i p b q c p i p b a q i -=⎧⎪==⎨⎪=-=⎩ 将已知系数矩阵的元素代人上式有11223342,12,52,25,35,53,73.p q p q p q p ==⎧⎪==⎪⎨==⎪⎪=⎩ 解线性方程组112233441121220p y p y p y p y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 得123412,35,73, 2.y y y y ====再解线性方程组111222333441111x y q x y q x y q x y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,得原线性方程组的为1234(,,,)(0,1,1,2)T T x x x x =-.追赶法是以LU 分解为基础的求解方法,因此它的不足之处是当某个0=k u 时,就不能进行.但是当方程组的系数矩阵A 中有很多零元素时,利用三对角方程组系数矩阵的稀疏性,使零元素不参加运算,可以类似于追赶法来简化计算过程,从而极大地节省了计算量和存储量.这也是追赶法的最大特点.3. 应用举例3.1 线性方程组在解析几何中的应用例8 已知平面上三条不同直线的方程分别为1L :230ax by c ++=,2L :230bx cy a ++=,3L :230cx ay b ++=,试证:这三条直线交于一点的充分必要条件为0a b c ++=.证 必要性 设三直线1L ,2L ,3L 交于一点,则线性方程组232323ax by cbx cy a cx ay b +=-⎧⎪+=-⎨⎪+=-⎩ ()iii有惟一解,故系数矩阵222a b A b c c a ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦与增广矩阵232323a b c A b c a c a b --⎡⎤⎢⎥=-⎢⎥⎢⎥-⎣⎦的秩均为2,于是0A -=,即22223236()()23a bcA bc a a b c a b c ab ac bc ca b--=-=++++----=0,所以0a b c ++=.充分性 由0a b c ++=,则从必要性的证明可知,0A -=,故()3r A -<.由于22222132()2[()]2[()]0224a b ac b a a b b a b b b c =-=-++=-++≠, 故()()2r A r A -==.因此线性方程组()iii 有惟一解,即三直线1L ,2L ,3L 交于一点. 3.2 线性方程组在产品生产量中的应用例9 设有一个经济系统包括3个部门,在某一个生产周期内各部门间的消耗及最终产品如表所示:求各部门的总产品.解 设i x 表示第i 部门的总产品.由已知可以得到线性方程组()I A x y -=,其中0.250.10.1()0.20.20.10.10.10.2ij A a ⎡⎤⎢⎥==⎢⎥⎢⎥⎣⎦,0.750.10.10.20.80.10.10.10.8I A --⎡⎤⎢⎥-=--⎢⎥⎢⎥--⎣⎦,(245,90,175)T y =. 利用矩阵的初等变换可以求得1126181810()34118198912017116I A -⎡⎤⎢⎥-=⎢⎥⎢⎥⎣⎦, 所以线性方程组()I A x y -=的解为消耗系数 消耗部门 生产部门123最终产品1 0.25 0.1 0.1 2452 0.2 0.2 0.1 90 30.10.10.21751126181824540010()3411819902508912017116175300x I A y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦. 4. 结束语本文针对不同的线性方程组给出了一些计算方法,及线性方程组的应用实例.根据线性方程组自身所具有的特点,可以选择相应合适的方法,而对于那些特殊类型的线性方程组的解法,有待进一步的讨论与研究.参考文献:[1] 北京大学数学系几何与代数教研室前代数小组编. 高等代数[M].3版.北京:高等教育出版社,2003.105-112.[2] 白梅花. 线性方程组若干应用实例举例[J].科技资讯,2011,(27):200-201.[3] 康道坤,陈劲. 广义逆下线性方程组的解结构及其推广[J].大理学院学报,2011,10(4):7-9. [4] 卢刚.线性代数[M]. 北京:高等教育出版社,2002.64-72.[5] 李庆扬,王能超,易大义. 数值分析[M].4版.武汉:华中科技大学出版社,2006.177-185. [6] 苏育才,姜翠波,张跃辉. 矩阵理论[M].北京:科学出版社,2006.200-206. [7] 首都师范大学数学系组编. 数值分析[M].北京:科学出版社,2000.28-32.[8] 徐仲,张凯院,陆全,等. 矩阵论简明教程[M].2版.北京:科学出版社,2005.141-147. [9] 谢寿才,陈渊. 大学数学[M].北京:科学出版社,2010.37-40.[10] 徐仲,张凯院,陆全. 矩阵论[M].西安:西北工业大学出版社,2002.228-245.[11] 尹钊,钟卫民,赵丽君. 线性方程组的广义逆矩阵解法[J].哈尔滨师范大学自然科学学 报,1999,15(5):21-22. [12] 张明淳. 工程矩阵理论[M].1版.南京:东南大学出版社,1995.172-173.[13] 赵树嫄. 线性代数(经济应用数学基础)[M].4版.北京:中国人民大学出版社,2008.150-157.。

matlab中快速求解xa=b的方法

matlab中快速求解xa=b的方法在Matlab中,要快速求解线性方程组xa=b,可以使用以下几种方法:1. 直接求解法(\):直接使用斜杠操作符(\)可以求解线性方程组。

例如,对于方程组xa=b,可以直接使用x = A\b来解决,其中A是系数矩阵,b是常数向量。

这种方法使用了高效的LU分解算法,并且能够自动适应方程组的类型(如稀疏矩阵或密集矩阵),因此是一种快速求解线性方程组的常用方法。

2. QR分解法:QR分解是一种将矩阵分解为正交矩阵和上三角矩阵的方法。

在Matlab中,可以使用qr函数对系数矩阵进行QR分解,然后使用这个分解求解线性方程组。

具体而言,可以使用[q,r] = qr(A)将系数矩阵A分解为正交矩阵q和上三角矩阵r,然后使用x = r\(q'*b)求解方程组。

这种方法通常适用于方程组的系数矩阵具有较大的条件数或者方程组数目较多的情况。

3. Cholesky分解法:如果线性方程组的系数矩阵是对称正定的,那么可以使用Cholesky分解来求解方程组。

在Matlab中,可以使用chol函数对系数矩阵进行Cholesky分解,然后使用这个分解求解线性方程组。

具体而言,可以使用R = chol(A)将系数矩阵A分解为上三角矩阵R,然后使用x = R'\(R\b)求解方程组。

Cholesky分解法通常适用于系数矩阵具有良好的性质(如对称正定)的情况。

4. 迭代法:如果线性方程组的系数矩阵是稀疏的,那么可以使用迭代法来求解方程组。

迭代法的基本思想是通过迭代改进解的逼近值。

在Matlab中,可以使用pcg函数(预处理共轭梯度法)或者bicg函数(双共轭梯度法)来求解稀疏线性方程组。

这些函数需要提供一个预处理矩阵,用于加速迭代过程。

预处理矩阵可以根据具体问题进行选择,常见的预处理方法包括不完全LU分解(ilu)和代数多重网格(amg)等。

通过使用上述方法,可以在Matlab中快速求解线性方程组xa=b。

数值分析-线性方程组的直接解法


算法 Gauss(A,a,b,n,x)
1. 消元 For k=1,2, … , n-1 1.1 if akk=0 , stop; 1.2 For i=k+1,k+2, …, n 1.2.1 l ik=aik /akk => aik 1.2.2 For j=k+1,k+2, … ,n ai j -aik ak j =>aij 1.2.3 bi -aik bk=> bi 2. 回代 2.1 bn / an=>xn; 2.2 For i=n-1,n-2, …, 2,1 2.2.1 bk => S 2.2.2 For j=k+1,k+2, … ,n S –akj xj =>S 2.2.3 S/ akk => xk a1 1 a1 2 a13 a2 1 a2 2 a23
线性方程组的直接解法
刘 斌
线性方程组的直接解法
§1 Gauss消去法 1.1 顺序Gauss消去法
1.2
§2 2.1 2.2 2.3
列主元Gauss消去法
Gauss消去法的矩阵运算 Doolittle分解法 平方根法
直接三角分解方法
2.4
追赶法
引入
在科学计算中,经常需要求解含有n个未知量 的n个方程构成的线性方程组 a11 x1 a12 x2 a1n xn b1 a21 x1 a22 x2 a2 n xn b2 (1) an1 x1 an 2 x2 ann xn bn
(1) a12 ( 2) a22 0
(1) (1) a13 a1 n ( 2) ( 2) a23 a2 n ( 3) ( 3) a33 a3 n
0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用直接法解线性方程组及其应用 摘要: 在科学研究和工程技术中有许多问题可归结为求解线性代数方程组的问题和常微分方程的定解问题。本文主要讨论了解线性方程组的各种直接解法,常微分方程的边值问题及其应用,最后介绍了病态方程和及其求解方法。 关键字: 线性方程组 直接法 应用举例 一、引言

随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。有可靠的理论分析,要有数值实验,并对计算的结果进行误差分析。数值分析的主要内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。运用数值分析解决问题的过程包括: 实际问题→数学建模→数值计算方法→程序设计→上机计算求出结果。 在自然科学研究和工程技术中有许多问题可归结为求解线性代数方程组的问题,线性方程组求解是科学计算中最常遇到的问题。如在应力分析、电路分析、分子结构、测量学中都会遇到解线性方程组问题。在很多广泛应用的数学问题的数值方法中,如三次样条、最小二乘法、微分方程边值问题的差分法与有限元法也都涉及到求解线性方程组。直接法是在没有舍入误差的情况下,通过有限步四则运算来求的方程组精确解的方法。直接法包括高斯列主元消去法,三角分解法,追赶法等的基本思想和原理,学习它们各自的优缺点及适用范围。能够利用直接法解线性方程组解决一些如道路的交通流量,电网的电流流量,解析几何等的实际问题。 二、解线性方程组的方法

关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。 1、 直接法 直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。 2、 迭代法 迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。将方程组的解看作是某极限过程的极限值,且计算这一极限值的每一步是利用前一步所得结果施行相同的演算步骤而进行。迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。迭代法包括Jacobi法SOR法、SSOR法等多种方法。本文主要介绍用高斯消元法,矩阵三角分解法求解线性方程组及其应用。 三、具体解法及其实例 1、Gauss消元法 通过一系列的加减消元运算,也就是代数中的加减消去法,以使A对角线以下的元素化为零,将方程组化为上三角矩阵;然后,再逐一回代求解出x向量。现举例说明如下:

1.1消元过程 第一步:将(1)/3使x1的系数化为1,再将(2)、(3)式中x1的系数都化为零,即由(2)-2×(1)(1)得

由(3)-4×(1)(1)得 第二步:将(2)(1)除以2/3,使x2系数化为1,得 再将(3)(1)式中x2系数化为零,由(3)(1)-(-14/3)*(2)(2) ,得

第三步:将(3)(2)除以18/3,使x3系数化为1,得 经消元后,得到如下三角代数方程组:

1.2 回代过程 由(3)(3)得 x3=1,将x3代入(2)(2)得x2=-2,将x2 、x3代入(1)(1)得x2=1, 所以,本题解为[x]=[1,2,-1]T 1.3 用矩阵演示进行消元过程 第一步: 先将方程写成增广矩阵的形式

)1(321)1(......23132xxx

)1(32)2(......03432xx

)1(32)3(......6310314xx

)2(32)2(......02xx

)2(3)3(......6318x

)3(3)3(......1x 第二步:然后对矩阵进行初等行变换 第三步:将增广矩阵变换成上三角矩阵,即主对角线全为1,左下三角矩阵全为0,形式如下:

即原方程组被等价转化成为上三角方程组,然后,逐步回代得原方程组的解即可。 1.4高斯消元的公式 综合以上讨论,不难看出,高斯消元法解方程组的公式为 第一步,消元 (1) 令 aij(1) = aij , (i,j=1,2,3,…,n) bi(1) =bi , (i=1,2,3,…,n) (2) 对k=1到n-1,若akk(k)≠0,进行 lik = aik (k) / akk(k) , (i=k+1,k+2,…,n) aij(k+1) = aij(k) - lik * akj(k), (i,j= k+1,k+2,…,n) bi(k+1) = bi(k) - lik * bk(k), (i= k+1,k+2,…,n) 第二步,回代 若ann(n) ≠ 0 xn = bn(n) / ann

(n)

xi = (bi(i) – sgm(aij(i) * xj )/- aii(i) ,(i = n-1,n-2,…,1),( j = i+1,i+2,…,n ) 1.5 解的判断 设方程组的增广矩阵记为A,则A经过初等行变换可化为如下的阶梯形矩阵(必要是可重新排列未知量的顺序):

其中cii0(i=1,2,„,r).于是可知: (1).当dr+1=0,且r=n时,原方程组有唯一解. (2).当dr+1=0,且r(3).当dr+10,原方程组无解. 2、LU分解法 求解线性代数方程组除了高斯消元法外,还常用LU分解法(三角形分解法)。LU分解法的优点是当方程组左端系数矩阵不变,仅仅是方程组右端列向量改变,即外加激励信号变化时,能够方便地求解方程组。矩阵的三角分解法可分为直接三角分解法,列主元三角分解法,平方根法,三对角方程组的追赶法。下面讨论直接三角分解法。 设n阶线性方程组Ax=b 。假设能将方程组左端系数矩阵A,分解成两个三角阵的乘积,即A=LU ,式中,L为主对角线以上的元素均为零的下三角矩阵, 且主对角线元素均为1的上三角矩阵;U为主对角线以下的元素均为零

所以有,LUx=b 令 Ux=y, 则 Ly=b 由A=LU,由矩阵的乘法公式: a1j = u1j , j=1,2,„,n ai1 = li1u11 , i=1,2,„,n 推出 u1j = a1j, j=1,2,„,n li1 = ai1/u11, i=1,2,„,n 这样就定出了U的第一行元素和L的第一列元素。 设已定出了U的前k-1行和L的前k-1列,现在确定U的第k行和L的第k列。由矩阵乘法:

当r>k时,lkr=0, 且lkk=1,因为

所以, 同理可推出计算L的第k列的公式:

nrrjkrkjula1

nrrjkrkjkjnkkjulau1,...,1,

nrrjkrkjkjulua1

nrkkrjkrikiknkkiuulal1,...,1,/)(因此得到如下算法——杜利特(Doolittle)算法: (1)将矩阵分解为A=LU,对k=1,2,„,n;j=k,k+1,„n; i=k,k+1,„n;

公式1 (2)解Ly=b (3)解Ux=y 对大规模稀疏问题,如果能够通过调整方程及未知量的顺序使得方程组的系数矩阵成带状结构,则对系数矩阵使用通常的LU分解,可以保障单位下三角矩阵L及上三角矩阵U仍为带状结构. 3. 直接法解线性方程组的应用 例1:确定下图电网中的回路电流。

40V10V60V

822

822AB

DC261I2I3I

解 在回路1中,电流I1流过三个电阻,且电压降IR为111122688IIII;在回路2中的电流也流经回路1的一部分,即从D到A的分支,对应的电压降IR为 6I2伏特.然而,回路1中电流在DA段的方向与回路2中选定的方向相反,因此,回路1中所有电压降IR的代数和为21622II.由于回路1中的电压为+60伏特,由基尔霍夫电压定律,可得回路1的方程为 6062221II,

同理,可得回路2的方程为 102126321III,

其中, -6I1是回路1中流经DA分支的电流(因为电流与回路2中的电流方向相反,所以电压为负);12I2是回路2中所有的电阻乘上回路电流的和; -2I3是回路3

11,...,2,1:2krrkrkknkylby公式

nkrkkrkrkknnkuxuyx11,...,1,/)(3:公式





1/)(u11kkkknrrjkyikjknryjkikjkiluulalula

相关文档
最新文档