if(k>N)
{
printf("迭代发散n\n");
return;
}
k++;}}
1.3.3 输出结果
1.3.4 结果分析
从输出结果可以看出此方程组的迭代次数为7,此时能得到精确结果是
=-1.377632, =-1.281579, =0.747368, =-107374176
从结果和原有知识可以知道其系数矩阵是严格对角占优的。所以此迭代解法有很好的收敛性。
1.4 方法比较
雅可比法和高斯-赛德尔迭代法解方程组两种方法的比较 。
由于此题的系数矩阵是严格对角占优的,所以雅克比迭代法和高斯-赛德尔迭代法都是收敛的,这两种迭代法没迭代一步均是作一次矩阵和向量的乘法,但前者需要2组工作单元分别存放和,而后者只需要1组工作单元。对于同一个线性方程组,这两种方法可能同时收敛,也可能同时发散,也可能其一收敛,而另一发散。但当两者皆收敛时,一般来说高斯-赛德尔迭代法比雅克比迭代法收敛快。实际中更多的是使用逐次超松弛迭代法。
第二章 矩阵的特征值及特征向量的计算
实验目的
在数学和物理中,很多问题都需要计算矩阵的特征值及特征向量,它们是线性代数中的一个重要课题,而在实际问题中,这样的计算是很复杂的,有的要求矩阵按模最大特征值及相应的特征向量,有些则要求全部特征值及特征向量,根据不同的要求计算方法大体上可分为2种类型。本实验用的是幂法求矩阵按模最大的特征值及对应特征向量,要求领会求矩阵特征值及特征向量的幂法的方法,并要求会编制幂法的计算程序,来计算有关问题。
实验内容
利用幂法求矩阵按模最大的特征值及对应特征向量。
2.1 幂法求矩阵按模最大的特征值及对应特征向量
用幂法求矩阵按模最大的特征值及其相应的特征向量,使 ,
2.1.1 幂法算法
幂法是求矩阵主特征值的一种迭代方法。设有n个线性无关的特征向量,而相应的特征值满足,则对任意非零初始向量按下述公式构造向量序列:
其中表示中最大的分量,并且有,。
用幂法计算实对称矩阵的特征值时,可用Rayleigh商作加速。设的Rayleigh商为则
,
当时,将比更快趋于。
2.1.2 程 序
2.1.3 输出结果
2.1.4结果分析
主特征值为:98.521690;相应的特征向量为 。
幂法是求矩阵主特征值的一种有效方法,特别当矩阵为大型稀疏(即矩阵元素中0元素较多)时,更显得如此。但由于特征值的分布无法事先预测,因此不能控制收敛速度,往往需要利用某些加速技巧。所以计算时我们要根据需要选择计算方法来计算矩阵的特征值及特征向量。
参考文献
[1] 袁尉平,孙志忠等.计算实习方法.南京:东南大学出版社.2005
[2] 李庆扬,王能超等.数值分析.北京:清华大学出版社. 2001
[3] 谭浩强.C程序设计.北京:清华大学出版社.1999
[4] 孙志忠.计算方法与实习学习指导.南京:东南大学出社.2005
[5] 孙志忠.计算方法典型例题分析.北京:科学出版社.2005
[6] 曹志浩.张玉德等.矩阵计算与方程求根.北京:人民教育出版社.1979