概述

用MATLAB编程实现,形成m函数文件。输入A,b矩阵,与松弛因子 ω \omega ω,无返回值。设置精度要求 ε = 1 0 − 4 \varepsilon=10^{-4} ε=10−4。所得解向量向量直接显示在命令行窗口,同时绘制出解向量的收敛曲线。
判断迭代方法收敛性时计算高斯塞德尔迭代矩阵谱半径以判断。

代码与运行结果

function [] = sor(A,b,w)
%基于高斯塞德尔的超松弛迭代求解向量
G=-(tril(A))\triu(A,1);
R=max(abs(eig(G)));
if(R>=1)disp('SOR is not work');
elsedisp('SOR is going well');disp('x vector:')l=length(b);x=zeros(size(b));xs=0;xe=0;for k=1:100for i=1:lfor j=1:i-1xs=xs+A(i,j)*x(j,k+1);end for j=i:lxe=xe+A(i,j)*x(j,k);end x(i,k+1)=x(i,k)+(w/A(i,i))*(b(i)-xs-xe);xs=0;xe=0;endif(max(abs(x(:,k+1)-x(:,k)))<10^-4)break;endenddisp(x(:,k+1));e=1:k+1;plot(e,x,'- o');xlabel('generations');ylabel('vector x');
end
end

令:
A = [ 5 1 − 1 − 2 2 8 1 3 1 − 2 − 4 − 1 − 1 3 2 7 ] b = [ − 2 − 6 6 12 ] A=\begin{bmatrix} 5&1&-1&-2\\2&8&1&3\\1&-2&-4&-1\\-1&3&2&7\end{bmatrix} b=\begin{bmatrix} -2\\-6\\6\\12\end{bmatrix}\\ A=⎣⎢⎢⎡​521−1​18−23​−11−42​−23−17​⎦⎥⎥⎤​b=⎣⎢⎢⎡​−2−6612​⎦⎥⎥⎤​
ω = 1.15 \omega=1.15 ω=1.15

A=[5 1 -1 -2;2 8 1 3;1 -2 -4 -1;-1 3 2 7];
b=[-2;-6;6;12];
sor(A,b,1.15);
SOR is going well
x vector:1.0000-2.0000-1.00003.0000

与雅可比、高斯塞德尔方法比较

A = [ 5 1 − 1 − 2 2 8 1 3 1 − 2 − 4 − 1 − 1 3 2 7 ] b = [ − 2 − 6 6 12 ] A=\begin{bmatrix} 5&1&-1&-2\\2&8&1&3\\1&-2&-4&-1\\-1&3&2&7\end{bmatrix} b=\begin{bmatrix} -2\\-6\\6\\12\end{bmatrix}\\ A=⎣⎢⎢⎡​521−1​18−23​−11−42​−23−17​⎦⎥⎥⎤​b=⎣⎢⎢⎡​−2−6612​⎦⎥⎥⎤​
ω = 1.15 \omega=1.15 ω=1.15

雅可比方法

高斯塞德尔方法

相较之下,SOR方法迭代次数缩短,求解时间减少。但需要选择恰当的松弛因子 ω \omega ω 。

基于高斯塞德尔方法的超松弛迭代法MATLAB实现相关推荐

  1. 方程组求解matlab实现(朴素高斯求解、LU分解、雅可比迭代方法、高斯-塞德尔方法、连续过松弛(SOR))

    朴素高斯求解 function x= oridinarygauss(a,b) n=length(b); for j=1:n-1for i=j+1:nmult=a(i,j)/a(j,j);for k=j ...

  2. MATLAB实现雅可比与高斯塞德尔迭代

    概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,无返回值,解得x向量直接显示在命令行窗口,同时绘制出x向量的收敛曲线. A = [ 2 − 1 1 1 1 1 1 1 − 2 ] b = ...

  3. 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)

    Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...

  4. 雅可比(Jacobi)及高斯-塞德尔(Gauss_Seidel)迭代法求解线性方程组的matlab现实

    雅可比迭代法的实现代码: function X=Jacobi(A,B,P,delta,max1) %Input -A is a X*N nosingular matrix % -B is a N*1 ...

  5. [计算机数值分析]高斯-塞德尔迭代公式解线性方程组

    在雅可比迭代公式的基础上,对于收敛的迭代过程,所求出的"新值"常比"老值"更准确些,因此可以用它替代老值作进一步的计算,这样的思想就是著名的高斯-塞德尔迭代公式 ...

  6. 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组(转载)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yyywww666/article/details/42805071 算法介绍(迭代法介绍): 代码C ...

  7. 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组

    算法介绍(迭代法介绍): 代码C语言实现; # include<stdio.h> # include<math.h> # define N 6 /* *使用雅可比迭代法和高斯- ...

  8. 高斯--塞德尔迭代法求方程组的解(Python实现)

    数值分析题目 求方程组 {5x1+2x2+x3=−12−x1+4x2+2x3=202x1+−3x2+10x3=2\left\{ \begin{array}{c} 5x_1+2x_2 + x_3 = - ...

  9. 解线性方程组的迭代法(雅可比、高斯-塞德尔迭代法)

    Agui_GS.m: function x=Agui_GS(A,b) %方程Ax=b,x0为初始向量 %e为精度,N为最大迭代次数 n=length(b); N=100; e=1e-4; x0=zer ...

最新文章

  1. 【system generator】基于system generator的根号运算系统实现
  2. 排序算法 | 堆排序,算法的图解、实现、复杂度和稳定性分析
  3. tensorflow 标准数据读取 tfrecords
  4. PWN-PRACTICE-BUUCTF-28
  5. linux从源码编译软件,linux软件源码的编译安装
  6. 可以储存照片的字段类型是_sql server 中 哪个字段类型可以储存图象?
  7. Docker容器学习梳理-容器时间跟宿主机时间同步
  8. GitHub pages + Hexo 搭建自己的个人博客
  9. informix php,连接到informix数据库 - PHP 方式
  10. 正则表达式与自动机c语言,用有限自动机实现正则表达式的匹配
  11. 在云测平台对手机进行兼容性测试
  12. laravel实现打包多个文件,并下载
  13. wps右下角弹窗广告(WPS购物或叫WPS热点)彻底关闭
  14. Firefox 火狐下自动刷新的插件 ReloadEvery
  15. Linux下连接mongoDB出现no reachable servers以及mongoDB创建用户
  16. 新媒体环境下“沉默的双螺旋”
  17. jq input输入框失焦、聚焦
  18. Python—SJ—实验4—DNA翻译
  19. 拿下春晚,抖音支付要如何在一个月内杀出血路
  20. 内核文件管理-IRP(一)创建或打开文件

热门文章

  1. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢
  2. 【Paper Quickthrough】October Papers
  3. 学习使用junit进行单元测试,
  4. Windows PC上创建大数据职业技能竞赛实验环境之五--hadoop、hive和spark编程
  5. GitOps 与 ChatOps 的落地实践
  6. 计算机网络-传输层(传输层概述,TCP,UDP协议概述)
  7. 网件交换机基本配置命令
  8. 【Python】openpyxl单元格合并
  9. 【看了10年前我为本单位写的此篇文章,感慨万分】此文章题目为:为关于“执行力”相关要素的方案设想
  10. 关于一次美团java程序员招聘面试的经历