欢迎来到天天文库
浏览记录
ID:6234816
大小:393.50 KB
页数:45页
时间:2018-01-07
《对线性方程组和矩阵特征值特征向量数值解法的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、对线性方程组和矩阵特征值特征向量数值解法的研究摘要:线性方程组数值解法主要包括直接法和迭代法,一般直接方法包括列主元Guass消去法,选主元的LU分解法,追赶法法等方法。对于迭代法主要包括共轭梯度法,GMRES法,Bicgstab法。迭代法适用于解决在实际中大量出现矩阵为稀疏的大型方程组。矩阵计算是科学与工程计算的核心,大部分科学与工程问题都要归结为一个矩阵计算问题,在大量的实际问题中,经常会碰到求矩阵特征值和特征向量的问题,这类问题统称为特征值问题。本文求解矩阵特征值和特征向量的方法包括Jacobi法,QR法,
2、幂法和反幂法。本文主要针对以上提出的算法进行分析比较。关键词:列主元Guass消去法;选主元LU分解法;共轭梯度法;GMRES法;Bicgstab法;追赶法;Jacobi法;QR法;幂法451引言线性方程组是线性代数历史上的第一个分支,是线性代数许多思想的源头。许多科学和工程技术问题,都归结为求解线性方程组。比如,行列式和矩阵都产生于方程组的研究。线性方程组不但是最基本最重要的数学理论和研究工具,而且有广泛的应用。对于线性方程组的求解本文采用直接法和迭代法,其中直接法是经过有限次运算后可求得方程组精确解的方法(不
3、计舍入误差);迭代法是从解的某个近似值出发,通过构造一个无穷列去逼近精确解的方法(一般有限步内得不到精确解)。在实际应用中,特征值问题有着广泛的应用背景,例如微分方程的刚性比和数值方法的稳定性;动力系统和结构系统的振动问题;电力系统的静态稳定问题等,实质上都是矩阵的特征值问题。幂法,Jacobi方法及QR方法是求矩阵特征值和特征向量的常用数值方法,它们都是造构造迭代产生的矩阵序列来达到目的的。本文采用C语言编写以上算法,并进行了算法间的比较,最后采用图表的方式分析所得到的结果。2问题分析研究线性方程组主要解决下面
4、三个问题:(1)方程组是否有解,即解的存在性问题;(2)若方程组有解,那么有多少解,解与解之间有什么关系,即解的结构问题;(3)解的求法。45求解线性方程组的方法可以分为两大类:直接法和迭代法。直接法的特点是,运用此类方法求解线性方程组时,如果计算过程没有舍入误差,那么经过有限次运算就能求出方程组的精确解。迭代法求解方程组就是构造一个无限的向量序列,使它的极限是方程组的解向量。即使计算过程是精确进行的,迭代法也不能通过有限次算术运算求得方程组的精确解,而只能逐步逼近它。因此,凡是迭代法都存在收敛性与精度控制的问题
5、。迭代法常用于求解大型稀疏线性方程组。一般的,代数方法只适用于阶数较低的矩阵,当矩阵阶数较高时,用代数方法求矩阵的特征值和特征向量是极其困难的。本文主要采用三种方法,幂法、Jacobi法及QR分解法。3算法及算法分析表1求解线性方程组算法的比较算法适用范围计算复杂度优点不足列主元素高斯消去法中小型方程组具有良好的数值稳定性存储量大选主元的LU分解法中小型方程组与三角分解相比,精度得到了提高要求矩阵为非奇异阵求解三对角线性方程组的追赶法中小型方程组①计算量小;②所占用的存储单元少;③方法简单,算法稳定。有时可能导致
6、求解不精确甚至求解失败。共轭梯度法①稀疏矩阵;②求解无约束优化问题存储量少,计算方便收敛速度一般而言要比BICGSTAB慢GMRES法解大规模线性方程组有较好的收敛特性高效性和稳定性运算量和存储空间需求量大BICGSTAB法大型稀疏矩阵收敛速度快,精度高,而且稳定性好存储量大表2求矩阵特征值和特征向量算法的比较算法适用问题优点不足45Jacobi法中小型矩阵①收敛快;②精度高;③便于并行计算且算法稳定①不能有效地利用矩阵的各种特殊形状以节省工作量;②n收敛速度减慢QR法中小型对称矩阵①收敛快;②精度高只适用于实对
7、称矩阵幂法大型稀疏矩阵计算量小①只能求解矩阵按模最大的特征值;②收敛速度慢4结果分析本文采用C语言在WIN-TC环境下编写了上述算法的程序,实现了对线性方程组、矩阵特征值和特征向量的求解,以进一步解决实际中的问题。4.1直接法求解线性方程组的结果分析针对3种不同的算法,为便于分析比较,我们将输入同一个线性方程组,计算其结果。采用的方程组为:此方程组的精确解舍入到4位有效数字是:,,对于求解线性方程组的直接法和迭代法,程序采用C语言中的SWITCH语句,当手动输入系数矩阵和常数项后,界面将提示选择求解线性方程组的方
8、法(如图1所示)。表3为所选字符与求解方法的对应关系。45图1运行时的提示界面表3字符与算法的对应关系字符算法程序中对应的函数0列主元Guass消去法gaussliezhuyuan(floata[max_dimension][max_dimension],floatb[max_dimension],intn);1选主元LU分解法LU(floata[max_dimensio
此文档下载收益归作者所有