matlab中norm的问题

问题描述:

matlab中norm的问题
matlab中,以下两个程序,只差norm,一个是norm(E+F-E,1)>0,另一个是norm(F,1)>0,为啥结果差很多,第一个N只算到20多,第二个算到200多,知道F完全成了0矩阵.难道E+F-E和F不同吗?
A=rand(3)
E=0*A
F=E+eye(size(E))
N=1
while norm(E+F-E,1)>0
E=E+F;
F=A*F/N;
N=N+1
end
A=rand(3)
E=0*A
F=E+eye(size(E))
N=1
while norm(F,1)>0
E=E+F;
F=A*F/N;
N=N+1
end
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
应该是精度引起的,用E+F-E在算至F到1.0e-016数量级时已经人为是0了,因为matlab中的eps也仅为 2.2204e-016
clear all
clc
rand('state',sum(100*clock))
A=rand(3);
E=0*A;
F=E+eye(size(E));
N=1;
while norm(F,1)>0
E=E+F;
F=A*F/N;
N=N+1;
end
N
F
rand('state',sum(100*clock))
A=rand(3);
E=0*A;
F=E+eye(size(E));
N=1;
while norm(E+F-E,1)>0
E=E+F;
F=A*F/N;
N=N+1;
end
F
N
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会