声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1290|回复: 3

[编程技巧] 怎样把迭代法解线性方程中每次迭代的结果输出?

[复制链接]
发表于 2007-12-14 22:31 | 显示全部楼层 |阅读模式

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

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

x
:@L要求每次迭代的结果都输出,但是再循环里边加上输出语句时什么都输出不了,只能输出最终结果,麻烦 高手赐教。
M文件
function y=gaussseidel(A,b,x0)
D=diag(diag(A));
U=-triu(A,1);
L=-tril(A,-1);
G=(D-L)\U;
f=(D-L)\b;
y=G*x0+f;
n=1;
while norm(y-x0)>=1.0e-6&n<=1000

x0=y;


y=G*x0+f;


n=n+1;

end
fprintf('方程组的解y=');
y
fprintf('\n');
fprintf('迭代次数n=',y);
n
所编程序
>> A=[10,0,1,-5;1,8,-3,0;3,2,-8,1;1,-2,2,7]

A =


10
0
1
-5


1
8
-3
0


3
2
-8
1


1
-2
2
7


>> b=[-7,11,23,17]';
>> x0=[0,0,0,0]';
>> gaussseidel(A,b,x0)
方程组的解y=
y =


1.0000


0.5000


-2.0000


3.0000



迭代次数n=
n =


14



ans =


1.0000


0.5000


-2.0000


3.0000


>>


[ 本帖最后由 eight 于 2007-12-15 11:04 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-12-15 11:34 | 显示全部楼层

回复 #1 yanghaili.157 的帖子

刚开始迭代的解不满足条件,也就是说根本不是解。如果需要输出请把你的输出语句放到while循环的里边
 楼主| 发表于 2007-12-15 15:09 | 显示全部楼层
非常感谢,上次也试过循环里边输出但没有结果只有输出字符,经指点再做得到了满意结果,再次感谢,非常感谢!:@P
发表于 2007-12-15 15:18 | 显示全部楼层

回复 #3 yanghaili.157 的帖子

不介意的话,把程序发上来共享??
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-27 09:20 , Processed in 0.051133 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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