MATLAB关于sor超松弛算法

问题描述:

MATLAB关于sor超松弛算法
function [ y,n ] = sor( w,x )
a=-12*eye(10)+ones(10);n=0;
d=-11*eye(10);b=ones(10,1);
l=tril(a,-1);u=triu(a,1);
bw=(d+w*l)\(d-w*d-w*u);
dw=w*(d+w*l)\b;
y=bw*x+dw;
while norm(y-x)>0.00001
x=y;
y=bw*x+dw;n=n+1;
end
end
以上是我的function函数.
x=zeros(10,1)
[y,n]=sor(1.1,x)
计算出来结果不对.
w=1时候,结果与seidel的结果一样.
w不为1时候,为什么结果不一样了.按理说应该一样才对
1个回答 分类:综合 2014-10-15

问题解答:

我来补答
哈哈,我刚才也弄了半天.
dw=w*(d+w*l)\b;
最好改为:
dw=(d+w*l)\b*w;
可能效果会好一些.
 
 
展开全文阅读
剩余:2000