超松弛迭代法解线性方程组讲课稿Word文档格式.docx

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

超松弛迭代法解线性方程组讲课稿Word文档格式.docx

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

超松弛迭代法解线性方程组讲课稿Word文档格式.docx

为非奇异矩阵,且设

,分解

(2)

设已知第

次迭代向量

,及第

的分量

,要求计算分量

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

(3)

再把

取为

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

(4)

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

的逐次超松弛迭代公式

(5)

为松弛因子,显然,当

时,解式

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

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

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

二、算法框图

三、算法程序

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

#include<

iostream.h>

math.h>

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<

N;

i++)

{

sum=0;

for(j=0;

j<

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;

{

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

current_e)

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

}//计算当前误差

x0[i]=x[i];

//更新初始向量

}while(current_e>

e&

&

c_M<

M);

//判断是否仍未达到精度要求且未达到最大迭代次数

for(i=0;

cout<

<

x[i]<

endl;

//输出结果

cout<

c_M<

//输出迭代次数

}

四、算法实现

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

解:

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

运行程序,即可得出结果

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

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

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

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

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

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