数值分析MatlabSOR迭代法

function [x, count] = lttfunSOR(A, b, x0, w, max, delta)
% 函数功能:对超松弛迭代法求解线性方程组;
% 输入:
%   A:系数矩阵
%   b:常数矩阵;
%   x0:初始解;
%   w:松弛因子;
%   max:最大迭代次数;
%   delta:精度阈值;
% 输出:
%   x:近似解;
%   count:迭代次数

n = length(x0);
x = ones(n, 1);

for k = 1:max
    for j = 1:n
        if j == 1
            x(1) = x0(1) + w * (b(1) - A(1,1:n) * x0(1:n)) / A(1, 1);
        else
            x(j) = x0(j) + w * (b(j) - A(j,1:j-1) * x(1:j-1) - ...
                A(j,j:n) * x0(j:n)) / A(j,j);
        end
    end
    err = norm(x-x0, Inf);
    x0 = x;
    if err < delta
        break;
    end
end
count = k;
return

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newbresh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值