计算方法 第六章 解线性方程组的直接法
解线性方程组的直接方法
解线性方程组的直接方法一、高斯消元法高斯消元法是解线性方程组最常用的方法之一、它通过一系列的消元操作,将线性方程组转化为阶梯型方程组,从而求解未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成增广矩阵的形式。
增广矩阵是一个n行n+1列的矩阵,其中前n列是线性方程组的系数矩阵,第n+1列是等号右边的常数。
3.通过初等行变换(交换行、数乘行、行加行)将增广矩阵化为阶梯型矩阵。
具体步骤如下:a.首先,找到第一个非零元素所在的列,将它所在的行视为第一行。
b.将第一行的第一个非零元素(主元)变成1,称为主元素。
c.将主元所在列的其他元素(次元素)变为0,使得主元所在列的其他元素只有主元素是非零的。
d.再找到第一个非零元素所在的列,将它所在的行视为第二行,并重复上述步骤,直到将增广矩阵化为阶梯型矩阵。
4.根据阶梯型矩阵求解未知数的值。
具体步骤如下:a.从最后一行开始,依次求解每个未知数。
首先,将最后一行中非零元素所在的列作为含有该未知数的方程,将该未知数的系数设为1b.将含有该未知数的方程中其他未知数的系数设为0,并对其他方程进行相应的变换,使得该未知数所在列的其他元素都为0。
c.重复上述步骤,直到求解出所有未知数的值。
高斯消元法的优点是简单易懂、容易实现,但当线性方程组的系数矩阵接近奇异矩阵时,计算精度可能会降低。
二、矩阵求逆法矩阵求逆法是解线性方程组的另一种直接方法。
它通过对系数矩阵求逆,然后与常数矩阵相乘,得到未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成矩阵方程的形式,即Ax=b,其中A是一个n阶方阵,x和b分别是n维列向量。
3.求系数矩阵A的逆矩阵A^-1a. 首先,计算系数矩阵A的行列式det(A)。
b. 判断det(A)是否为0,如果det(A)=0,则该线性方程组无解或有无穷多解;如果det(A)≠0,则系数矩阵A可逆。
解线性方程组的直接方法
(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)式是消元过程的一般计算公式.式中作分母的元素
线性方程组的直接法和迭代法
线性方程组的直接法直接法就是经il有限步算术运算,无需迭代可直接求得方程组精确解的方法。
线性方程组迭代法迭代法就是用某种极限11程去逐步JlifiSIl方程组精确解的方法•该方法具有对廿算机的存贮单元需求少,程序设廿简单、原始系数拒阵在it算过程中不变等优点,是求辭大里棉疏矩阵方程组的重要方法•迭代法不是用有限步运算求精确齡, 而是通过迭代产Sififfl解JI近精确解.如Jacobi H代、Gauss— Seidel迭代、SOR 迭代法等。
1. 线性方程组的直接法直接法就是经11有限步算术运算,无需迭代可直接求得方程组精确解的方法。
1.1 Cramer 法则Cramer法则用于判飾具有n个未知数的n个线性方程的方程组解的悄况。
当方程组的系数行列式不等干零时,方程组有解II解唯一。
如果方程组无齡或者有两个不同的解时,则系数行列式必为零。
如果齐次线性方程组的系数行列式不等于零,则没有非零解。
如果齐次线性方程组有非零解,则系数行列式必为零。
定理1如果方程组Ax = b中D = |A|H0,则Ax = b有解,目解事唯一的,解为X'=¥'x2=*'.%=*,Di是D巾第i列换成向量b所得的行列式。
Cramer法则解n元方程组有两个前提条件:1、未知数的个数等干方程的个数。
2、系数行列式不等于零时,线性方程组x x + x 2 + x 3 = a ax x 4- x 2 + = 1 有唯一解。
X x + 兀2 + ax3 = 11 1\-a \-a =_((/_ 1),0 G — l所以当dHl 时,方程组有唯一解。
定理2当齐次线性方程级Ar = O, |4卜°时该方程组有唯一的零解。
定理3齐次线性方程组曲=0有非零解<=>H = 0o1.2Gauss 消元法Gauss 消元法是线性代数中的一个算法,可用来为线11方程组求解,求出 矩晖的扶,以及求岀可逆方阵的逆葩阵。
解线性代数方程
解线性代数方程————————————————————————————————作者:————————————————————————————————日期:求解线性方程组的直接解法5.3特殊矩阵的三角分解①实对称矩阵的LDL T分解设A是实对称阵,且A的所有顺序主子式均不为零,则LDR分解中R=L T, 故可用以作LDL T分解.这就是说,当A的对角元素非零时,我们可以作LU分解,也就得到LDL T分解,L相同,是单位上三角阵,U的对角元素构成D.不过没有利用对称性,存储量运算量都未能节省—预计是一半。
试用n=3的计算表格说明如何实现节省。
d1=u11 =a11u12=a12l21=u12/d1u13=a13l31=u13/d1d2=u22=a22-l21u12u23=a23-l21u13l32=u23/d2u33=a33-l31u13-l32u23这样,可用上半部元素逐列计算D,L T。
也可用下半部元素逐行计算L,D。
引进輔助量t1, t2代替u1j,u2j,并利用对称性得到:d1=a11t1=a21l21= t1/d1d2= a22-t1l21t1=a31 l31=t1/d1t2=a32-t1l21l32=t2/d2d3=a33-t1l31-t2l32据此不难写出LDL T分解A=LDL T的计算公式和程序(逐行计算L,D).d1=a11for i=2:nfor j=1:i-1t j=a ij-l j1t1-l j2t2-…-l j,j-1t j-1l ij=t j/d jendd i=a ii-l i1t1-l i2t2-…- l i,i-1t i-1end存储约n(n+1)/2单元,乘加运算各约n3/6.利用LDL T分解解Ax=b分四步:1.分解A=LDL T2.解Lg=b 求g3.解Dy=g 求y4.解L T x=y 求x②实对称正定矩阵的LL T分解A实对称正定时顺序主子式皆正,可作LDL T,D的对角元素皆正,有正的平方根。
解线性方程组的直接方法
解线性方程组的直接方法1.1 主元的选取与算法的稳定性1.1.1问题提出Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
1.1.2实验内容考虑线性方程组n n n R b R A b Ax ∈∈=⨯,,编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。
1.1.3实验要求(1)取矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。
取10n =计算矩阵的条件数。
让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数20n =或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)将上述矩阵A中的主元改为0.00006再重新作一次数值实验看看。
(5)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
1.1.4实验过程(1)程序:clear;clc;a=input('是否调整消元次序(是:1,否:0)');n=input('系数矩阵的阶数:');%构造题中给定形式的矩阵A(1,1)=6;A(1,2)=1;A(1,n+1)=7;%第n+1列取题中的bfor i=1:(n-2);A(i+1,i)=8;A(i+1,i+1)=6;A(i+1,i+2)=1;A(i+1,n+1)=15;end;A(n,n-1)=8;A(n,n)=6;A(n,n+1)=14;%自动消元if a==0;for i=1:(n-1);for j=(i+1):n;x=A(j,i)/A(i,i);for k=1:(n+1);A(j,k)=A(j,k)-x*A(i,k);end;end;end;y(n)=A(n,n+1)/A(n,n);for i=2:n;y(n-i+1)=A(n-i+1,n+1);for j=1:(i-1);y(n-i+1)=y(n-i+1)-A(n-i+1,n-j+1)*y(n-j+1);end;y(n-i+1)=y(n-i+1)/A(n-i+1,n-i+1);end;yend;%手动控制消元次序if a==1;for i=1:(n-1);A %显示每步消元的结果m=input('请选取作为主消元行的行号');for l=1:(n+1);c=A(i,l);A(i,l)=A(m,l);A(m,l)=c;end;for j=(i+1):n;x=A(j,i)/A(i,i);for k=1:(n+1);A(j,k)=A(j,k)-x*A(i,k);end;end;end;y(n)=A(n,n+1)/A(n,n);for i=2:n;y(n-i+1)=A(n-i+1,n+1);for j=1:(i-1);y(n-i+1)=y(n-i+1)-A(n-i+1,n-j+1)*y(n-j+1);end;y(n-i+1)=y(n-i+1)/A(n-i+1,n-i+1);end;yend;(2)数值实验结果及分析:1、根据要求当10n=时用Matlab算得Cond(A)=1727.6,让程序自动选主元,x=与精确解一致。
计算方法引论-第六章
• 例3(续) 2 2 3 1
2 2 3
4
7
7
2
1
3 1
2 4 5 1 2 1
6
• LU分解:顺序主子式非零,det(Ak)≠0,k=1,2,…,n-1则可
唯一分解A=LU,单位下三角阵与上三角阵之积
1
l21 1
(3) L ln
u22
计算方法引论( 第三版)
6.17
徐萃薇、孙绳武 高教2007
直接LU分解 (续)
• 计算表格
u11=a11
u12=a12
u13=a13
l21=a21/u11
u22=a22-l21u12
u23=a23-l21u13
l31=a31/u11 l32=(a32-l31u12)/ u22 u33=a33-l31u13- l32u23 – 也可逐行算,或逐列算,或其它可行次序算
l31=a31/u11 l32=(a32-l31u12)/ u22 u33=a33-l31u13- l32u23
• LDR
分解
for j = 1:n for i=2:j
aij aij ai1a1j ai2a2 j
end
ai,i1ai1, j
(计算 uij)
for i= j+1:n aij (aij ai1a1 j ai 2a2 j ai, j1a j1, j ) / ajj (计算 lij)
计算方法引论:数值代数
解线性方程组的直接法 解线性方程组最小二乘问题 解线性方程组的迭代法 矩阵特征值和特征向量的计算 非线性方程及非线性方程组解法
第六章 解线性方程组的直接法
• Gauss消去法 • 主元素法 • LU分解 • LLT分解和LDLT分解 • 误差分析
线性方程组的直接解法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 )
数值分析(李庆扬)第六章资料
(n1) B (n) g
若收敛
x x { (k)} * ,则
x* Bx* g
n 0,1,2,
即
(I B)x* g D1Ax* D1b
Ax* b
故如果序列收敛, 则收敛到解.B 称迭代矩阵.
例:用Jacobi迭代法求解 1x01x1 10xx2222xx337823 x1 x2 5x3 42
k
k
即x是方程组Ax b的解。
引入误差向量
(k 1) x(k 1) x
所以 lim x(k) x 等价于 lim (k) 0
k
k
由
x(k 1) Mx (k ) g
x Mx g
则可得
(k 1) M (k )
(k ) M (k 1) M k (0)
问题是在什么条件下
满足
x(k1) Bx(k) g (k 0,1, 2, )
此过程所给出的迭代法称为Jacobi迭代法,又称简单
迭代法。
Jacobid迭代的矩阵形式
0
B
b21
b12
0
b1n 1
b2n
0
0 1
0 1
0
b21
b 12 1
b1n b 2n
b b
n1
n2
0
0
0
1
, n).
0 b12 b13 若记 B b21 0 b23
bn1 bn2 bn3
b1n1 b1n
g1
b2n1
b2
n
g
g
2
bnn1 0
gn
则方程组可简记为 x Bx g
选初值向量x(0)代入 x(1) , x(1) Bx(0) g,代入x(1)
数值分析6-1-0
(1)消元: (1) 2 x1 4 x2 2 x3 6 (1) 于是: (2) 3x2 6 x3 3 (4) (3) 12 x3 3 (6)
(2)回代:
3 1 x3 , x2 , 2 4
3 x1 2
10
二、计算过程:
( 2) ij
a m a
a
( k 1) ij
a
(k ) ij
bi( k 1) bi( k ) mik bk( k )
i, j k 1,, n i k 1,, n
14
当经过k n 1步后, ( A , b )将化为
(1) (1)
(1 a11) ( n) (n) (A ,b ) (1 a12)
1 2 , x2 3 3
用小主元作除数, 致使其它元素的 数量级大大增加, 舍入误差的扩散 将准确解淹没了。
1. a 0,
k kk
2. a a
k kk
k ik
不行
21
§2.主元素消去法
*全主元素消去法: 一、思路
选取
a
k kk
max a
k ij
二、计算过程
1、实例
12 x1 3x2 3x3 15 (1) 18 x1 3x2 x3 15 (2) x x x 6 (3) 1 2 3
16
三、Gauss消去法的运算量
消元 : n - 1步, 第k步变换n-k行,每行需先求倍数,
再从n 1-k个元素的倍数
作第k步消元乘除法运算总次数为
(n k )(1 n k 1)次
完成全部n 1步消元需作乘除法运算总次数为
数值分析-线性方程组的直接解法
算法 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
计算方法-解线性方程组的直接法实验报告
cout<<endl;
for(k=i+1;k<m;k++)
{
l[k][i]=a[k][i]/a[i][i];
for(r=i;r<m+1;r++) /*化成三角阵*/
a[k][r]=a[k][r]-l[k][i]*a[i][r];
}
}
x[m-1]=a[m-1][m]/a[m-1][m-1];
{
int i,j;
float t,s1,s2;
float y[100];
for(i=1;i<=n;i++) /*第一次回代过程开始*/
{
s1=0;
for(j=1;j<i;j++)
{
t=-l[i][j];
s1=s1+t*y[j];
}
y[i]=(b[i]+s1)/l[i][i];
}
for(i=n;i>=1;i--) /*第二次回代过程开始*/
s2=s2+l[i][k]*u[k][r];
l[i][r]=(a[i][r]-s2)/u[r][r];
}
}
printf("array L:\n");/*输出矩阵L*/ for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%7.3f ",l[i][j]);
printf("\n");
{
s2=0;
for(j=n;j>i;j--)
计算方法答案王能超
计算方法答案王能超【篇一:计算方法习题集及实验指导书】s=txt>计算机科学与技术系檀明2008-02-10课程性质及目的要求(一)课程性质自计算机问世以来,科学计算一直是计算机应用的一个重要领域,数值计算方法是解决各种复杂的科学计算问题的理论与技术的基础。
《计算方法》课程讨论用于科学计算中的一些最基本、最常用的算法,不但具有数学的抽象性与严密的科学性的特点,而且具有应用的高度技术性的特点。
它对于培养从事计算机应用的科技人才有着重要的作用,是计算机应用专业(本科段)的一门重要的技术基础课程。
(二)目的要求通过本课程的学习和上机实验,了解用计算机解决科学计算问题的方法特点,掌握计算方法中的一些基本概念、基本公式和相应的算法流程,提高根据算法描述设计高级语言程序并进行验证的技能。
在学习过程中,应注重理解和应用,在搞清基本原理和基本概念的基础上,通过习题、编程和上机等环节,巩固和加深已学的内容,掌握重要的算法及其应用。
注重理论与算法的学习和应用相结合,强调编程及上机计算的技能培养,是本课程不同于一般数学课程的重要特点。
(三)学习方法指导1.循序渐进逐章学习本课程从第二章开始,每章都讨论一个大类的算法。
虽然各算法是相对独立的,但是也存在相互联系与前后继承的关系。
前面的概念和算法学好了,后面的内容也就容易学,越学越感到容易。
前面的内容没有学好,后面就会感到难学,甚至会出现越来越感到困难、失去学习信心的情况。
2.稳扎稳打融会贯通学习要扎实、要讲求实效。
每一个重要的概念和公式,都会搞清楚,做到融会贯通。
只有这样,才能取得学习的学习效果。
3.多学练勤做习题教材及本习题集中的每一章都附有适量的习题,可以帮助考生巩固和加深理解所学的知识,提高解题能力。
因此,在学习过程中,应当适合习题进行思考,应当尽可能多做习题,遇到某些不会做的题,应三思之后再请老师给予提示。
4.抓住特点前后联系本课程只讲了五大类算法。
每类算法都是针对一类特定的计算问题,都有其自身的特点。
线性方程组的直接解法
线性方程组的直接解法
线性方程组(linear equation system)是一类几何问题,也是解决线性系统和代数问题的重要方法,线性方程组由多个联立方程组成,这些方程中也可能含有未知量。
直接解法是把数学模型转换为数值模型,并给出实现其解题步骤的算法,它不同于间接求解的方法,既不做任何假设,也不处理不确定性问题,只是简单地直接求解线性方程组。
解线性方程组的直接解法主要分为三种,分别是高斯消元法、列主元消去法和列坐标变换法。
高斯消元法是一种比较常用的方法,主要是把线性方程组的未知量从左到右一步步求出来,其中用到的主要技术是把矩阵中部分元素消去为零,以便求解不定线性方程组的未知量。
而列主元消去法则是以一列为主元,去消除其他联立方程中出现的此列中的变量,从而最终求出其他未知变量的值。
最后,列坐标变换法是将线性方程组转换为一个更有利于求解的矩阵,其中未知量可以直接求得解答。
除了这三种常见方法外,还有一些更特殊的直接解法,比如要解常微分方程的未知函数,可以用拉格朗日方法和分部积分方法,再比如求解雅各比方程的根,可以通过主副方程互解求解,这种方法也叫作特征根法。
综上,解线性方程组的直接解法有高斯消元法、列主元消去法、列坐标变换法等;特殊问题可以采用拉格朗日方法、分部积
分法和特征根法等。
每种方法都有自己的优势,因此在使用时,可以根据问题的特点,选择适合的方法来解决。
线性方程组的直接解法迭代解法
广东金融学院实验报告课程名称:数值分析实验目的及要求实验目的:题一:通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法的优点,以及方程组系数矩阵和右端向最的微小变化对解向最的影响。
比较各种直接接法在解线性方程组中的效果;题二:认识齐种迭代法收敛的含义、影响齐迭代法收敛速度的因素。
实验要求:题一:(1)在MATLAB中编写程序用列主元高斯消去法和LU分解求解上述方程组,输出曲b中矩阵A 及向量b和A二LU分解中的L及U, detA及解向量X.(2)将方程组中的2. 099999改为2. 1, 5. 900001改为5. 9,用列主元高斯消去法求解变换后的方程组,输出解向最x及detA,并与(1)中的结果比较。
(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=inv(A)*b,即可求出方程组的解。
请与列主元高斯消公法和LU分解法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。
用MATLAB的内部曲数det求出系数行列式的值,并与(1)、(2)中输出的系数行列式的值进行比较。
(4)比较以上各种直接解法在解线性方程组中的效果。
题二:(1)选取不同的初始向M:X(0)及右端向最b,给泄迭代误差要求,用Jacobi迭代法和Gauss-Seidel迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。
列岀算法清单。
(2)用SOR迭代法求上述方程组的解,松弛系数血取1<69<2的不同的三个值,在< 10"5时停止迭代,记录迭代次数,分析计算结呆与松弛系数血的关系并得出你的结论。
(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵.再输入命令^inv(A)*b>即可求出上述各个方程组的解.并与上述三种方法求出的解进行比较。
请将比较结果列入卜表。
方程组的解X1 Xr■迭代次数误差楮确解Jacibi解法Gause・seidel 解法SOR 解法00= 60= 60=实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)1. Win72. Mat lab 7.0实验内容及步骤(包含简要的实验步骤流程) 实验内容:题一:解卜列线性方程组'10 -7‘X 】、(8、-3 2.099999 62Xr5.9000015-1 5 -15、12> 0< 1 >题二研究解线性方程组 做=b 迭代法的收敛性、收敛速度以及SOR 方法中/佳松弛因子的选取问题, 用迭代法求解做二b,其中・4 -1r■7 A=4 -81 ,b =-21-2 ■1515实验结果(包括程序或图表、结论陈述.数据记录及分析等,可附页)题一:直接解法解线性方程组(1)列主兀高斯消去法与LU 分解求解列主元高斯消去法:编写matalab 程序(见附录gaosi.m ),输出矩阵10.000 -7.000 0.000= 0.000 2.5000-5.000一 0.000 0.0006.0000020.000 0.000 0.000向量8 b =1 8.300 L5.0800J解向量:X = (0 ・-1 , 1 r I )7 其中系数行列式的值det (A )=762.00009LU 分解求解:编J matalab 程序(见附录zhjLU. m 和LU ・m ),执行输出:-1.5 2.300 5.080-3.0001.000000.00000.5000 -25000001.0000 0.2000 -24000000.9600 10.0000 -7.0000 0.0000 1.0000n = 0.0000-0.0000010.0000 2.3000 —0.0000 0.000015000000 57500000.0000 0.0000 0.0000 5.0800在matlab 命令窗II 输入L*U ,可以得到A 二L*U ,即分解结果正确。
解线性方程组的直接方法
解线性方程组的直接方法一、高斯消元法高斯消元法是解线性方程组的一种常用且直接的方法。
它的基本思想是通过一系列的代数运算,将方程组化为一个三角方程组,然后从最后一行开始,逐步回代求解未知数。
下面以一个二元一次方程组为例,说明高斯消元法的具体步骤:例如,给定方程组:a₁₁x₁+a₁₂x₂=b₁a₂₁x₁+a₂₂x₂=b₂其中,a₁₁,a₁₂,a₂₁,a₂₂,b₁,b₂为已知系数。
1.检查a₁₁的值是否为0,若为0则交换第一行与非零行。
2.将第一行的每个元素除以a₁₁,使a₁₁成为13.将第一行乘以(-a₂₁)并加到第二行上,使第二行的第一个元素变为0。
4.引入一个新的未知数y₂=a₂₁x₁+a₂₂x₂,并代入第二行,化简方程组。
5.使用回代法求解方程组。
高斯消元法的优势在于其直接的解题思路和较高的计算精度,但是其缺点是计算复杂度较高,对于大规模的方程组不太适用。
二、逆矩阵法逆矩阵法是解线性方程组的另一种直接方法,它通过求解方程组的系数矩阵的逆矩阵,并将其与方程组的常数向量相乘,得到方程组的解向量。
下面以一个三元一次方程组为例,说明逆矩阵法的具体步骤:例如,给定方程组:a₁₁x₁+a₁₂x₂+a₁₃x₃=b₁a₂₁x₁+a₂₂x₂+a₂₃x₃=b₂a₃₁x₁+a₃₂x₂+a₃₃x₃=b₃其中,a₁₁,a₁₂,a₁₃,a₂₁,a₂₂,a₂₃,a₃₁,a₃₂,a₃₃,b₁,b₂,b₃为已知系数。
1.计算系数矩阵A的行列式D=,A。
2. 求解系数矩阵A的伴随矩阵Adj(A)。
3. 计算逆矩阵A⁻¹=Adj(A)/D。
4.将常数向量b用列向量表示。
5.计算解向量x=A⁻¹b。
逆矩阵法的优势在于其求解过程相对简单,计算量较小,并且不需要对系数矩阵进行消元操作。
但是逆矩阵法的限制在于当系数矩阵不可逆时无法使用。
三、克莱姆法则克莱姆法则是解线性方程组的另一种直接方法,它通过定义克莱姆行列式和克莱姆向量,利用行列式的性质求解方程组的解向量。
计算方法实验:解线性方程组的直接法
实验二解线性方程组的直接法一、实验目的用列主元素高斯消去法和三角分解法解线性方程组Ax=b。
式中,A为n阶非奇异方阵,x,b是n阶列向量,并分析选主元素的重要性。
二、实验方法(1)列主元素高斯消去法通过变换,将系数矩阵换成等价的上三角矩阵,在每步消元过程中,选列主元素。
对k=1,2,……n-1,逐次计算l ik=a ik(k-1)/a kk(k-1) (i=k+1,k+2,……,n)a ij(k)=a ij(k-1)-l ik a kj(k-1) (i,j=k+1,k+2,……,n)b i(k)=b i(k-1)-l ik b k(k-1) (i=k+1,k+2,……,n)逐步回代气的原方程组的解X n=b i(n-1)/a nn(n-1)X k=(b k(k-1)_a kj(k-1)x j)/a kk(k-1) (k=n-1,n-2, (1)(2)直接三角分解法由于两个矩阵相等就是它们的对应元素相等,因此通过比较A与LU的对应元素,即可得到直接计算L,U的元素的公式。
设A=L×U,其中U的第一行、L的第一列的元素分别为对(依次:U的第二行,L的第二列,U的第三行,L的第三列……),有由上述两种方法得到矩阵A的LU分解后,求解Ly=b与Ux=y的计算公式为∑+=n1kj三、实验内容解下列方程组·=四、实验程序(1)列主元素高斯消去法(2)直接三角分解法0147.06721.109998.42371.13142.17643.89217.44129.35435.15330.27875.15301.04017.31651.18326.31348.14321xxxx9237.164231.183941.65342.9五、实验结果(仅供参考)精确解为:(1,1,1,1)T六、结果分析实验的数学原理很容易理解,也容易上手。
把运算的结果带入原方程组,可以发现符合的还是比较好。
这说明列主元消去法计算这类方程的有效性。
线性方程组直接法
练习 利用LU分解法求解方程组
1 2 3 x1 2 1 3 5 x2 4. 1 3 6 x3 5
1001 2 3 2 1 答L: U 110 01 2 , y 2 ,x 0 .
111 001 1 1
二、解三对角方程组的追赶法
在数值求解常微分方程边值问题、热传导方程和建立
二、向量和矩阵的范数
定义1 ( 向量范数) x 和 y 是 Rn 中的任意向量 , 向量范数‖•‖是定义
在 Rn上的实值函数, 它满足:
(1) ‖ x ‖≥0, 并且当且仅当 x=0 时, ‖ x ‖=0;
(2) ‖k x ‖=|k| ‖ x ‖, k 是一个实数;
(3) ‖ x + y ‖≤ ‖ x ‖+ ‖ y ‖
1 0 01 2 3
A 2 3
1 5
0 0 1 0
1 0
4
24
LU
3=-72/-24; 2=[-10+4*3]/1;
求解
1=[14-(2*2+3*3)]/1]
Ly (14, 18, 20)T , 得y (14, 10,72)T 同理当 ukk 0或 Ux (14, 10, 72)T , 得x (1, 2, 3)T 很小时,可用
子式 Di 0(i 1,2,,k),即
a11 Di
ai1
a1i
aii
0aa1i((i1i1))
0 Di
Di1 0
由于高斯消去法过在程消中元可能ak(出 kk) 现 0的情况, 这时消去法将无;法即进使行主a元 k(kk) 素0但很小时, 用其作除数,会他导元致素其数量级的长严和重舍增
入误差的扩散,使最得后计也算的解不可靠。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x 1 , x 0 2 1
全主元消去法
每一步选绝对值最大的元素为主元素,保证
max |a | 0 ; Step k: ① 选取 |a ij | ij k i ,j n
kk
|m ik | 1 。
② If ik k then 交换第 k 行与第 ik 行; If jk k then 交换第 k 列与第 jk 列; ③ 消元 注:列交换改变了 xi 的顺序,须记录交换次序,解完后再 换回来。
( k ) ( k ) a a ( j k ,, n 1 ) k j ij k
回代过程: (1)若
(n) a nn 0,则停止
d e t A0
(2)对 i n , ,1
x ( a i
(n ) i,n 1 (n ) (n ) a x )/ a i j j i i j i1 n
* T x = [ 1321 ]
这一过程为高斯消去法的回代过程。
消元公式
(k1) (k) akj j k, k 1 , , n 1 akj (k1) akk (k ) (k1) (k1) (k ) a a a a ij ij ik kj , , n 1 j k 1 ,n i k 1
( 2 )
α (2) i2 利用 ri - (2) r2 , i=3,4. 得 α 22
6x1 - 2x2 +2x3 + 4x4 = 12 -4x2 +2x3 + 2x4 = 10 2x3 - 5x4 = -9 4x3 - 13x4 = -21 (3)
3) α( i3 利用 ri - ( 3 ) r3 , i= 4 . 得 α 33
回代公式
(n ) x a n n ,n 1 n (k) (k) x a a n 1 , , 1 k,n 1 kj x j k k j k 1
§1.3 高斯消元法_选主元消去法
主元素及其选取问题
Gauss消元法第 k 次消元是用第 k 个方程
( k ) ( k ) ( k ) a x a x b kk k kn n k
(一) 高斯消去法的求解过程,可分为两个阶段:
首先,把原方程组化为上三角形方程组,称之为 “
消元”过程;
然后,用逆次序逐一求出三角方程组(原方程组的 等价方程组)的解,并称之为“回代”过程. 下面分别写出“消元”和“回代” 两个过程的计 算步骤.
( 1 ) ( 1 ) A ( a 记A i j) n n,
利用高斯消元法求解方程组:
6x1 - 2x2 +2x3 + 4x4 = 12 12x1 - 8x2 +6x3 +10x4 = 34 3x1 -13x2 + 9x3 + 3x4 = 27 -6x1 + 4x2 + x3 -18x4 =-38
解:
6x1 - 2x2 +2x3 + 4x4 = 12 12x1 - 8x2 +6x3 +10x4 = 34 3x1 -13x2 + 9x3 + 3x4 = 27 -6x1 + 4x2 + x3 -18x4 =-38 (1)
(3.3)
Ax b
首先将A化为上三角阵 ,再回代求解 。
=
a11 x1 a12 x2 .......... .......... .......... a1n xn b1 a 22 x2 .......... .......... ......... a 2 n xn b2 .......... .......... .......... ......... .. a n 1n 1 xn 1 a n 1n xn bn 1 ann xn bn 其中 aii 0 (i 1,2,......, n )
第三章 解线性方程组的直接法
a11x1 a12x2 a1n xn b1 a x a x a x b 21 1 22 2 2n n 2 an1x1 an2 x2 annxn bn
AX = b
a a 11 a 12 1 n a a 21 a 22 2 n A a a a 1 n 2 nn n x 1 x 2 X x n b 1 b 2 b b n
精确解为:x1=1.9273, x2=-0.698496, x3=0.9004233
例题分析(Guass列选主元法)
0 .0 0 2 x 2 .0 0 0 x 2 .0 0 0 x 0 .4 0 0 1 2 3 1 .0 0 0 x 0 .7 8 1 2 5 x 1 .3 8 1 6 1 2 3 .9 9 6 x 5 .5 6 2 5 x 4 .0 0 0 x 7 .4 1 7 8 1 2 3
例题分析(Guass全选主元法)
0 .0 0 2 x 2 .0 0 0 x 2 .0 0 0 x 0 .4 0 0 1 2 3 1 .0 0 0 x 0 .7 8 1 2 5 x 1 .3 8 1 6 1 2 3 .9 9 6 x 5 .5 6 2 5 x 4 .0 0 0 x 7 .4 1 7 8 1 2 3
( 1 ) ( 1 ) ( 1 )T b b ( b , , b ) 1 n
(1) a 0 Step 1:设 11 ,计算因子
( 1 ) ( 1 ) m a / a i 2 , ..., n ) i 1 i 1 11(
将增广矩阵第 i 行 mi1 第1行,得到
(1) (1) (1) (1) a11 a12 ... a1 b n 1 (2) (2) A b O
精确解为:x1=1.9273, x2=-0.698496, x3=0.9004233
列主元消去法计算步骤: 1、输入矩阵阶数n,增广矩阵 A(n,n+1); 1 , 2 , , n 2、对于 k (1) 按列选主元:选取 l 使
a max a 0 lk ik
9 9 9 a 1 m 1 0 . 0 . . . 0 1 1 0 1 0 1 0 2 2 2 1
用小主元10-9作
除数,致使其它 元素的数量级大 大增加,舍入误 差的扩散将准确 解淹没了。
b 2 m 1 10 2 21
9
9 10 1 1 9 9 0 10 10
且计算
( k 1) (k ) (k ) aij aij mikakj (k1) (k ) (k ) b b m b i ik k i (i, j k 1, ..., n)
(1) (1) (1) (1) a11 x a12 ... a1 b 1 n 1 (2) (2) (2) x a ... a 22 2n 2 b 2 . . . ... . . . . . . (n) (n) ann xn bn
列主元消去法
在计算机上实现全主元素消去法意味着进行数的比较操作, 选全主元素法需要相当多的计算时间,因此常采用局部选主 元素的方法.省去换列的步骤,每次仅选一列中最大的元。
|a | max |a | 0 i , k ik k
k i n
9 10 例: 1
1 1 2
8个 8个 1 和x */ x 1 . 00 ... 0 100 ... 2 x 0 . 99 ... 9 899 ... 1 2 1 9 1 10
用Gaussian Elimination计算:
9 m a / a 10 21 21 11 8个
d e t A0
(k) (k) a m a x a ikk ik
(k ) a,则停止,推出 ik k 0
,则换行, ik k
(4) 消元,对
(k) (k) 有 m a / a i k1 , , n ik ik k k ( k 1 ) ( k ) ( k ) j k1 , , n 1 a m a 有a i j i j i k k j
共进行 n ? 步 1
回代
(n ) (n ) x b / a n n nn
(i) b a ij x j j i 1 x i (i) a ii (i) i
n
( i n 1 ,..., 1 )
若A的所有顺序主子式 均不为0,则高斯消元
无需换行即可进行到底,得到惟一解。
§1.2 高斯消元法_例题分析
1 1 2 1 1 2 9 10 1 1 0 1 1
x 1 , x 1 2 1
注:列主元法没有全主元法稳定。
9 1 10 例: 1 1
109 2
9 9 1 10 10 x 1 , x 0 2 1 9 9 0 10 10
6x 1 - 2x 2 +2x 3 + 4x 4= -4x2 +2x3 + 2x4 = 2x3 - 5x4 = -3x4 =
12 10 -9 -3 (4)
显然,方程组(4)与(1)是等价的,其系数矩阵为上三角状
的,易于求解.称以上过程为高斯消去法的消去过程.通过方
程组(4)的回代求解,可以得到准确解为
利用 ri -
i1 得 r 1 ,i=2,3,4. 11
x x x x4 = 1 2 6 1 - 2 2 +2 3 + 4 -4 x x x4 = 1 0 2 +2 3 +2 -1 2 x x 2 1 2 +8 3 + x 4= 2 x x 4 x4 =2 6 2 +3 3 -1