matlab中用高斯-赛德尔(Gauss-Seidel)迭代法解线性方程组

原理

matlab中用高斯-赛德尔(Gauss-Seidel)迭代法解线性方程组_第1张图片

矩阵形式:

%GS迭代法矩阵形式
clear;
clc;
a=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4];
b=[0;5;-2;5;-2;6];
d=diag(diag(a));%对角元素
u=(triu(a)-d);%上三角矩阵
l=(tril(a)-d);%下三角矩阵
x1=b;
num=0;
while 1 
    x0=x1;
    x2=(-inv(d+l)*u)*x1+inv(d+l)*b;
    x1=x2;
    n=norm(x2-x0,inf); %求无穷范数

你可能感兴趣的:(matlab)