yanghaili.157 发表于 2007-12-14 22:31

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

:@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=

A =


10
0
1
-5

1
8
-3
0

3
2
-8
1

1
-2
2
7

>> b=[-7,11,23,17]';
>> x0=';
>> 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循环的里边

yanghaili.157 发表于 2007-12-15 15:09

非常感谢,上次也试过循环里边输出但没有结果只有输出字符,经指点再做得到了满意结果,再次感谢,非常感谢!:@P

sigma665 发表于 2007-12-15 15:18

回复 #3 yanghaili.157 的帖子

不介意的话,把程序发上来共享??
页: [1]
查看完整版本: 怎样把迭代法解线性方程中每次迭代的结果输出?