|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
在超松弛迭代程序中,有迭代初值。现在我想实现:给定一个下限值,每步迭代后若得到的数值小于下限值,则让其等于给定的下限!若得到的数值大于给定的下限值,则继续迭代计算。请问:怎样把约束下限加入到超松弛迭代程序中?
- function y=sor(a,b,w,x0)
- a=[2275 1224.4 474.53;1224.4 679.45 263.24;474.53 263.24 102.49];
- b=[42422 23347 9063]';
- x0=[0;0;0];
- 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 |
|