怎样把迭代法解线性方程中每次迭代的结果输出?
:@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 编辑 ]
回复 #1 yanghaili.157 的帖子
刚开始迭代的解不满足条件,也就是说根本不是解。如果需要输出请把你的输出语句放到while循环的里边 非常感谢,上次也试过循环里边输出但没有结果只有输出字符,经指点再做得到了满意结果,再次感谢,非常感谢!:@P回复 #3 yanghaili.157 的帖子
不介意的话,把程序发上来共享??
页:
[1]