线性方程组的直接解法命令(直接调用)
(完整word版)线性方程组的直接解法及matlab的实现

本科毕业论文(2010 届)题目线性方程组的直接解法及matlab的实现学院数学与信息工程学院专业数学与应用数学班级2006级数学1 班学号0604010127学生姓名胡婷婷指导教师王洁完成日期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。
线性方程组直接解法

14/87
算法 1.3 LU 分解
1: 2: 3: 4: 5: 6: 7: 8:
for k = 1 to n − 1 do for i = k + 1 to n do aik = aik /akk for j = k + 1 to n do aij = aij − aik akj end for end for end for
其中
li2 =
ai2
(1) (1)
, i = 3, 4, . . . , n.
a22
ln2 0 · · · 1
1 (1) 用 L− , 并将所得到的矩阵记为 A(2) , 则 2 左乘 A a11 a12 a13 (1) 0 a(1) 22 a23 0 0 a(2) 1 −1 −1 A(2) = L− 33 2 A = L2 L1 A = . . . . . . . . . (2) 0 0 an3
k=i+1
加上回代过程的运算量 O(n2 ), 总运算量为
2 3 n + O(n2 ) 3
12/87
† 评价算法的一个主要指标是执行时间, 但这依赖于计算机硬件和编 程技巧等, 因此直接给出算法执行时间是不太现实的. 所以我们通常 是统计算法中算术运算 (加减乘除) 的次数.
† 在数值算法中, 大多仅仅涉及加减乘除和开方运算. 一般地, 加减运 算次数与乘法运算次数具有相同的量级, 而除法运算和开方运算次 数具有更低的量级.
· · · a1n (1) · · · a2n (2) · · · a3n . .. . · · · ann
(2)
9/87
(k−1) • 依此类推, 假定 akk ̸= 0 (k = 3, 4, . . . , n − 1), 则我们可以构造一系 列的矩阵 L3 , L4 , . . . , Ln−1 , 使得 a11 a12 a13 · · · a1n (1) (1) 0 a(1) 22 a23 · · · a2n 0 0 a(2) · · · a(2) 1 −1 −1 L− · · · L L A = ≜ U → 上三角 33 3 n n−1 2 1 . . . .. . . . . . . . (n−1) 0 0 0 · · · ann
解线性方程组的直接方法

(1.5)
消去法的回代过程是解上三角形方程组(1.5).我们从方程组(1.5)的第三个方 x3 6 / 6 1 ; 程解得 然后将它代入第二个方程得到
x2 ( 5 x3 ) / 3 2;
最后,将 x3 1, x2 2 代第一个方程得到
x1 (3 2 x2 3 x3 ) / 2 2.
②
(n+1)n/2次运算
i 1 l11 bi lij x j l21 l22 j 1 A xi , i 1, , n lii l l l nn n1 n 2
③
(n+1)n/2次运算
n u11 u12 u1n bi uij x j u22 u2 n j i 1 A x , i n, ,1 i uii u nn
1,2,...,n)
( 1 .2 )
Ax b,
a1n a2 n , ann
§1 1.1 Gauss 消去法 本章主要介绍求解线性方程组(1.1)的直接法。所谓直接法,就是不考虑 计算过程的舍入误差时,经有限次数的运算便可求得方程组准确解的方法.我 们还将在§5中对计算过程中的舍入误差作一些初步分析.
a11 a 21 A, b ... an 2
之间有一对应关系.不难看出:
a12 a22 ... an 2
... ... ... ...
a1n a2 n ... ann
b1 b2 ... bn
(1.3)
(1)交换矩阵(1.3)的第p,q两行(记作 的第p,q两个方程;
(1.8)
(1.9)
(1.9)式是消元过程的一般计算公式.式中作分母的元素
第二章 线性方程组的直接解法

a i(kk ) l ik = ( k ) a kk a ( k +1) = a ( k ) − l a ( k ) ij ik kj ij ( k +1) = 0 a ik b ( k +1) = b ( k ) − l b ( k ) i ik k i
( i = k + 1, ⋯ , n ) ( i , j = k + 1, ⋯ , n ) ( i = k + 1, ⋯ , n ) ( i = k + 1, ⋯ , n )
定理2 定理2.1 高斯消元法消元过程能进行到底的充要条件是系 n- 阶顺序主子式不为零; Ax=b 能用高斯消元 数阵A的 数阵 A 的 1 到 n-1 阶顺序主子式不为零 ; Ax=b能用高斯消元 法解的充要条件是A的各阶顺序主子式不为零 的各阶顺序主子式不为零. 法解的充要条件是 的各阶顺序主子式不为零.
(i=2,3,⋯,k) )
(i ) 显然, Di ≠ 0 ↔ a ii ≠ 0 , 可知,消元过程能进行到底的充 显然, 可知, 要条件是D 要条件是 i≠0 ,(i=1,2,⋯,n-1),若要回代过程也能完成,还应 , 若要回代过程也能完成, 加上D | | ,综合上述有: 加上 n=|A|≠0,综合上述有:
⋯
( a kkk )
⋮
( a nkk )
⋯ a 1(1 ) b1(1 ) n (2) (2) ⋯ a 2 n b2 ⋯ ⋯ ⋯ (k ) (k ) ⋯ a kn b k ⋯ ⋮ ⋮ (k ) (k ) ⋯ a nn b n
7
结束
本次消元的目的是对框内部分作类似第一次消元的处 ( (k 消掉第k+1到第 个方程中的 k项,即把 akk ) ,k到 ank ) 化 到第n个方程中的 理,消掉第 到第 个方程中的x +1 为零.计算公式如下: 为零.计算公式如下:
解线性方程组的直接解法

解线性方程组的直接解法一、实验目的及要求关于线性方程组的数值解法一般分为两大类:直接法与迭代法。
直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。
通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。
二、相关理论知识求解线性方程组的直接方法有以下几种:1、利用左除运算符直接求解线性方程组为bx\=即可。
AAx=,则输入b2、列主元的高斯消元法程序流程图:输入系数矩阵A,向量b,输出线性方程组的解x。
根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行;对于1p:1-=n选择第p列中最大元,并且交换行;消元计算;回代求解。
(此部分可以参看课本第150页相关算法)3、利用矩阵的分解求解线性方程组(1)LU分解调用matlab中的函数lu即可,调用格式如下:[L,U]=lu(A)注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。
(2)平方根法调用matlab 中的函数chol 即可,调用格式如下:R=chol (A )输出的是一个上三角矩阵R ,使得R R A T =。
三、研究、解答以下问题问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数):⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--------=19631699723723312312A ,⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=71636b 解答:程序:A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19];R=chol(A)b=[6 3 -16 7]';y=inv(R')*b %y=R'\bx=inv(R)*y %x=R\y结果:R =3.4641 -0.8660 0.5774 0.28870 4.7170 -1.3780 -0.58300 0 9.8371 -0.70850 0 0 4.2514y =1.73210.9540-1.59451.3940x =0.54630.2023-0.13850.3279问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数):⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----=8162517623158765211331056897031354376231A ,⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=715513252b解答:程序:A=[1/3 -2 76 3/4 5;3 1/sqrt(3) 0 -7 89;56 0 -1 3 13;21 65 -7 8 15;23 76 51 62 81];b=[2/sqrt(5);-2;3;51;5/sqrt(71)];[L,U]=lu(A)y=inv(L)*bx=inv(U)*y结果:L = 0.0060 -0.0263 1.0000 0 00.0536 0.0076 -0.0044 0.1747 1.00001.0000 0 0 0 00.3750 0.8553 -0.6540 1.0000 00.4107 1.0000 0 0 0U =56.0000 0 -1.0000 3.0000 13.00000 76.0000 51.4107 60.7679 75.66070 0 77.3589 2.3313 6.91370 0 0 -43.5728 -50.06310 0 0 0 96.5050y =3.0000-0.63880.859850.9836-11.0590x =0.13670.90040.0526-1.0384-0.1146问题3、利用列主元的高斯消去法,求解下列方程组:⎪⎪⎩⎪⎪⎨⎧=+--=--+=-+-=+-+01002010100511.030520001.0204321432143214321x x x x x x x x x x x x x x x x解答:程序:function [RA,RB,n,X]=liezhu(A,b)B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica>0disp('Çë×¢Ò⣺RA~=RB£¬ËùÒÔ´Ë·½³Ì×éÎ޽⡣')returnendif RA==RBif RA==ndisp('Çë×¢Ò⣺ÒòΪ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,:);for k=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1)endendb=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);for q=n-1:-1:1X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);endelsedisp('Çë×¢Ò⣺ÒòΪRA=RB¡´n£¬ËùÒÔ´Ë·½³ÌÓÐÎÞÇî¶à½â¡£') endend键入A=[1 20 -1 0.0012 -5 30 -0.15 1 -100 -102 -100 -1 1];b=[0;1;0;0];[RA,RB,n,X]=liezhu(A,b)结果:请注意:因为RA=RB=n,所以此方程组有唯一解。
6第六章 线性方程组的直接解法

( 3) ij
a12
( 2) a22
a13
a1n
0 0 0
( 2) ( 2) a23 a2 n ( 3) ( 3) a33 a3 n
0 0
( 3) ( 3) an a 3 nn
b1 ( 2) b2 ( 3) b3 ( 3) bn
即 其中
Numerical Analysis 第二步: 若 (2) 22
a
0
2015/11/6
J. G. Liu
a1n a a
( 2) 2n
( 2) nn
b1 ( 2) b2 ( 2) bn
, a 11
a 第i行 第2行 a ( 2)
A b
1 2 3
2 5 1
3 14 3 14r 2 r 1 2 r2 3r1 0 1 4 10 2 18 3 1 0 5 4 22 5 20
School of Math. & Phys.
9
North China Elec. P.U.
( 2) n
( 2) nn
b
( 2) i
ai1 bi b1 a11
运算量: (n-1)*(n+1)
11 North China Elec. P.U.
School of Math. & Phys.
a11 a12 ( 2) 0 a22 0 a ( 2) n2
a a a
0 0
(1) 13 (2) 23 (3) 33
a a
0
解线性方程组的直接方法

或写为矩阵形式
a11 a21
a12
a22
a1n x1 b1
a2n
x2
b2
,
am1 am2 amn xn bm
(2.1)
17
简记为 Ax b. 例1 用消去法解方程组
x1 x2 x3 6,
4x2 x3 5,
2x1 2x2 x3 1.
(2.2) (2.3) (2.4)
其中用 r表i 示矩阵的第 行i . 由此看出,用消去法解方程组的基本思想是用逐次消
去未知数的方法把原方程组 Ax 化b为与其等价的三角 形方程组,而求解三角形方程组可用回代的方法.
上述过程就是用行的初等变换将原方程组系数矩阵化
为简单形式(上三角矩阵),从而将求解原方程组(2.1)的
问题转化为求解简单方程组的问题.
x
j
)/ ai(ii)
(i n1,n2,,1).
(2) 如果 为A非奇异矩阵,则可通过高斯消去法(及交
换两行的初等变换)将方程组 Ax约b化为(2.10).
29
算法1(高斯算法)
设 AR mn (m 1), s min( m1,n), 如果
a(k) kk
0(k
1,2,,s),
本算法用高斯方法将
非奇异矩阵 P使得
设 A为 n阶矩阵,则存在一个
J1(1)
P1 AP
J 2 (2 )
,
J r (r )
13
其中
i
1
i
J
i
(i
)
i 1
i ni ni
r
ni 1(i 1,2,,r),且 ni n. i1
为若当(Jordan)块.
数值分析-线性方程组的直接解法

算法 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