高斯-赛戴尔(Gauss-Seidel)迭代法基于MATLAB的实现

前言

这个代码的实现,其实主要是因为所修课程当中老师要求,所以自己就写了这么一个代码,具体原理就不提及了,各处文献都写的很清楚了,如果想要从原理仔细学习,可以参照各种数值分析课本。

这里讲一下这里面的一些问题:
·首先,这其中关于迭代是否收敛的判断有一点小问题,就是关于迭代矩阵(D-L)\U求其谱半径作为判断标准的问题:我只采用了迭代矩阵谱半径为判断标准,但是遇到了有一些矩阵该值比1稍大小数点后一点点,被判断不收敛,但实际上可以收敛;
·其次,关于高斯-赛德尔迭代法的实现形式,我并非采用的是矩阵分解的形式,而是以方程组的解法来进行迭代。

嘛,总的来说,只算作一个样例供大家参考~(Kira)

代码

function [X1]=GS(A_matrix, B) 
%取得n并给输出向量留一个初值
[row_a,col_a] = size(A_matrix);
X1=zeros(row_a,1);
%取得对角矩阵、严格上三角矩阵、严格下三角矩阵
D=zeros(row_a,col_a);
for i=1:row_a
    D(i,i)=A_matrix(i,i);
end
U=-A_matrix;
for i=1:row_a
    for j=1:i
        U(i,j
  • 2
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值