欢迎来到天天文库
浏览记录
ID:57169890
大小:103.50 KB
页数:9页
时间:2020-08-05
《超松弛迭代法解线性方程组讲课教案.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、超松弛迭代法解线性方程组2013-2014(1)专业课程实践论文题目:超松弛迭代法解线性方程组一、算法理论逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,世界大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)设有方程组(1)其中为非奇异矩阵,且设,分解为(2)设已知第次迭代向量,及第次迭代向量的分量,要求计算分量首先用Gauss—Seidel迭代法定义辅助量(3)再把取为某个平均值(即加权平均),即(4)用式(3)代入式(
2、4)即得到解方程组的逐次超松弛迭代公式(5)其中为松弛因子,显然,当时,解式(1)的SOR方法就是Gauss-Seidel迭代法。在SOR方法中,迭代一次主要的运算量是计算一次矩阵与向量的乘法。由式(5)可知,在计算机上应用SOR方法解方程组时只需一组工作单元,以便存放近似解。开始二、算法框图结束定义f(x)输入x0e1e2NK=1f(x)3、/线性方程组的阶数#include#includevoidmain(){doublea[N][N]={5,2,1,2,8,-3,1,-3,-6},//系数矩阵b[N]={8,21,1};//右端常数向量doublex0[N]={1,1,1},x[N];//迭代初始向量和迭代向量doublee=1e-5;//精度要求intM=5000;//最大迭代次数inti,j,c_M=0;doublesum,current_e;do{current_e=0;for(i=0;i4、um=0;for(j=0;jcurrent_e)current_e=fabs(x[i]-x0[i]);}//计算当前误差for(i=0;ie&&c_M5、未达到最大迭代次数for(i=0;i
3、/线性方程组的阶数#include#includevoidmain(){doublea[N][N]={5,2,1,2,8,-3,1,-3,-6},//系数矩阵b[N]={8,21,1};//右端常数向量doublex0[N]={1,1,1},x[N];//迭代初始向量和迭代向量doublee=1e-5;//精度要求intM=5000;//最大迭代次数inti,j,c_M=0;doublesum,current_e;do{current_e=0;for(i=0;i4、um=0;for(j=0;jcurrent_e)current_e=fabs(x[i]-x0[i]);}//计算当前误差for(i=0;ie&&c_M5、未达到最大迭代次数for(i=0;i
4、um=0;for(j=0;jcurrent_e)current_e=fabs(x[i]-x0[i]);}//计算当前误差for(i=0;ie&&c_M5、未达到最大迭代次数for(i=0;i
5、未达到最大迭代次数for(i=0;i
此文档下载收益归作者所有