计算方法 第六章 解线性方程组的直接法
- 格式:ppt
- 大小:1.09 MB
- 文档页数:74
解线性方程组的直接方法一、高斯消元法高斯消元法是解线性方程组最常用的方法之一、它通过一系列的消元操作,将线性方程组转化为阶梯型方程组,从而求解未知数的值。
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可逆。
线性方程组的直接法直接法就是经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=与精确解一致。
计算方法答案王能超【篇一:计算方法习题集及实验指导书】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六、结果分析实验的数学原理很容易理解,也容易上手。
把运算的结果带入原方程组,可以发现符合的还是比较好。
这说明列主元消去法计算这类方程的有效性。