线性方程组的数值解法及其应用
数值分析及其在科学计算中的应用
数值分析及其在科学计算中的应用数值分析是一门研究利用数值方法进行近似求解数学问题的学科,它广泛应用于科学计算中。
本文将探讨数值分析在科学计算中的应用,并介绍一些常见的数值方法。
一、数值分析在科学计算中的重要性科学计算中经常需要求解各种数学问题,例如线性方程组的求解、函数的求根、积分的计算等等。
这些问题通常很难通过解析方法求得准确解,因此需要借助数值分析提供的数值方法来近似求解。
数值分析所提供的算法和计算技巧,能够在计算机上高效地求解这些数学问题,为科学研究和工程实践提供了强大的工具。
二、数值解线性方程组的方法线性方程组的求解在科学计算中是非常常见的问题。
一种常用的数值方法是高斯消元法,该方法通过消元和回代的过程将线性方程组转化为上三角矩阵,然后再利用回代法求解。
此外,还有一些改进的高斯消元法,例如选主元高斯消元法和LU分解法,能够提高求解的稳定性和效率。
三、数值求函数的根的方法在科学计算中,求解函数的根是一个重要的问题。
牛顿迭代法是一种常用的数值方法,能够通过不断迭代逼近函数的根。
该方法通过计算函数的导数和函数值来更新逼近根的值,直到满足所需的精度。
此外,还有二分法、割线法等其他求根方法,根据具体问题选择合适的方法进行求解。
四、数值积分的方法数值积分是科学计算中常见的问题,用于计算函数在一定区间上的积分值。
其中最基本的方法是梯形数值积分法,该方法将区间划分为若干小梯形,然后计算每个小梯形的面积并相加得到总的积分值。
除此之外,还有辛普森数值积分法、高斯数值积分法等其他方法,能够提高数值积分的精度和稳定性。
五、数值微分和数值微分方程的方法数值微分和数值微分方程是科学计算中的另一个重要问题。
数值微分常用的方法有前向差分、后向差分和中心差分等,用于计算函数在给定点的导数值。
数值微分方程的求解通常采用常微分方程初值问题的数值解法,例如龙格-库塔法、欧拉法等。
综上所述,数值分析在科学计算中有着广泛的应用。
它通过提供各种数值方法,能够有效地求解线性方程组、函数的根、积分、微分以及微分方程等数学问题。
线性方程组AXB的数值解法j课件
a a3 41 1
a32 a42
a33 a43
a a3 44 4
m m3 41 1
m32 m42
1 m43
00 10
0 0
u33 0
u u3 44 4
A非奇异蕴含着对所有的k有ukk≠0,k=1,2,3,4.
线性方程组AX=B的数值解法j
26
矩阵的LU分解
• 是否所有的非奇异矩阵A都能作LU分解呢?
则求解线性方程组Ax=b的问题可以分解成两个简 单的问题:
Ly=b Ux=y
易见:Ax=(LU)x=L(Ux)=Ly=b
线性方程组AX=B的数值解法j
8
3.3 上三角线性方程组(续2)
• 求解上三角线性方程组的回代算法
xn
b
... n
... n
a11x1 a12x2 a13x3 a1nxn b1 a2 2x2 a2 3x3 a2 nxn b2 a3 3x3 a3nxn b3
a n . .1 ,.n 1 x n 1+ n . .1 ,.n x a nn .b .1 .
回代到第一个方程,得
x1
725 3
1
3x1 2x2 7
53x2
25 3
线性方程组AX=B的数值解法j
13
3.4 高斯消去法和选主元(续2)
• 考虑包含n个未知数的方程组
a11x1 a12x2 a13x3 a1nxn b1 a21x1 a22x2 a23x3 a2nxn b2 a31x1 a32x2 a33x3 a3nxn b3 an1x1 an2x2 an3x3 annxn bn
例3.17和3.18
偏序选主元策略 |akp|=max{|app|,|app+1|,…,|aN-1p|,|aNp|}
浅谈线性方程组的数值解法及其应用
浅谈线性方程组的数值解法及其应用1、相关定义1.1、分形油藏基本概念定义3.1[32]:维数为的分形渗透网嵌入到d(d=2,3)维岩块中,即整个导流系统是一个分形体,称具有这种特性的油藏为分形油藏。
df 3.1.1 分形孔隙度θf和渗透率Kf (r) 假设分形体内流体储集在体积为的座点处(设每个座点体积相同),座点密度为。
分形体中,座点孔隙体积为常数。
用描述某种相应对称性(如, Vs N( r ) Vs B B= A 2π h和4π 分别描述直线对称,圆柱面对称和球对称),a为位置-浓度参数[33], 为岩块的欧几里德维数,定义分形孔隙度d θf有: θf= aBVs rdf ?d (3-1) 这说明分形网格的θf 不再是常数,而是随波及半径r 成幂律关系。
取,则有: w r =r df d f w w r θ θr θw=aVBs rwd f ? d,得到分形孔隙度= ,θw 为r = rw 处的孔隙度。
同样渗透率定义为:Kf( r)= aVsB m rd f ?d ? θ (3-2) ( ) r= rw处的渗透率Kw=aVs Bm r wdf ?d ?θ ,得到渗透率Kf r= Kw rrw d f? d ?θ 。
3.1.2 分形参数的物理意义(1)分形维数df 分形维数df 严格地是一个分形体的几何特征,是分形体复杂程度的重要标志。
一般认为,d f值不同,复杂程度也不一样。
随复杂程度加剧,d f 值会愈高。
151.2、分数阶的基本定义从十七世纪分数阶微积分诞生之日起,数学家们就不断的探讨分数阶算子的理论体系。
后经多位数学家的努力,从不同的角度入手,建立了多种不同形式的分数阶算子定义,现在主要通用的三种定义[1]形式为: (1). Grümwald-Letnikov 定义:对于任意的实数α ,记α 的整数部分为[α ] ([α ] 为小于α 的最大整数),假如函数f ( t ) 在区间[α,t ]上有m+ 1 阶连续的导数,α > 0 时, m 至少取[α ],则定义分数阶α 阶导数为: ( ) li0m 0 ( ) n G aD tα f tΔ nhh→ =t ?a h ?α i =∑ ??? ?iα ??? f t ? ih (1-1) ( )( 1)( 2) ( 1) ! i i i 其中,?α = ?α ?α + ?α + L ?α + ? 。
线性方程组的解法与应用
线性方程组的解法与应用在数学中,线性方程组是由若干个线性方程组成的方程组,它是研究线性代数的基础。
线性方程组的解法和应用非常广泛,可以用于解决实际生活和工作中的各种问题。
本文将介绍线性方程组的解法以及一些应用案例。
一、线性方程组的解法线性方程组的解法主要有三种:图解法、代入法和消元法。
下面将详细介绍这三种方法。
1. 图解法图解法是线性方程组最直观的解法之一。
通过在坐标系中画出方程组表示的直线或者平面,可以确定方程组的解。
举个例子,考虑一个包含两个未知数的线性方程组:方程一:2x + 3y = 7方程二:4x - y = 1我们可以将方程一化简为 y = (7 - 2x) / 3,方程二化简为 y = 4x - 1。
然后在坐标系中画出这两条直线,它们的交点即为方程组的解。
2. 代入法代入法是一种逐步代入的解法。
通过将已知的某个变量表达式代入到另一个方程中,逐步求解未知数的值。
仍以前述的线性方程组为例,我们可以将方程二中的 y 替换为 (7 - 2x) / 3,代入方程一中:2x + 3((7 - 2x) / 3) = 7通过化简方程,我们可以得到 x 的值,然后再将 x 的值代入到方程二中,求出 y 的值。
3. 消元法消元法是一种通过不断消去未知数来求解方程组的解法。
通过变换或者利用消元的规律,将方程组转化为更简单的形式,从而获得解。
考虑一个包含三个未知数的线性方程组为例:方程一:2x + 3y - z = 10方程二:4x - y + z = 2方程三:x + 2y + z = 3可以使用消元法将这个方程组转化为上三角形式,即方程组的右上方是零。
通过对方程组进行一系列的变换,可以得到转化后的方程组:方程一:2x + 3y - z = 10方程二:-7y + 5z = -18方程三:4y + 5z = -1一旦方程组转化为上三角形式,可以通过回代法依次求解未知数。
二、线性方程组的应用线性方程组的求解方法在现实生活中有着广泛的应用。
第2章 线性方程组的数值解法
第2章 线性方程组的数值解法2.1 引言在自然科学研究和工程技术的应用中,许多问题的解决,诸如非线性问题线性化、求微分方程的数值解最终都归结为线性方程组的求解问题. 我们在后面章节中的样条插值、曲线拟合、数值代数等,也需要求解线性方程组。
一般地,设n 阶线性方程组(linear system of equations of order 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 +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ (2.1.1) 表示成矩阵形式=Ax b , (2.1.2)其中()111212122212n n ij n nn n nn a a a a a a a a a a ⨯⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦ A ,12n x x x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ x ,12n b b b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦b , (2.1.3) A 为系数矩阵(coefficient matrix).目前在计算机上经常使用的、简单有效的线性方程组的数值解法大致分为两类:直接法(direct method)和迭代法(iterative method). 其中直接法适用于以稠密矩阵为系数矩阵的中低阶线性方程组,而迭代法主要用于求解以稀疏矩阵为系数矩阵的高阶线性方程组。
本章首先介绍解线性方程组的两种常用的直接法:Gauss 消去法与矩阵三角分解法;然后介绍解线性方程组的三种常用的迭代法:Jacobi 迭代法、Gauss-Seidel 迭代法、超松弛法(SOR 法),并讨论它们的收敛性。
最后,讨论了线性方程组的性态。
2.2 Gauss 消去法Gauss 消去法(Gaussian elimination method )的基本思想是使用初等行变换将方程组转化为一个同解的上三角形方程组,再通过回代,求出该三角形方程组的解.2.2.1 Gauss 消去法Gauss 消去法包括消元和回代两个过程. 下面先举例说明Gauss 消去法求解线性方程组的主要过程.例2.2.1 求解线性方程组123123123471,2581,3611 1.x x x x x x x x x ++=⎧⎪++=⎨⎪++=⎩ 解 将该线性方程组写成增广矩阵(augmented matrix)的形式1471258136111⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦用Gauss 消去法求解过程如下:1.消元过程12213323323214711471147125810361036136111061020020r r r r r r r r r -+→-+→-+→⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥−−−−→---−−−−→---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦⎣⎦,从而原方程组等价地变为上三角形方程组123233471,361,20.x x x x x x ++=⎧⎪--=-⎨⎪=⎩2.回代过程从第3 个方程解出30x =,将其代入第2 个方程得()2216/31/3x x =--+=,再将30x =及21/3x =回代到第1个方程,解出1231471/3x x x =--=-. 从而得到原方程组的解123113,0.x x x =-==对于一般线性方程组(2.1.1),使用Gauss 消去法求解分为以下两步:1.消元过程为方便起见,记()(0)(0),ijn na ⨯==A A ()T(0)(0)(0)(0)1,12,1,1,,,n n n n a a a +++== b b ,则方程组(2.1.1)为()()()()()()()()()()()()000011112211,1000021122222,100001122,1,,.n n n n n n n n nn n n n a x a x a x a a x a x a x a a x a x a x a +++⎧+++=⎪+++=⎪⎨⎪⎪+++=⎩ (2.2.1) 第1次消元:若()0110a ≠,对方程组(2.2.1) 执行初等行变换11i i i r l r r -→, 2,3,,i n = ,得第1个导出方程组——————————————————————————高斯 (Carl Friedrich Gauss 1777年4月30 日 – 1855年2月23 ) 是德国数学家、天文学家,在许多科学领域都做出了杰出的贡献,他为现代数论、微分几何(曲面论)、误差理论等许多数学分支奠定了基础. 他的数学研究以简明、严谨、完美而著称于世. 他在数学上与阿基米德、牛顿和欧拉齐名,被称为“数学王子”,被公认为有史以来最伟大的数学家之一.()()()()()()()()()()000011112211,111122222,111122,1,,,n nn n n n n nn n n n a x a x a x a a x a x a a x a x a +++⎧+++=⎪⎪++=⎨⎪⎪++=⎩(2.2.2)其中()()1111/i i l a a =,()()()10011,2,3,,;2,3,, 1.ij ij i j a a l a i n j n =-==+第2次消元:若()1220a ≠,对方程组(2.2.2)执行初等行变换22,i i i r l r r -→ 3,4,,i n = ,得第2个导出方程组()()()()()()()()()()()()()()()0000011112213311,1111122223322,122233333,122233,1,,,,n nn n n n n nn n nn nn n a x a x a x a x a a x a x a x a a x a x a a x a x a ++++⎧++++=⎪⎪+++=⎪⎪++=⎨⎪⎪⎪++=⎪⎩(2.2.3)其中()()112222/i i l a a =,()()()21122,3,4,,;3,4,, 1.ij ij i j a a l a i n j n =-==+第k 次消元:若()10k kka -≠,对第1k -个导出方程组执行初等行变换i ik k i r l r r -→,1,2,,i k k n =++ , 得第k 个导出方程组()()()()()()()()()()()()()()()000001111221,1111,110112221,1122,11,111,1,1,11,1,,,,k k n nn k k n n n k k k k k k k n nk n k k k n k k nn n n n a x a x a x a x a a x a x a x a a x a x a a x a x a +++++++++++++++⎧+++++=⎪⎪++++=⎪⎪⎨++=⎪⎪⎪⎪++=⎩(2.2.4)其中()()11k k ik ikkkl a a --=,()()()11,k k k ij ij ik kj a a l a --=- 1,,;1,, 1.i k n j k n =+=++ 重复上述过程1n -次,得到第1n -个导出方程组()()()()()()()()()()()()()()0000011112213311,1111122223322,122233333,111,1,,,.n n n n n n n nn n n nn nn n a x a x a x a x a a x a x a x a a x a x a a x a +++--+⎧++++=⎪⎪+++=⎪⎪++=⎨⎪⎪⎪=⎪⎩(2.2.5)其中()()()()()1111,,1,2,,1;1,,;1,, 1.k k kk k ik ikkkij ijik kjl a a a a l a k n i k n j k n ----==-=-=+=++ (2.2.6)这样,通过消元过程就将方程组(2.1.1)化成了等价的上三角形方程组(2.2.5).2.回代过程回代过程就是求上三角形方程组(2.2.5)的解. 若()10n nna -≠,则从最后一个方程开始,先求出()()11,1,/n n n n n n n x a a --+=,再由第1n -个方程解出1n x -,依此类推可解出221,,,n x x x - . 一般(2.2.7)定义 2.2.1 由式(2.2.2)-(2.2.7)确定的求解线性方程组的算法称为Gauss 消去法(Gaussian elimination method),包括消元(elimination)和回代(backward substitution)两个过程。
数值分析第三章线性方程组解法
数值分析第三章线性方程组解法在数值分析中,线性方程组解法是一个重要的主题。
线性方程组是由一组线性方程组成的方程组,其中未知数的次数只为一次。
线性方程组的解法包括直接解法和迭代解法两种方法。
一、直接解法1.1矩阵消元法矩阵消元法是求解线性方程组的一种常用方法。
这种方法将方程组转化为上三角矩阵,然后通过回代求解得到方程组的解。
1.2LU分解法LU分解法是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积,然后通过解两个三角方程组求解线性方程组。
这种方法可以减少计算量,提高计算效率。
1.3 Cholesky分解法Cholesky分解法是对称正定矩阵进行分解的一种方法。
它将系数矩阵A分解为一个下三角矩阵L和它的转置的乘积,然后通过解两个三角方程组求解线性方程组。
Cholesky分解法适用于对称正定矩阵的求解,具有较高的精度和稳定性。
二、迭代解法2.1 Jacobi迭代法Jacobi迭代法是一种迭代求解线性方程组的方法。
它通过分解系数矩阵A为一个对角矩阵D和一个余项矩阵R,然后通过迭代更新未知数的值,直至达到一定精度要求为止。
Jacobi迭代法简单易懂,容易实现,但收敛速度较慢。
2.2 Gauss-Seidel迭代法Gauss-Seidel迭代法是一种改进的Jacobi迭代法。
它通过使用新计算出的未知数值代替旧的未知数值,达到加快收敛速度的目的。
Gauss-Seidel迭代法是一种逐步逼近法,每次更新的未知数值都会被用于下一次的计算,因此收敛速度较快。
2.3SOR迭代法SOR迭代法是一种相对于Jacobi和Gauss-Seidel迭代法更加快速的方法。
它引入了一个松弛因子,可以根据迭代的结果动态地调整未知数的值。
SOR迭代法在理论上可以收敛到线性方程组的解,而且收敛速度相对较快。
三、总结线性方程组解法是数值分析中的一个重要内容。
直接解法包括矩阵消元法、LU分解法和Cholesky分解法,可以得到线性方程组的精确解。
数值计算方法第3章解线性方程组的数值解法1
,i
2 ,3 ,...,
n
a
(1 11
)
A( 1) A ( 2 )
a (1) 11
a (2) 22
...... ......
......
a (2) n2
......
a a
(1) 1n
(2) 2n
a
(2 nn
)
b (1)
b (2)
[
b
( 1
1
)
b (2) 2
a(k) kk
...
a(k) kn
... ... ...
...
...
a(n) nn
b1(1) b2(2)
...
bk(k)
...
bn(n)
21
高斯顺序消去法
也就是对于方程组AX=b系数矩阵做:
ai(jkl1i)k
a(k) ik
a(k) ij
/
a(k) kk
3)顺序消元
31
高斯列主元消去法
第k步
从A ( k ) 的第
k
列
a (k) kk
,a (k) k 1k
,...a
(k) nk
中选取绝对值
最大项,记录所在行,即
|a(k) ikk
|m kina|axi(kk)
|
记 lik
若 l k 交换第k行与l行的所有对应元素,再 进行顺序消元。
32
其中, lii 0, i 1,2,..., n
(1)
10
高斯顺序消元法
线性方程组的解法与实际应用
线性方程组的解法与实际应用线性方程组是数学中的基本概念之一,广泛应用于各个领域,包括物理学、经济学、工程学等。
本文将探讨线性方程组的解法以及其在实际应用中的重要性。
一、线性方程组的解法线性方程组是由一系列线性方程组成的方程组。
一般形式为:a₁x₁ + a₂x₂ + ... + aₙxₙ = b₁a₁x₁ + a₂x₂ + ... + aₙxₙ = b₂...a₁x₁ + a₂x₂ + ... + aₙxₙ = bₙ其中,a₁、a₂、...、aₙ为系数,x₁、x₂、...、xₙ为未知数,b₁、b₂、...、bₙ为常数。
解线性方程组的方法有很多种,常见的有高斯消元法、矩阵法和克莱姆法则。
下面将分别介绍这三种方法。
1. 高斯消元法高斯消元法是一种基本的线性方程组解法,它通过消元和回代的方式求解未知数的值。
首先,将线性方程组写成增广矩阵的形式,然后利用初等行变换将矩阵化为上三角矩阵,最后通过回代求解得到未知数的值。
2. 矩阵法矩阵法是一种简洁高效的线性方程组解法。
将线性方程组的系数矩阵和常数矩阵进行运算,得到增广矩阵。
然后利用矩阵的性质进行求解,如行列式的计算、逆矩阵的求解等。
最后得到未知数的值。
3. 克莱姆法则克莱姆法则是一种利用行列式求解线性方程组的方法。
根据克莱姆法则,线性方程组的解可以通过系数矩阵的行列式和常数矩阵的行列式之间的关系求得。
具体操作是将系数矩阵的每一列替换为常数矩阵,然后求解行列式的值,最后得到未知数的值。
二、线性方程组的实际应用线性方程组在实际应用中扮演着重要的角色,下面将介绍一些典型的应用场景。
1. 物理学中的应用线性方程组在物理学中有广泛的应用。
例如,牛顿第二定律可以用线性方程组表示。
当我们需要求解物体在受力作用下的加速度、速度和位移时,可以通过解线性方程组得到这些物理量的值。
2. 经济学中的应用经济学中的供求关系、成本与收益等问题也可以用线性方程组进行建模和求解。
例如,当我们需要确定某种商品的市场均衡价格和数量时,可以通过解线性方程组得到这些值。
第二章 线性方程组的数值解法
0
a(k1) n,k1
an (kn1)
bn (k1)
12/114 §2.1 Gauss消去法
1. 消去过程
(2) 第k次消元。
ai(k j1)ai(k j)a ak i((k k k ))kai(k j) bi(k1)bi(k)a ak i((k k k ))kbk (k)
jk1,k2,.n ..— — , 减 减bk (k 去 去 k )的 行 a ak i((k k k ))a a 第 k倍 k i((的 k k k ))k倍 ik1,k2,.n ..
13/114 §2.1 Gauss消去法
1. 消去过程
பைடு நூலகம்
(3) 当k = n – 1时得
a1(11) [A(n) |b(n)]
a(1) 12
a(2) 22
a(1) 1n
a2(2n)
bb12((12))
a(n) nn
bn(n)
完成第n – 1次消元后得到与原方程组等价的三角形方程
组
A(n)x = b(n)
令 lik
a(k) ik
a(k) kk
for (i = k+1 to n) A(i,k) = A(i,k)/ A(k,k) for (j = k+1 to n+1) A(i,j) = A(i,j) - A(i,k)* A(k,j)
a i ( k j 1 ) a i ( k ) j l ia k k ( k ) ,( j j k 1 , ,n )
求解三角形方程组A(n)x = b(n),
an (n)nxn bn (n)
得到求解公式
xn
abnn((nnn))
bi(i)
数值线性代数方法及其应用
数值线性代数方法及其应用数值线性代数是一门研究线性代数问题在计算机中的数值解法的学科。
它的应用广泛,包括物理学、工程学、经济学等领域。
本文将介绍数值线性代数的一些基本方法,并探讨其在实际问题中的应用。
一、矩阵表示及基本运算数值线性代数的基础是矩阵。
矩阵可以表示线性方程组、向量空间等各种数学对象。
在计算机中,矩阵的表示常采用二维数组的形式。
矩阵的加法、乘法、转置等基本运算可以方便地在计算机中实现。
二、线性方程组求解线性方程组是数值线性代数中的一个重要问题。
常见的求解方法包括高斯消元法、LU分解法、迭代法等。
高斯消元法通过消元和回代的过程来求解线性方程组,而LU分解法则通过将矩阵分解为下三角矩阵和上三角矩阵的乘积来简化求解过程。
迭代法则通过不断逼近线性方程组的解来求解,常见的迭代法有Jacobi迭代法和Gauss-Seidel迭代法。
三、特征值与特征向量计算特征值和特征向量是矩阵的重要性质。
求解一个矩阵的特征值和特征向量可以帮助我们理解矩阵的行为和性质。
常见的求解方法有幂法和QR方法。
幂法通过迭代的方式来逼近矩阵的特征值和特征向量,而QR方法则通过将矩阵分解为正交矩阵和上三角矩阵的乘积来进行求解。
四、奇异值分解奇异值分解是数值线性代数中的一个重要概念。
它将一个矩阵分解为三个部分:一个正交矩阵、一个对角矩阵和另一个正交矩阵的转置。
奇异值分解在数据降维、图像压缩等领域有广泛的应用。
五、应用案例分析数值线性代数方法在实际问题中有广泛的应用。
其中一个典型的应用是图像处理中的降噪问题。
通过建立图像降噪的数学模型,可以使用数值线性代数方法来求解得到清晰的图像。
另一个应用是网络分析中的节点排名问题。
通过构建节点排名的数学模型,可以使用特征值和特征向量计算的方法来对网络节点进行排名。
六、总结数值线性代数方法是计算机科学和应用数学中的重要分支。
它提供了一系列求解线性代数问题的有效方法,并在许多实际问题的建模和求解中得到应用。
学论文线性方程组的求解及应用
学年论文题目:浅谈线性方程组的求解及应用学院:数学与统计学院专业:信息与计算科学学生姓名:学号:指导教师:浅谈线性方程组解的求解及应用数学与统计学院 12级信息与计算科学专业摘要:我们已经学习过了一些关于线性方程组的一般理论,本文在我们学习的基础上总结并推广,讨论了这些理论在高等代数中的应用,并试图应用简单的数学软件来实现求解过程. 英文摘要:We have learned some common theories about system of linear equations, this article will summarize and generalize the theory on the basis of what we have known, discuss their application in high algebra and try to use a simple math software to find roots.关键词:克拉默法则消元解法MA TLAB 直接法迭代法Key Word: Cramer’s Rule Elimination Method MATLAB Direct MethodIterative Method一、引言在自然科学和工程技术中,很多问题的解决往往归结于求解线性代数方程组,例如电学中的网络问题,船体数学放样中建立三次样条函数问题,用差分法或者有限元方法解常微分方程组、偏微分方程的边值问题等,最后都归结为求解线性代数方程组.在中学代数中,我们学过二元、三元线性方程组.但在生产实际中所遇到的线性方程组,它的未知量往往不止两个、三个.那我们又该如何其求解呢?本文的主要内容就是以行列式、矩阵为工具讨论一些简单的线性方程组解的存在性、求解方法.具体地说就是要讨论以下几个问题:(1)线性方程组在什么情况下有解?也就是它有解的充要条件是什么?(2)假如没有解,当然不再讨论:如果有解,它究竟有多少个解?又怎么去求解?(3)假如只有一个解,那也简单;假如有多个解,解与解的关系又是怎么?(4)线性方程组有什么应用?经过深入的学习我们发现一些方程组的系数矩阵大多比较复杂,我们利用高等代数中的解法并不能得到它的解,我们用该怎么求解呢?经过数值分析这一门课程的学习我们知道关于线性方程组的数值解法一般两类,一类是直接法,另一类是迭代法.本文将简略介绍直接法中的最基本的Gauss消去法及其某些变形(这类方法是解低阶稠密矩阵方程组的有效方法)和详细介绍迭代法的一些基本理论及Jacobi 迭代、Gauss-Seidel 迭代法、超松弛迭代法以及使用MATLAB 如何进行线性方程组的快速求解.二、简单线性方程组的求解行列式按行展开定理【1】:n 阶行列式D 等于它的任一行元素与该行元素的对应代数余子式乘积之和.即11221,(1,2,).ni i i i in in ij ij i D a A a A a A a A i n ==+++==∑定理2【1】:行列式的某一行元素与另一行的对应元素的代数余子式的乘积之和等于零.1.克拉默法则(行列式)如果线性方程组11112211211222221122,,(1).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 +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩的系数行列式1112121222120,n n nn nna a a a a a D a a a =≠那么线性方程组(1)有唯一解:12,,,,.(2)i n D DD Dx x x x D DD D====其中111,111,11212,122,121,12,1,1,2,.i i n i i n i n n i ni nna ab a a a a b a a D i n a a b a a -+----==即D i 是把D 中的第i 列的元素换成线性方程组的常数项而得到的行列式.证明:为证明(2)式是线性方程组(1)的解,只需把它代入方程组(1)的每个方程,如果两端相等,则说明(2)确实是方程组(1)的解.将(2)式代入方程组(1)的第i 个方程组的左端,并注意把D i 按照第i 行展开,得()()()()[]nn n in i n n in n n i i i n n i i i n in i i n in i i A b A b A b A b a A b A b A b A b a A b A b A b A b a D D a D a D a D D D a D Da D D a ++++++++++++=+++=+++22112222212121121211112211221111()()()[]nn in n i n i n n in i i n in i i A a A a A a b A a A a A a b A a A a A a b D ++++++++++++=221122222112112211111根据行列式按行展开定理和定理2,可以看出,上式左端方括号只有b i 的系数是D ,而其他的b k (k ≠i )的系数都是零,故得()12121,1,2,,.n i i ini i D D Da a ab D b i n D DD D+++=⋅==这说明(2)式是方程组(1)的解. 再证解的唯一性. 任给方程组的一个解:x 1 = c 1, x 2 = c 2, … x n =c n , (3) 我们只要证明(3)与(2)相同即可.将(3)代入方程组(1),得()11112211211222221122,,4.n n n n n n nn n n a c a c a c b a c a c a c b a c a c a c b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩现在构造行列式nnn n nna a c a a a c a a a c a D c2112221211121111=给行列式的第2,3…,n 列分别乘以c 2,c 3,…,c n 后都加到第一列,得到.nnn nnn n n n nn n nn a a c a c a c a a a c a c a c a a a c a c a c a D c22211222222212111212121111++++++=根据(4)式,得12222211211D a a b a a b a a b D c nnn nn n ==,因D ≠0,所以,,,,2211DD c D Dc D D c n n ===这样,我们证明了(1)的任一解都是(2),所以(1)的解是唯一的.2.消元解法上面已经了解了解线性方程组的克拉默法则,但是使用克拉默法则是条件的,它要求线性方程组中方程的个数与未知量的个数相等,而且系数行列式不为零,可是在很多问题中,我们所遇到的线性方程组并不都是这样的,有时方程的个数虽与未知量的个数相等,但系数行列式等于零;有时甚至于方程的个数与未知量的个数都不相等,这时就无行列式可言了.那么对于一般的线性方程组,究竟该如何求解呢?定理3 [1]设线性方程组的(I )和(II )的增广矩阵分别为A 和B.如果A 可经过初等变换变为B ,那么线性方程组(I )和(II )是同解方程组.定理4(线性方程组有解的判定定理)[1]线性方程组11112211211222221122,,(5).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 +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩有解的充分必要条件是系数矩阵A 和增广矩阵B 有相同的秩,即秩A=秩B. 当秩A=秩B=n 时,方程组(5)有唯一解;当秩A=秩B<n 时,(5)有无穷多个解. 其中11121111211212222122221212,.n n n n n n nn n n nnn a a a a a a b a a a a a a b A B a a a a a a b ⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭证明:利用线性变换和第一种列初等变换将方程组(5)的系数矩阵A 和增广矩阵B 变为如下的矩阵,其中r 为A 的秩,1,1111,112,1222,12,1,11100100010010,.00100100000000000000000r nr n r n r n rn r r r rn r r r m c c d c c c c d c c C D c d c c c d d +++++++⎛⎫⎛⎫ ⎪⎪⎪⎪ ⎪ ⎪⎪⎪== ⎪ ⎪ ⎪⎪⎪ ⎪⎪ ⎪⎪ ⎪⎝⎭⎝⎭所以D 所对应的线性方程组为:112111,1112,122,11.,,(6)0,0.r n r n r r n i r i n i i r i n i i r r i rn i r r m x c x c x d x c x c x d x c x c x d d d ++++++++++=⎧⎪+++=⎪⎪⎪⎪+++=⎨⎪=⎪⎪⎪=⎪⎩由于初等变换不改变矩阵的秩,且根据定理3同解方程的充要条件,所以有(5)和(6)是同解方程组.所以讨论(5)的求解问题就归结为讨论(6)的求解问题 .下面我们分情况讨论(5)是否是有解及有解时该如何求解的问题.情况1:r<m,且d r+1,…d m 不全为零.不妨设d r+1不等于0,此时出现0=d r+1,矛盾,所以方程组(6)无解,因此方程组(5)也无解情况2:r=m 或虽然r<m 但d r+1,…全为零.这时方程组(6)的后m-r 个方程组或者不出现,或者全变为0=0.如果是后者,删除0=0的恒等式不影响方程组的解,所以方程组(6)的解同解于如下的方程组:112111,1112,122,1.,(7).r n r n rr n i r i n i i r i n i i r r i rn i r x c x c x d x c x c x d x c x c x d +++++++++=⎧⎪+++=⎪⎨⎪⎪+++=⎩这时又有两种情形:(a)当r = n 时,方程组(7)为1212,,(8).ni i i n x d x d x d =⎧⎪=⎪⎨⎪⎪=⎩所以此时方程组(7)有唯一解(8),因此方程组(5)有唯一解:,,,2121n i i i d x d x d x n ===(b)当r < n 时,把方程组(7)改写为如下方程组:⎪⎪⎩⎪⎪⎨⎧---=---=---=++++++.,,112111,21,2211,11n r rn r n r i rn i r r r i i n i r i i n i r i x c x c d x x c x c d x x c x c d x于是,让未知量12,,,r r n i i i x x x ++取任意一组数12,,,r r n ii i k k k ++,就可得到(7)的解:112111111,1122,12,1,,,(9),.r n r n r r n r r n n i r i n i i r i n i i r r r i rn i i i i i x d c k c k x d c k c k x d c k c k x k x k ++++++++⎧=---⎪=---⎪⎪⎪⎪=---⎨⎪=⎪⎪⎪=⎪⎩当然(9)也是(5)的一个解,反过来,由于(5)与(7)是同解方程组,所以(5)的任意一个解都必须满足(7),从而具有(9)的形式.由于12,,,r r n i i i k k k ++可以任意选取,所以用上述方法可以求出(5)的无穷多解.根据以上讨论,我们可以由情况1和情况(2)的讨论可知,或者r = m,或者r < m ,但01===++m r r d d ,方程组(5)有解,在这两种情况下都有,秩 D = r . 所以秩 A =秩C .反过来,设秩 A = 秩 C ,那么秩 D = r ,由此即得 r = m 或者r < m 但01===++m r r d d .因而由前面的情况2的讨论即知 ,方程组(5)有解.由情况2(a)知,当秩 A = 秩C = n ,方程组有唯一解.由情况2(b)知,当秩 A = 秩 C < n 时,方程组有唯一解.三、解复杂的线性方程组1.直接法直接法就是经过有限步数学计算即可求得方程组的精确解的方法(若计算过程中没有舍入误差).但实际运算中由于舍入误差的存在和影响,这种方法也只可求得线性方程组的近似解.下面将阐述这类算法中的最基本的Gauss 消去法及其某些变形.这类是解低阶稠密矩阵的有效方法.定理5(矩阵的LU 分解)【9]设A 为n 阶矩阵,如果A 的顺序主子式D i (i=1,2,…,n),则A可以分解为一个单位下三角阵L 和一个上三角阵U 的乘积,且这种分解是唯一的(1)Gauss 消去法 设有线性方程组11112211211222221122,,(10).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,其中1112111212222212,,.n n n n n n nn a a a x b a a a x bA x b x b a a a ⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪=== ⎪ ⎪ ⎪⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭ 其中A 为非奇异矩阵.用消去法去解方程组的基本思想是,用逐次消去未知数的方法把原来的方程组Ax = b 化为与其等价的三角方程组,而求解三角方程组就容易了.换句话说,上述过程就是用行的初等变换将原方程组系数矩阵化为简单形式,从而求解原方程组.之前所讲的消元解法是其的特例,就不再缀述了. 下面我们来讨论一般的解n 阶方程组的Gauss 消去法. 将(10)式记为A (1) x = b (1),其中A (1) = (a ij (1)) = (a ij ) , b (1) = b.①第一次消元.设a 11(1)不等于0,首先设行计数乘数m i1 = a i1(1)/a 11(1) (i=2,3,…,n),用-m i1乘式(10)的第1个方程,加到i (i=2,3,…,n )个方程上,消去(10)中的第2个方程知道n 个方程的未知数x 1,得到与式(10)等价的方程组(11)),2,1(,,00)1(11)1()2()1(11)1()2(),2()22121)2()2(2)2(2)2(22)1(1)1(12)1(11n i b m b b a m a a b x A b b b x x x a a a a a a a i i i j i ij ij n n nn n n n =-=-==⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛其中简记(②一般第k (1≦k ≦n-1)次消元.设第k -1步计算已经完成,即已计算好与式(10)等价的方程组(12) A (k)x = b (k),且已消去未知数x 1 , x 2 , x 3 …,x k-1,其中A (k)具有以下形式:⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛)()()()()1(2)2(22)1(1)1(12)1(11n nn n nk k kn k kk n n a a a a a a a a a设a (k)kk 不等于0,计算乘数m ik = a ik (k)/a kk (k)(i=k+1,…,n),用-m ik 乘式A(k)x = b (k)的第k 个方程加上第i (i=k+1,…,n)个方程,消去第k+1个方程直到第n 个方程的未知数x k ,得到与式(10)等价的方程组A(k+1)x = b (k+1).A (k+1)元素的计算公式为:),1,()()()1()()()1(n k j i b m b b a m a a k k ik k i k ik kj ik k ij k ij+=⎪⎩⎪⎨⎧-=-=++,显然A (k+1)的第一行直到第k 行与A (k)相同.③继续这一过程,直到完成第n-1次消元.最后得到与原方程等价的三角方程组 A (n) x=b (n). (13) 上述过程称为消元过程.求解线性方程组(11),设a ij (i)不等于0(i=1,2,…,n-1),易得求解公式()()()()()1/,(1,2,,2,1).()/.n n n n nn n k k k k k kj j kk j k x b a k n n x b a x a =+⎧=⎪=--⎨=-⎪⎩∑上式的求解过程称为回代过程. (2)Gauss 消去法的变形Gauss 消去法有很多变形,有的是Gauss 消去法的改进、改写,有的是用于某一类特殊性质矩阵的Gauss 消去法的简化.下面介绍Gauss 主元素消去法和追赶法 ①Gauss 主元素消去法由Gauss 消去法知道,在消元过程中可能会出现0)(=k kka 的情况,这时消去法将无法进行;即使在主元素0)(≠k kka 但很小时,用其作除数,也会导致其元素的数量级的严重增长和舍入误差的扩散,最后会使得计算解不可靠.对于一般矩阵来说,最好每一步都选取系数矩阵(或消元后的低阶矩阵)中绝对值最大的元素作为主元素,使Gauss 消去法具有较好的数值稳定性.②追赶法在一些实际问题中,例如解常微分方程边值问题,解热传导以及船体数学放样中建立三次样条函数等中,都会要求解系数矩阵为对角占优的三对角方程组11112222211111.i i i i i n n n n n n n n n b c x f a b c x f a b c x f a b c x f a b x f -----⎛⎫⎛⎫⎛⎫⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪⎪= ⎪⎪⎪ ⎪⎪ ⎪ ⎪⎪⎪ ⎪⎪⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭简记为Ax = f其中A 满足下列对角占优条件:)3();1,3,2(0,,)2(0)1(11111>>-=≠+≥>>n n i i a b n i c a c a b c b由系数矩阵A 的特点,可以将A 分解为两个三角阵的乘积,即A=LU. 其中L 为下三角矩阵,U 为上三角矩阵.下面说明这种分解是可能的.设⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=----11111213322111122211n n n n n n n n b a c b a c b a c b A βββαγαγαγα其中i i i γβα,,为待定未知量,比较上式两端得111111,,,,(2,3,,).(15),(1,2,,1).i i i i i i i i i b c b a i n c i n ααβαγγβαβ-====+===-由10,/,0,11111111<<=>>=ββα得b c c b b ,下面用归纳法证明0,(1,2,,)i i a c i n >≠=,01i β<<从而可以由(15)式求得i β证明:式(15)对于i = 1是成立的.现设(15)对i-1成立,求证对i 亦成立. 由归纳假设101-i <<β,又由于式(15)及A 的假设条件,有11≠≥->-≥-=--i i i i i i i i i i c b b b a αβαβα也就是10i <<β,由式(14)得到)1,,3,2(),/(),,3,2(1-=-==-=-n i a b c n i b i i i i i i i i i βββαα这就是说,由A 的假设条件完全确定了()()()i i i ,,γβα,实现了A 的LU 分解.求解A x =f 等价于解两个三角方程组L y = f 与U x = y,先后求解y 与x ,从而得到以下解三对角方程组的追赶法公式:步1:计算()i β的递推公式)1,,3,2(),/(,/1111-=-==-n i a b c b c i i i i i βββ步2:解L y = f :()().n),2,3,(i ,a -b / y a -f y ,/b f y 1-i i i 1-i i i i 111 ===β 步3:解U x = y: .,2,1)2,-n 1,-n (i ,x -y x ,y x 1i i i i n n ===+β将计算系数n 1-n 21ββββ→→→→ 及n 1-n 21y y y y →→→→ 的过程称为追的过程,将计算方程组的解121-n n x x x x →→→→ 的过程称为赶的过程.追赶法公式实际上就是把Gauss 消去法用到求解三对角方程组上去的结果.2.迭代法迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法.迭代法具有存储单较较少、程序设计简单、原始系数矩阵在计算过程中始终不变的优点,但存在收敛性及收敛速度方面的问题.迭代法是解大型系数矩阵方程组(尤其是由微分方程离散后得到的大型方程组)的重要方法.下面将介绍迭代法的一些基本理论及Jacobi 迭代法、Gauss-Seidel 迭代法、超松弛迭代法(SOR ).定理6(迭代法基本原理)【9】设有方程组x = Bx + f,对于任意初始向量x (0)及任意f ,解此方程的迭代解法(即x(k+1)=Bx(k)+ f)收敛的充要条件是ρ(B)<1.(1)Jacobi 迭代法 设有方程组),2,1(,1n i b x ai nj j ij==∑=记作Ax = b (16)A 为非奇异矩阵且a ij 不等于0 (i = 1,2,3,…,n).将A 分裂为A=D-L-U ,其中⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=--0000,0000,,1223113121,213231212211n n n n n n n n nn a a a a a a U a a a a a a L a a a D将式(16)第i (i=1,2,…,n) 个方程组用 a ii 去除再移项,得到等价方程组(17)),,2,1(),(11n i x a b a x nij j j ij i ii i =-=∑≠=简记为 x = B 0x + f,其中B 0=I - D -1A = D -1 (L+U),f = D -1b对于方程组(17)应用迭代法,得到(16)的Jacobi 迭代公式(18)次迭代向量为第其中()k x x x x x a b a x x x x x T k n k k k n i j i k jij i ii k i T n ),,(,)(1),,,)()(2)(1)(1)()1()0()0(2)0(10( =⎪⎪⎩⎪⎪⎨⎧-==∑≠=+设x (k)已经算出,由式(18)可计算下一次迭代向量x (k+1)显然迭代公式的矩阵形式为方法迭代矩阵称为其中初始向量)Jacobi B f x B x x k k 0)(0)1()0(,(⎪⎩⎪⎨⎧+=+.(2)Gauss-Seidel 迭代法由Jacobi 方法迭代公式可知,迭代的每一步计算过程,都是用x (k)的全部分量来计算x (k+1)的所有分量,显然在计算第i 个分量x i (k+1)时,已经计算出x 1(k+1), x 2(k+1),… x i-1(k+1)没有被利用.从直观上来看,最新计算出来的分量可能要比旧的分量要好一些.因此,对这些最新计算出来的第k+1次近似x (k+1)加以利用,就会得到所谓解的Gauss-Seidel 迭代法),,2,1,0(,(1(),,,(1)(11)1(1()0()0(2)0(1)0(n k x a x a b a x x x x x ni j k j ij i j k j ij i ij k in =--==∑∑+=-=++)初始向量).或写成(1)()(1)()11,(0,1,2,;1,2,,).1(.k k i i i i nk k i i ij iij j j j ii x x x k i n x b a x a x a ++==⎧=+==⎪⎨=--⎪⎩∑∑上面第二个式子利用了最新计算出来的变量x 1(k+1),第i 个式子利用了计算出来的最新分量x j (k+1)写成矩阵形式D x (k+1) = b+L x (k+1)+U x (k+1),(D - L) x (k+1)=b + U x (k), 若设(D-L)-1存在,则x (k+1) = (D - L)-1 U x (k) + (D - L)-1 b于是Gauss-Seidel 迭代公式的矩阵形式为x (k+1) = G x (k) + f,其中G = (D - L)-1 U,f = (D - L)-1 b(3)逐次超松弛迭代解法逐次超松弛迭代法是Gauss-Seidel 方法的一种加速方法,是解大型系数矩阵方程组的有效方法之一,它具有计算公式简单,程序设计简单,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子).设有方程组Ax = b (19),其中nn RA ⨯∈为非奇异矩阵,且a ii 不等于0(i=1,2,…,n),分解A 为 A = D - L - U设已知第k 次迭代向量x (k+1)的分量x j (k+1)(j=1,2,…,i-1),要求计算分量x i (k+1)首先用Gauss-Seidel 迭代法定义辅助量(20):),,2,1(,(11)(11)1()1(n i x ax a b a x ni j k j iji j k j ij i ii k i=--=∑∑+=-=++再把x i (k+1)取为x i (k) 与)1(+k ix 某一个平均值(即加权平均),得到(21))()1()()1()()1()()1(k i k ik i k ik i k ix x x x x x -+=+-=+++ωωω用(20)式代入(21)式,就得到解方程组Ax = b 的逐次超松弛迭代公式(22)⎪⎩⎪⎨⎧===--+=∑∑-==++),,2,1;,1,0(,),,,(())(2)(1)(11)()1()()1(n i k x x x x x a x a b a x x T k n k k k i j ni j k j ij k j ij i ii k i k i(ω其中ω称为松弛因子,或写成(1)()(1)()11,(0,1,2,1,2,,).(.k k i i i i nk k i i ij iij j j j ii x x x k i n x b a x a x a ω++==⎧=+==⎪⎨=--⎪⎩∑∑显然,ω=1时,解式(19)的SOR 方法就是Gauss-Seidel 迭代法,ω<1时,解式(22)为低松弛法,当ω>1时,称式(22)为超松弛法.四、解线性方程组的MATLAB 命令MATLAB 求解线性方程组:AX=B 或XA=B1. 在MATLAB 中,求解线性方程组时,主要采用除法运算符“/”和“\”.如: X=A\B 表示求矩阵方程AX =B 的解A\B 等效于A 的逆左乘B 矩阵,也就是inv(A)*B ;X =B/A 表示矩阵方程XA=B 的解,而B/A 等效于A 矩阵的逆右乘B 矩阵,也就B*inv(A). 对方程组X =A\B ,要求A 和B 用相同的行数,X 和B 有相同的列数,它的行数等于矩阵A 的列数,方程X =B/A 同理.2.如果矩阵A 不是方阵,其维数是m ×n ,则有:m = n ,恰定方程,求解精确解; m>n ,超定方程,寻求最小二乘解;m<n 不定方程,寻求基本解,其中至多有m 个非零元素. 针对不同的情况,MATLAB 将采用不同的算法来求解.(1)恰定方程组恰定方程组由n个未知数的n个方程构成,方程有唯一的一组解,其一般形式可用矩阵,向量写成如下形式:Ax=b 其中A是方阵,b是一个列向量;在线性代数教科书中,最常用的方程组解法有:(1)利用Cramer公式来求解法;(2)利用矩阵求逆解法,即x=A\b;(3)利用Gauss消去法;(4)利用LU法求解.一般来说,对维数不高,条件数不大的矩阵,上面四种解法所得的结果差别不大.前三种解法的真正意义是在其理论上,而不是实际的数值计算.MATLAB中,出于对算法稳定性的考虑,行列式及逆的计算大都在LU分解的基础上进行.在MATLAB中,求解这类方程组的命令十分简单,直接采用表达式:x=A\b.在MATLAB的指令解释器在确认变量A非奇异后,就对它进行LU分解,并最终给出解x;若矩阵A的条件数很大,MATLAB会提醒用户注意所得解的可靠性.如果矩阵A是奇异的,则Ax=b的解不存在,或者存在但不唯一;如果矩阵A接近奇异时,MATLAB将给出警告信息;如果发现A是奇异的,则计算结果为inf,并且给出警告信息;如果矩阵A是病态矩阵,也会给出警告信息.注意:在求解方程时,尽量不要用inv(A)*b命令,而应采用A\b的解法.因为后者的计算速度比前者快、精度高,尤其当矩阵A的维数比较大时.另外,除法命令的适用行较强,对于非方阵A,也能给出最小二乘解.(2)超定方程组对于方程组Ax=b,A为n×m矩阵,如果A列满秩,且n>m.则方程组没有精确解,此时称方程组为超定方程组.线性超定方程组经常遇到的问题是数据的曲线拟合.对于超定方程,在MATLAB中,利用左除命令(x=A\b)来寻求它的最小二乘解;还可以用广义逆来求,即x=pinv(A),所得的解不一定满足Ax=b,x只是最小二乘意义上的解.左除的方法是建立在奇异值分解基础之上,由此获得的解最可靠;广义逆法是建立在对原超定方程直接进行householder变换的基础上,其算法可靠性稍逊与奇异值求解,但速度较快;五、应用1.炼油厂模型某石油公司有5个炼油厂,每个炼油厂都生产5种石油产品:汽油、柴油、煤油、机油、液态石油气.已知从1桶原油中,第一个工厂生产出的汽油、柴油、煤油、机油、液态石油气分别是30、24、18、12、9L;第二、三、四、五个工厂从1桶原油中生产的这五种油分别是28、25、20、10、9;31、23、19、11、10;29、22、17、13、8;27、26、20、13、10L.现在需要104620L汽油,88010L柴油,68660L煤油,43240L机油,33690L液态石油气.本着节约资源与提高效益的原则,问给这5个工厂各安排多少桶原油来生产恰好满足这一需要?解:设分给5个炼油厂的原油桶数分别为x 1,x 2,x 3,x 4,x 5 根据题意我们可以得到以下方程组:⎪⎪⎪⎩⎪⎪⎪⎨⎧=++++=++++=++++=++++=++++336901081099,432401313111012,686602017192018,880102622232524,10462027293128305432154321543215432154321x x x x x x x x x x x x x x x x x x x x x x x x x方程组的系数行列式,0108010810991313111012201719201826222325242729312830≠==D所以方程组有唯一解.经计算知,D 1=864000,D 2=702000,D 3=648000,D 4=626400,D 5=1080000,所以1000580600,650,8005544332211==========D D x D Dx D D x D D x D D x ,,即给第一、二、三、四、五个工厂分别安排800,650,600,580,1000桶原油生产正好满足需要.用MA TLAB 实现如下:2.游船问题某公园在湖的周围设有甲、乙、丙三个游船出租点,游客可以在任意一处租船,也可以在任意一处还船.工作人员估计租船和还船的情况如下表示:还船处 甲乙 丙 借船处甲 乙 0.8 0.2 0.2 0 0 0.8 丙0.20.20.6即从甲处租的船中有80%的在甲处还船,有20%的在乙处还船,等等.为了游客的安全,公园同时要建立一个游船维修站.问游船修检修站建在那个点最好?显然,游船检修站应该修在拥有船只最多的那个出租点.但是,由于租船和还船的随机性,今天拥有船只最多的出租点不一定以后也经常拥有最多的船只.因此我们希望知道经过长时间的经营以后拥有船只最多的那个出租点.我们假定公园里的船只基本上每天都被人租用,设经过长时间的经营,甲、乙、丙处分别有x 1 , x 2 , x 3只船,则x 1 , x 2 , x 3应该满足以下的要求:⎪⎩⎪⎨⎧=+=+=++33223113216.02.0,2.02.0,2.02.08.0xx x x x x x x x x整理可得,⎪⎩⎪⎨⎧=-=+-=++.04.08.0,02.02.0,02.02.02.0-32321321x x x x x x x x即⎪⎩⎪⎨⎧=-=+-=++.02,05,0-32321321x x x x x x x x这表明,经过长期的经营以后,甲、乙、丙三个出租点分别拥有游船总数的316121,,.用MA TLAB 实现如下:由此不难看出,游船检修站应设在拥有船只最多的甲处最为合适.六.总结本文的主要内容就是以行列式、矩阵为工具讨论一些简单的线性方程组解的存在性、求解方法、解的结构以及应用.经过深入的学习我们发现一些方程组的系数矩阵大多比较复杂,我们利用高等代数中的解法并不能得到它的解,就试图用数值分析中的直接法中的最基本的Gauss消去法及其某些变形和迭代法的一些基本理论及Jacobi迭代法、Gauss-Seidel迭代法、超松弛迭代法,以及最小二乘法,并试图应用简单的数学类软件如MATLAB来实现求解.在实际学习和解决问题时,我们会发现很多问题最后的求解过程都是求解线性方程组,因此学习线性方程组对大学生具有重要意义.参考文献[1] 北京大学数学系. 高等代数[M]. 北京: 高等教育出版社, 1988.[2] 张禾瑞, 郝鈵新.高等代数(第四版)[M]. 北京: 高等教育出版社, 1999.[3] 丘维声. 高等代数[M]. 北京: 高等教育出版社, 1996.[4] 许绍元, 赵礼峰. 高等师范院校数学教学改革的研究与实践[J]. 淮北煤炭师范学院学报(自然科学版), 2(2004), 64-68.[5] 许绍元, 陈亮. 实变函数课程教学中培养学生科研能力的体会[J]. 淮北煤炭师范学院学报(自然科学版), 2(2003), 53-56.[6] 赵树嫄. 线性代数(第三版[M]). 北京: 中国人民大学出版社, 2006.[7] 史明仁. 线性代数600证明题详解[M]. 北京: 北京科学技术出版社, 1985.[8] 萧永震等. 空间解析几何解题指导[M]. 天津: 天津科学技术出版社, 1990.[9]陈辉,李文宇,张传芳数值计算方法哈尔滨哈尔滨工业大学出版社,2009.[10]李庆扬,易大义,王能超. 现代数值分析. 北京高等教育出版社,1995.[11]刘春风,何亚丽,应用数值分析北京冶金工业出版社 2005.指导教师职称成绩评语说明:1.成绩评定均采用五级分制,即优、良、中、及格、不及格.2. 评语内容包括:学术价值、实际意义、达到水平、学术观点及论证有无错误等.。
数值线性代数应用
数值线性代数应用数值线性代数是数学中的一个分支,主要研究线性方程组的数值解法以及矩阵的计算方法。
在实际应用中,数值线性代数广泛应用于各个领域,如物理学、工程学、计算机科学等。
以下将介绍数值线性代数的一些实际应用。
一、物理学中的应用在物理学中,研究各种物理现象往往需要建立数学模型,而数值线性代数提供了一种有效的方法来求解这些模型。
例如,在电力系统中,我们可以利用数值线性代数来分析电力网络中的电流、电压等参数。
在流体力学中,数值线性代数可以用于求解流体的速度场、压力场等。
在天体物理学中,数值线性代数可以用来求解宇宙的结构、宇宙射线等问题。
二、工程学中的应用工程学是应用科学的一个重要分支,它与产品设计、制造、运营等有关。
在工程学中,常常需要进行大规模的计算,如结构分析、优化设计等。
数值线性代数为工程学提供了一种高效的方法来求解这些问题。
例如,在结构力学中,数值线性代数可以用来分析结构的刚度、应力等。
在电子工程中,数值线性代数可以用来分析电路中的电流、电压等参数。
三、计算机科学中的应用计算机科学是现代科学的重要组成部分,它研究计算机的基本原理、方法和技术。
数值线性代数在计算机科学中有着广泛的应用。
例如,在计算机图形学中,数值线性代数可以用来处理图像、建模、渲染等。
在人工智能中,数值线性代数可以用来求解机器学习算法中的优化问题。
在计算机视觉中,数值线性代数可以用来处理图像、视频等。
综上所述,数值线性代数在物理学、工程学、计算机科学等领域具有广泛的应用。
它为研究者和工程师们提供了一种强大的工具,来解决各种复杂的数学问题和实际应用问题。
随着计算机技术的不断发展,数值线性代数将会得到更加广泛和深入的应用。
线性方程组的解法及应用研究
线性方程组的解法及应用研究一、引言线性方程组是数学中一个重要的概念和工具,广泛应用于自然科学、工程技术以及社会经济等领域。
解决线性方程组问题对于研究和应用具有重要的意义。
本文将从线性方程组的定义和基本性质出发,介绍线性方程组的解法和应用研究。
二、线性方程组的定义和基本性质线性方程组由一组形如a₁x₁ + a₂x₂ + ··· + aₙxₙ = b的线性等式组成,其中a₁, a₂, ···, aₙ为系数,x₁, x₂, ···, xₙ为未知数,b为常数。
线性方程组的解就是满足所有等式的未知数值的组合。
线性方程组的基本性质包括解的存在唯一性、线性方程组的线性组合、齐次和非齐次线性方程组等。
三、线性方程组的解法1. 列主元素消去法:将方程组化为阶梯型或行简化阶梯型,通过增广矩阵的行初等变换得到方程组的最简形式,进而求解出未知数的值。
2. 矩阵法:利用矩阵的乘法和逆运算,将线性方程组表示为矩阵的形式,通过求解矩阵的逆或使用矩阵计算的方法,得到线性方程组的解。
3. 克拉默法则:利用行列式的性质推导出克拉默法则,根据方程组的系数矩阵和常数向量求解未知数的值。
4. 向量空间方法:通过线性方程组的解空间和向量空间的关系,利用向量空间的定义、基、维度等概念,求解线性方程组的解。
四、线性方程组的应用研究1. 工程中的应用在工程领域,如电路分析、结构力学、流体力学等,常常需要求解线性方程组来描述系统的状态和行为。
例如,利用线性方程组求解电路网络中的电流和电压分布,可以进行电路设计和分析。
2. 经济学中的应用经济学中的很多问题可以建模为线性方程组,如供求关系、生产函数、投资问题等。
通过求解线性方程组,可以分析经济系统的均衡状态、优化决策以及经济政策的制定。
3. 自然科学中的应用在自然科学领域,线性方程组广泛应用于物理学、化学和生物学等学科中。
《应用数值分析》课件数值分析5.3线性方程组的数值解法
Step k:设ak(kk) ,0计算因子
mik
a(k) ik
/
a(k kk
)
(i k 1, ..., n)
且计算
a ( k 1) ij
b( k 1) i
a(k) ij
m
ik
a
(k kj
)
b(k ) i
mik bk(k )
(i, j k 1, ..., n)
n
bi (bi
aij * b j ) / aii
j i 1
2024/11/23
线性方程组的直接解法
11
计算量 /* Amount of Computation */
由于计算机中乘除 /* multiplications / divisions */ 运算的时 间远远超过加减 /* additions / subtractions */ 运算的时间,故 估计某种算法的运算量时,往往只估计乘除的次数,而且通 常以乘除次数的最高次幂为运算量的数量级。 (n k) 次
(k)
kk
k ,k1
0
a ( k 1) k 1,k 1
a(1) 1n
a(2) 2n
a(k) kn
a ( k 1) k 1,n
0
a ( k 1) n,k 1
a ( k 1) nn
第 6 章 不动点理论及应用 第 1 页 共 1 页
b(1) 1
b(2) 2
b( k ) k
b( k 1) k 1
b( k 1) n
xn
b(n) n
/
a(n) nn
n
b( i ) i
a
(i ij
《线性方程组的直接解法及其应用》研究综述
学院:建筑工程学院专业:结构工程组号:16 成绩:报告题目:《线性方程组的直接解法及其应用》研究学院:建工学院专业:结构工程组号:16号成员:xxx学院: 建筑工程学院 专业:结构工程 组号:16 成绩:《线性方程组的直接解法及其应用》研究第一章对象描述一、 《线性方程组的直接解法及其应用》描述在科技、工程、医学、经济等各个领域中,经常遇到求解n 阶线性方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++,,,22112222212*********m n mn m m n n n n b x a x a x a b x a x a x a b x a x a x a (1.1) 的问题.方程组(1.1)的系数),,2,1.(n j i a ij =和右端项),,2,1(n i b i =均为实数,且1b 、2b ,……,n b 不全为零。
方程组(1.1)可简记为b Ax =其中 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=mn m m n n a a a a a a a a a A 212222111211⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n x x x x 21 , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=m b b b b 21. 线性方程组的数值解法有两大类,一类是直接法,另一类是迭代法。
本次主要研究的是直接解法。
所谓直接法就是经过有限步算术运算,可求得线性方程组精确解的方法(若计算过程中没有舍入误差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得现行方程组的近似解。
这类算法中最基本的是高斯消元法及其某些变形,它是解决低阶稠密矩阵方程组及某些系数矩阵方程组的有效方法学院: 建筑工程学院 专业:结构工程 组号:16 成绩:二、 《线性方程组的直接解法及其应用》的相关概念1.特征值和特征向量设A 是一个n n ⨯阶实矩阵,若对于数λ,存在非零向量x ,使得x Ax λ=成立。
则称λ是A 的特征值(Characteristic Value),x 为A 的对应于λ的特征向量(Characteristic Vector)。
数值分析应用实例
线性方程组应用数值解法实例:
问题提出:如图是某地区交通网络图,设所有道路均 为单行道,图中箭头标识了交通方向。标识的数据为 高峰期每小时进出道路网络的车辆数。若进入每个交 叉点的车辆数等于离开该点的车辆数,则交通流量平 衡的条件得以满足,交通就不会出现堵塞。问各支路 交通流量各为多少时此交通流量达到平衡?
s – t = -200, s + v = 300, -u + v + x = 300, t + u - w = 300, -w + x = 100,
此线性方程组可由高斯消去法、矩阵三角分解法求解:
高斯消去法:
第一步:对增广矩阵进行消元 第二步:回代过程
矩阵的三角分解: (1)LU分解:对增广矩阵进行初等行变换,得到L(下三角矩阵),U(上三角矩阵)。 (2)用LU分解来解方程: ①将Ax = b转化为Lux = b ,令y = Ux ,得:Ly = b , 解出 y 。 ②由Ux = y 解出 x 。
插值函数应用实例:
问题提出:在用外接电源给电容器充电时,电容器两端的电压 V 将会随着充电时间 t 发生 变化,在一次实验时,通过测量得到的观测值见下表:
t
1
2
3
4
6
V
6.2
7.3
8.2
9.0
9.5
求充电时间在 9h, 10h,12h的电容器两端电压。
模型假设:假设电压变化是连续的。
此类问题可用拉格朗日插值法数值求解:
100
300
200
200
vx
300
BC E
s
u
A
tDw200 Nhomakorabea300模型假设:假设一个交通网络的交通流量达到平衡是指在该网络中每个交通 结点上进、出车辆数相等。
线性方程组的解法与应用
线性方程组的解法与应用线性方程组是数学中重要的概念,广泛应用于各个领域,例如工程、经济学和物理学等。
在本文中,将介绍线性方程组的解法和其在实际问题中的应用。
一、线性方程组的定义和基本概念线性方程组由一组线性方程组成,每个方程都是变量的线性组合。
一般形式可表示为:a₁₁x₁ + a₁₂x₂ + ... + a₁ₙxₙ = b₁a₂₁x₁ + a₂₂x₂ + ... + a₂ₙxₙ = b₂...aₙ₁x₁ + aₙ₂x₂ + ... + aₙₙxₙ = bₙ其中,a、x和b分别表示系数矩阵、变量矩阵和常数矩阵。
基于这个定义,我们可以通过不同的方法来解决线性方程组。
二、线性方程组的解法1. 列主元消元法列主元消元法是一种常用的求解线性方程组的方法。
它通过将系数矩阵化为上三角矩阵,从而得到方程组的解。
具体步骤如下:(1)选取一个非零列主元素,通常为当前行中绝对值最大的元素。
(2)将选中的列主元素所在列的其他元素转化为零,通过进行一系列的初等变换,如行交换和倍数变换。
(3)重复上述步骤,直到将系数矩阵转化为上三角矩阵。
2. 高斯-约当消元法高斯-约当消元法是另一种求解线性方程组的方法。
它通过将系数矩阵化为行阶梯矩阵,从而得到方程组的解。
具体步骤如下:(1)选取一个非零主元素,通常为当前列中绝对值最大的元素。
(2)将选中的主元素所在列的其他元素转化为零,通过进行一系列的初等变换,如行交换和倍数变换。
(3)重复上述步骤,直到将系数矩阵转化为行阶梯矩阵。
3. 矩阵求逆法矩阵求逆法是一种求解线性方程组的较为高效的方法。
它通过计算系数矩阵的逆矩阵,将方程组转化为逆矩阵与常数矩阵的乘积,从而得到方程组的解。
然而,该方法要求系数矩阵可逆,即行列式不等于零。
三、线性方程组在实际问题中的应用线性方程组广泛应用于各个领域,主要体现在以下方面:1. 工程领域在线性方程组的求解过程中,常常需要对方程组进行建模。
例如,在工程领域中,可以通过建立线性方程组来描述和解决各种物理力学问题,如结构力学、电路分析和信号处理等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性方程组的数值解法及其应用
一、问题描述
现实中的问题大多数是连续的,例如工程中求解结构受力后的变形,空气动力学中计算机翼周围的流场,气象预报中计算大气的流动。
这些现象大多是用若干个微分方程描述。
用数值方法求解微分方程(组),不论是差分方法还是有限元方法,通常都是通过对微分方程(连续的问题,未知数的维数是无限的)进行离散,得到线性方程组(离散问题,因为未知数的维数是有限的)。
因此线性方程组的求解在科学与工程中的应用非常广泛。
经典的求解线性方程组的方法一般分为两类:直接法和迭代法。
二、基本要求
1)掌握用MATLAB软件求线性方程初值问题数值解的方法;
2)通过实例学习用线性方程组模型解决简化的实际问题;
3)了解用高斯赛德尔列主元消去法和雅可比迭代法解线性方程组。
三、测试数据
1) 直接法:A=[0.002 52.88;4.573 -7.290];
b=[52.90;38.44];
2) 迭代法:A=[10 -1 -2;-1 10 -2;-1 -1 5];
b=[7.2;8.3;4.2];
四、算法程序及结果
1)
function[RA,RB,n,x]=liezy1(A,b)
B=[A b];n=length(b);RA=rank(A);
RB=rank(B);zhica=RB-RA;
if zhica>0,
disp('因为RA~=RB,所以此方程组无解.')
return
if RA==RB
if RA==n
disp('因为RA=RB=n,所以此方程组有唯一解.')
x=zeros(n,1);C=zeros(1,n+1);
for p=1:n-1
[Y,j]=max(abs(B(p:n,p)));C=B(p,:);
B(p,:)=B(j+p-1,:);B(j+p-1,:)=C;
for k=p+1:n
m=B(k,p)/B(p,p);
B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);
end
end
b=B(1:n,n+1);A=B(1:n,1:n);x(n)=b(n)/A(n,n);
for q=n-1:-1:1
x(q)=(b(q)-
sum(A(q,q+1:n)*x(q+1:n)))/A(q,q);
end
else
disp('因为RA=RB<n,所以此方程组有无穷多解.')
end
end
测试:
A=[0.002 52.88;4.573 -7.290];
>> b=[52.90;38.44];
>> [RA,RB,n,x]=liezy1(A,b)
因为RA=RB=n,所以此方程组有唯一解.
RA =
2
RB =
2
n =
2
x =
10.0000
1.0000
2)
function Jacobi(A,b,x0,P,error,max1)
[n n]=size(A);
x=zeros(n,1);
for k=1:max1
for j=1;n
x(j)=(b(j)-A(j,[1:j-1,j+1:n])*x0([1:j-
1,j+1:n]))/A(j,j);
end
x
errx=norm(x-x0,P);
x0=x;x1=A\b;
if(errx<error)
disp('迭代次数k,精确解x1和近似解x分别是:')
k
x1
x
return
end
end
if(errx>=error)
disp('请注意:Jacobi迭代次数已经超过最大迭代次数max1.') end
测试:
A=[10 -1 -2;-1 10 -2;-1 -1 5];
>>b=[7.2;8.3;4.2];
>>x0=[0;0;0];
>>Jacobi(A,b,x0,inf,0.001,100)
n =
3
x =
0.7200
迭代次数k,精确解x1和近似解x分别是:
k =
2
x1 =
1.1000
1.2000
1.3000
x =
0.7200
五、应用举例
1)营养学家配制一种具有1200卡,30g蛋白质及300mg维生素C的配餐。
有3种食物可供选用:果冻、鲜鱼和牛肉。
它们有下列每盎司(28.35g)的营养含量表
果冻鲜鱼牛肉
热量(卡)20100200
蛋白质132
维生素C302010
计算所需果冻、鲜鱼、牛肉的数量。
设果冻、鲜鱼、牛肉的数量为x1,x2,x3则
20x1+100x2+200x3=1200
x1+3x2+2x3=30
30x1+20x2+10x3=300
2)交通流量问题
下图给出了某城市部分单行街道的交通流量(每小时通过的车辆数)
图中有6个路口,已有9条街道记录了当天的平均车流量。
另有7处的平均车流量未知,试利用每个路口的进出车流量相等关系推算这7处的平均车流量。
其数学模型为线性方程组:
3)闭合经济问题
一个木工,一个电工,一个油漆工,三人相互同意彼此装修他们自己的房子。
在装修之前,他们达成了如下协议:(1)每人总共工作十天(包括给自已家干活在内);(2)每人的日工资根据一般的市价在60元~80元之间;(3)每人的日工资数应使得每人的总收入与总支出相等。
下面的表是他们协商后制定出的工作天数的分配方案:
木工电工油漆
工
216
在木工家的工作
天数
451
在电工家的工作
天数
在油漆工家的工
443
作天数
设木工的日工资为x1,电工的日工资为x2,油漆工的日工资为x3。
则木工的10个工作日总收入应该为10x1 ,而木工、电工及油漆工三人在木工家工作的天数分别为:2天, 1天, 6天,按日工资累计木工的总支出为2x1 + x2 + 6x3。
于是木工的收支平衡可描述为等式
同理,可建立描述电工,油漆工各自的收支平衡关系的另外两个等式,将三个等式联立,可得描述实际问题的方程组。
六、实训小结
通过本次实训,我们明白了如何用MATLAB解线性方程组,也了解了线性方程组的两种解法:直接法和迭代法,如高斯列主元消去法、雅克比迭代法,在实训过程中也碰到了一些困难,但我们都一一解决了,既增加了知识面,也加强了理解,此次实训我们分工明确,收获颇丰,更加明白了线性方程组,或者说数学在生活中的重要应用。
七、参考文献
数值分析 中国科技大学出版 朱晓琳编
数学软件 MATLAB 5.3。