【问题标题】:Matlab SOR Method ImplementationMatlab SOR方法实现
【发布时间】:2018-10-30 03:40:18
【问题描述】:

使用零向量的初始近似值并且不考虑容差,我将代码缩短为只需要 4 个参数。使得 x1 总是等于 c,以此类推 x(k+1)=x(k)T+c。

但是,代码似乎没有产生您期望的正确近似值。有没有人注意到我在哪里搞砸了?假设 DLU_decomposition(A) 返回正确的矩阵。

function x = sor2(A,b,omega,kmax)
[D,L,U] = DLU_decomposition(A);
T=inv(D-omega*L)*(((1-omega)*D)+(omega*U));
c= (omega*inv(D-omega*L))*b;

for k=1:kmax,

    if(k==1),
        x=c;
    end
    x=T*x+c;

end
norm(A*x-b)
end

【问题讨论】:

    标签: matlab numerical-methods


    【解决方案1】:

    好吧,我猜所有的困惑都可能来自乘法。您需要按元素计算矩阵 --> 使用 .* 而不是普通的 *。这会提供正确的近似值吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2015-09-16
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      相关资源
      最近更新 更多