sunnyshore 发表于 2006-6-23 08:00

超松弛迭代中“下限约束”怎样在matlab中实现

在超松弛迭代程序中,有迭代初值。现在我想实现:给定一个下限值,每步迭代后若得到的数值小于下限值,则让其等于给定的下限!若得到的数值大于给定的下限值,则继续迭代计算。请问:怎样把约束下限加入到超松弛迭代程序中?
function y=sor(a,b,w,x0)
a=;
b=';
x0=;
w=1.6496;
D=diag(diag(a));
U=-triu(a,1);
L=-tril(a,-1);
lw=(D-w*L)\((1-w)*D+w*U);
f=(D-w*L)\b*w;
y=lw*x0+f;n=1;
while norm(y-x0)>=1.0e-6
x0=y;
y=lw*x0+f;n=n+1;
end
y
n
这是超松弛迭代程序,假设给定下限为2.0 ,5.0,11.0
页: [1]
查看完整版本: 超松弛迭代中“下限约束”怎样在matlab中实现