用Matlab编写超松弛迭代法与列主元消去法

作为迭代法一种加速方法,超松弛迭代法计算公式简单,只是需要选择合适的松弛因子,保证迭代过程有较快的收敛速度。它是Gauss-Seidel迭代法的优化。而列主元消去法,因为仅按列选主元,相比完全主元消元法,省了主元搜寻时间,提高了效率。

 

SOR迭代公式:



 

 SOR编程代码如下:

 

     函数:

function [xvect,nvect,xdif]=SOR(A,b,eps,x0,w) %超松弛迭代法
m=length(b); %m为线性方程组的维数,即变量的个数
xvect=[]; %为length(b)行length(nvect)列的矩阵,存储X1~X(length(b))变量的迭代值
nvect=[]; %存贮迭代次数
xdif=[];  %存储误差 max(1<=i<=length(b))abs(xi(k+1)-xi(k))
n=1; xvect=[xvect;x0];
x1=[];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%计算由初值x0经第一次迭代后的值x1
x1(1)=x0(1)+w/A(1,1)*(b(1)-sum(A(1,[1:m]).*x0([1:m])));
for i=2:m-1
    x1

你可能感兴趣的:(Matlab,matlab)