声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1192|回复: 0

[编程技巧] 超松弛迭代中“下限约束”怎样在matlab中实现

[复制链接]
发表于 2006-6-23 08:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在超松弛迭代程序中,有迭代初值。现在我想实现:给定一个下限值,每步迭代后若得到的数值小于下限值,则让其等于给定的下限!若得到的数值大于给定的下限值,则继续迭代计算。请问:怎样把约束下限加入到超松弛迭代程序中?
  1. function y=sor(a,b,w,x0)
  2. a=[2275 1224.4 474.53;1224.4 679.45 263.24;474.53 263.24 102.49];
  3. b=[42422 23347 9063]';
  4. x0=[0;0;0];
  5. w=1.6496;
  6. D=diag(diag(a));
  7. U=-triu(a,1);
  8. L=-tril(a,-1);
  9. lw=(D-w*L)\((1-w)*D+w*U);
  10. f=(D-w*L)\b*w;
  11. y=lw*x0+f;n=1;
  12. while norm(y-x0)>=1.0e-6
  13. x0=y;
  14. y=lw*x0+f;n=n+1;
  15. end
  16. y
  17. n
复制代码

这是超松弛迭代程序,假设给定下限为2.0 ,5.0,11.0
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 11:10 , Processed in 0.049853 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表