最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数值分析大作业 超松弛迭代法如何选取最佳松弛因子

来源:动视网 责编:小OO 时间:2025-09-24 23:25:48
文档

数值分析大作业 超松弛迭代法如何选取最佳松弛因子

超松弛迭代法如何选取最佳松弛因子船建学院B1301095wj一、课题背景逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)。最佳松弛因子ω的确定是数值代数中的一个理论难题,对于不同的矩阵,其最佳松弛因子往往相差很大,没有统一的计算公式来确定ω。由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间,故利用对称正定矩阵一定收敛的性质,本文提供
推荐度:
导读超松弛迭代法如何选取最佳松弛因子船建学院B1301095wj一、课题背景逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)。最佳松弛因子ω的确定是数值代数中的一个理论难题,对于不同的矩阵,其最佳松弛因子往往相差很大,没有统一的计算公式来确定ω。由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间,故利用对称正定矩阵一定收敛的性质,本文提供
超松弛迭代法如何选取最佳松弛因子

船建学院 B1301095 wj

一、课题背景

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

最佳松弛因子ω的确定是数值代数中的一个理论难题,对于不同的矩阵,其最佳松弛因子往往相差很大,没有统一的计算公式来确定ω。由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间,故利用对称正定矩阵一定收敛的性质,本文提供一种针对于系数矩阵为对称正定矩阵时,如何选取合适的最佳松弛因子的方法。

二、课题研究流程图

3、SOR迭代公式

  逐次超松弛(Successive Over Relaxation)迭代法,简称SOR迭代法,它是在GS法基础上为提高收敛速度,采用加权平均而得到的新算法,设解方程的GS法记为

      (1)

再由与加权平均得

    

这里ω>0称为松弛参数,将(1)式代入则得

       (2)

称为SOR迭代法,[WTBX]ω>0称为松弛因子,当ω=1时(2)式即为GS法,将(2)式写成矩阵形式,则得

    

即  

于是得SOR迭代的矩阵表示

       (3)

4、Matlab程序

%sor法确定对称正定矩阵的最佳松弛因子w%

clc;clear;

n=100;

%矩阵的阶数%

for num=1:100

    X=diag(rand(n,1));

    U=orth(rand(n,n)-0.5);

    a=U'*X*U;

    %以上是利用随机对角矩阵和随机正交矩阵,产生随机的对称正定矩阵,正交变化不改变特征值%

    L=zeros(n,n);

    U=zeros(n,n);

    %分配L和U的内存空间%

    step=0.02;

    %定义w的计算精度%

    for k=1:(2/step) %由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间%

        w=(k-1)*step;

        for i=1:n %一个总的for循环给三个矩阵赋值D-L-U=A,%

            for j=1:i-1

                 L(i,j)=-a(i,j);%L矩阵的赋值%

            end

            for j=i+1:n

                U(i,j)=-a(i,j);%U矩阵的赋值%

            end

            D(i,i)=a(i,i);%D矩阵的赋值%

        end

        H=inv(D-w*L)*((1-w)*D+w*U);%sor方法的核心,H矩阵为迭代矩阵%

        p(k)=max(abs(eig(H)));%利用此函数求矩阵的谱半径%

    end

    k_min=find(p==min(p));%find函数寻找不同的w中谱半径的最小值,即寻找收敛最快的w%

    w_min(num)=(k_min-1)*step;%由最小值的序号得到最优的w%

end

hist(w_min,100)%对数量足够多的随机对称正定矩阵做频率统计,w划分100份,做出统计图%

mean(w_min)%对不同矩阵的最小谱半径所对应的w对平均统计%

五、结果

对于不同阶数,计算得到的最佳收敛因子w不同,大致是随阶数增大而增大。对不同阶数对最佳收敛因子w的平均值统计,做出的表格,如下表所示:

n阶数

3阶

4阶

5阶

6阶

7阶

8阶

9阶

10阶

最佳收敛因子w

1.101.171.201.231.261.281.311.32
n阶数

15阶

20阶

25阶

50阶

75阶

100阶

最佳收敛因子w

1.391.431.471.621.651.68
(注:由于本人电脑运行速度有限以及学习能力和精力有限,只能算到100阶,而且在25阶以后都采用计算100个矩阵,误差会比较大。)

图1、不同阶数下的最佳收敛因子w的取值图

分析:(1)最佳收敛因子w随着n阶数增大而增加;

     (2)、当n比较小时最佳收敛因子w在1附近,而且增加很快;当n很大时,最 佳收敛因子向2的方向发展,并逐渐收敛。

图2、N=4时最佳松弛因子的频率统计图

图3、N=5时最佳松弛因子的频率统计图

图4、N=10时最佳松弛因子的频率统计图

图5、N=25时最佳松弛因子的频率统计图

图6、N=50时最佳松弛因子的频率统计图

       

  图7、N=100时最佳松弛因子的频率统计图

六、总结与展望

本文从研究如何确定对称正定矩阵sor迭代法的最佳松弛因子入手,由matlab构造函数产生随机对称正定矩阵,取n从3到100,计算出各个最佳松弛因子的平均值,然后做出统计表格和发展趋势曲线,由分析可得n越大最佳松弛因子也越大,但增长速度也变慢,最后会收敛到一个数。

可以对其他特殊的矩阵进行确定sor方法最佳松弛因子的研究工作,对工程上快速迭代出计算结果有重要研究价值,同时对n阶数很大的矩阵进一步计算确定其最佳松弛因子,观察其收敛性。

本文为非数学系研究僧撰写,数学系路过的大神请轻喷!(wujun)

文档

数值分析大作业 超松弛迭代法如何选取最佳松弛因子

超松弛迭代法如何选取最佳松弛因子船建学院B1301095wj一、课题背景逐次超松弛迭代法是Gauss-Seidel方法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一,它具有计算公式简单,程序设计容易,占用计算机内存较少等优点,但需要选择好的加速因子(即最佳松弛因子)。最佳松弛因子ω的确定是数值代数中的一个理论难题,对于不同的矩阵,其最佳松弛因子往往相差很大,没有统一的计算公式来确定ω。由于对称正定矩阵sor方法收敛的充分必要条件为w在0到2之间,故利用对称正定矩阵一定收敛的性质,本文提供
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top