1.打开MATLAB,运行mckgenerator.m,得到K矩阵
2.在运行框输入:
A=K;%把K赋值给A
b=rand(66,1);%随机生成b
x=zeros(66,1);%给x赋初值0
max_it=10^(5);%设置最大迭代次数
tol=10^(-8);%设置精度
M=diag(diag(A));
3.分别调用程序:jacobi.m, GaussSeidel.m, sor.m, cg.m, bicg.m, bicgstab.m
摘 要 本文讨论已有的解线性方程组迭代方法的优缺点.重点讨论解线性方程组的Jacobi迭代法( J法)、Gauss-Seidel迭代法( GS 法)、 逐次超松弛(SOR法)、最速下降法、共轭梯度法( CG 法)、双共轭梯度算法(BiCG法)、稳定双共轭梯度算法(BiCGSTAB法)七种方法 .比较这七种迭代方法的收敛性、收敛速度、每迭代一次所需的计算量及实际计算时需要的存贮量,并进行误差分析,应用于求解决科学与工程问题.31440
毕业论文关键词 线性方程组;迭代法;收敛性;收敛速度
第一章 引言
1.1 研究背景和现状
在很多实际应用中,最终对许多问题的求解都转化为了对线性方程组的求解,如曲线拟合中常用的最小二乘法、样条函数插值、解非线性方程组、求解偏微分方程的差分法、有限元法和边界元法以及目前工程实践中普遍存在的反演问题等.线性方程组问题在理论上的重要性和在工程实际应用中的大量存在,多年来人们在这方面做了广泛深入的研究和探讨,并取得了许多有价值的成果.
然而,由于存在测量误差、模型误差、计算误差(舍入误差)等各种形式误差,经常使得到的线性方程组中的系数矩阵具有某种程度的扰动性(即近似性),这种扰动性显然会使得线性方程组的求解不大容易得到真实的理论解.此时,由于(迭代)运算机理不一样,不同的求解方法在求解过程中误差积累的程度就不一样,因此不同的求解方法求得的解具有不同逼近真解的误差,尤其是对于那些具有病态性的方程组而言,许多现有的算法都是没有效果的,因为它们不具有解决病态方程的功能,因而它们求得的解将完全失真. 此时,迭代算法的优势就显现出来.迭代算法因它存储简便,运算高效等特点被工程实践所广泛采用.共轭梯度法常用于加速线性方程组的收敛,特别在处理大型的稀疏矩阵时,共轭梯度算法的优越性尤为明显,不仅减少了处理的时间,还使运算精确度大大提高,因此成为现在数值分析领域的一个研究重点.
1.2 本文的主要工作
本文的主要工作是用古典迭代法和共轭梯度法解线性方程组,解决实际工程问题,重点为雅可比法,高斯赛德尔法,超松弛法,共轭梯度法,双共轭梯度法和稳定双共轭梯度法.
首先必须掌握各种迭代法的计算公式和迭代矩阵的表达式以及迭代法收敛的充分必要条件和充分条件,并用这些理论判别方程组 的收敛性.
第二章 线性方程组的古典迭代解法
2.1雅可比迭代法
在科学计算与工程计算中,经常会遇到解线性方程组的问题,如何高效的求解线性方程组一直是一个重要的话题.
线性方程组的解法一般分为直接法和迭代法.其中迭代法有雅可比迭代、高斯—赛德尔迭代和超松弛迭代法.雅可比迭代虽然求解简单,编程比较容易,但其具有一定的局限性,例如,方程组的系数矩阵有着某些特殊的性质,过于庞大或具有病态性.
2.1.1 公式及算法
考察一般形式的线性方程组:
(2.1.1) 几类线性方程组的迭代算法研究+MATLAB源程序:http://www.751com.cn/shuxue/lunwen_27604.html