超松弛迭代法解线性方程组讲课稿.docx

上传人:b****6 文档编号:3601791 上传时间:2022-11-24 格式:DOCX 页数:6 大小:142.30KB
下载 相关 举报
超松弛迭代法解线性方程组讲课稿.docx_第1页
第1页 / 共6页
超松弛迭代法解线性方程组讲课稿.docx_第2页
第2页 / 共6页
超松弛迭代法解线性方程组讲课稿.docx_第3页
第3页 / 共6页
超松弛迭代法解线性方程组讲课稿.docx_第4页
第4页 / 共6页
超松弛迭代法解线性方程组讲课稿.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

超松弛迭代法解线性方程组讲课稿.docx

《超松弛迭代法解线性方程组讲课稿.docx》由会员分享,可在线阅读,更多相关《超松弛迭代法解线性方程组讲课稿.docx(6页珍藏版)》请在冰豆网上搜索。

超松弛迭代法解线性方程组讲课稿.docx

超松弛迭代法解线性方程组讲课稿

 

超松弛迭代法解线性方程组

2013-2014

(1)专业课程实践论文

题目:

超松弛迭代法解线性方程组

 

一、算法理论

逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,世界大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)

设有方程组

(1)

其中

为非奇异矩阵,且设

,分解

(2)

设已知第

次迭代向量

,及第

次迭代向量

的分量

,要求计算分量

首先用Gauss—Seidel迭代法定义辅助量

(3)

再把

取为

某个平均值(即加权平均),即

(4)

用式(3)代入式(4)即得到解方程组

的逐次超松弛迭代公式

(5)

其中

为松弛因子,显然,当

时,解式

(1)的SOR方法就是Gauss-Seidel迭代法。

在SOR方法中,迭代一次主要的运算量是计算一次矩阵与向量的乘法。

由式(5)可知,在计算机上应用SOR方法解方程组时只需一组工作单元,以便存放近似解。

二、算法框图

三、算法程序

#defineN3//线性方程组的阶数

#include

#include

voidmain()

{

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;i

{

sum=0;

for(j=0;j

{

if(j!

=i)

{

sum=sum+a[i][j]*x0[j];

}

}

x[i]=(b[i]-sum)/a[i][i];

}//更新迭代向量

c_M++;//迭代次数加1

for(i=0;i

{

if(fabs(x[i]-x0[i])>current_e)

current_e=fabs(x[i]-x0[i]);

}//计算当前误差

for(i=0;i

x0[i]=x[i];//更新初始向量

}while(current_e>e&&c_M

for(i=0;i

cout<

cout<

}

四、算法实现

例1.用超松弛迭代法解方程组

解:

将方程组的系数放于a[n][n]中,将等号右端常数放入b[n]中。

运行程序,即可得出结果

例2.用超松弛迭代法解方程组

解:

将方程组的系数放于a[n][n]中,将等号右端常数放入b[n]中。

运行程序,即可得出结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1