﻿功能:采用SOR迭代法解线性方程组

格式:
SolveEquationSOR(A,B,w,erro,Loop)
SolveEquationSOR(A,B,w,erro)
SolveEquationSOR(A,B,w)
SolveEquationSOR(A,B)

说明:本函数是求解A*X=B这类方程组的,其中A是一个方阵,B是一个行数与A一致列数为1的矩阵.w是加权因子,其范围在0到2之间,默认为1.37;erro是误差控制变量,默认为1e-8;Loop是循环控制变量,默认为1000

注意:
1、当矩阵A的对角线有0元素的时候不能使用本函数求解
2、使用本函数求解的充分必要条件是计算中的迭代矩阵的谱半径必须小于1.程序在计算的时候没有检查迭代矩阵的普半径,因为那样会相当耗时,也因此计算可能是发散的

参考:《数值计算方法理论与典型例题选讲》—雷金贵—科学出版社—2012/7-115页

例子:

b =
[  1.00000000000000
   1.00000000000000
   1.00000000000000
   1.00000000000000]
a =
[  -4.0000000000000   1.00000000000000   1.00000000000000   1.00000000000000
   1.00000000000000   -4.0000000000000   1.00000000000000   1.00000000000000
   1.00000000000000   1.00000000000000   -4.0000000000000   1.00000000000000
   1.00000000000000   1.00000000000000   1.00000000000000   -4.0000000000000 ]

x =SolveEquationSOR(a,b)//回车后得到如下结果
x =
[  -1.0000000004546
   -0.9999999989541
   -1.0000000008281
   -0.9999999997836 ]