稀疏矩阵之和--Matlab数值误差

时间:2016-06-11 01:25:31

标签: sum sparse-matrix zero numerical

我有以下问题:

N=500; 
A = sparse(1:500,10*ones(N,1),0.005*ones(N,1),N,N); 
A(:,300) = -0.005*ones(N,1); 
>> sum(A,2) 
   ans = All zero sparse: 500-by-1 
B = spdiags(0.45*ones(N,1),0,N,N); 
B(:,34) = -0.45*ones(N,1); 
B(34,34) = 0; 
>> sum(B,2) 
   ans = All zero sparse: 500-by-1 
C = A+B; 
>>max(sum(C,2)) 
     ans = (1,1) 4.3368e-18.

由于A和B的行之和为0,因此C行的总和也应为0。但对于大型稀疏矩阵,情况并非总是如此。即使它是e-18,我也需要它接近0。

如何让matlab提高这种计算的精度?

谢谢

0 个答案:

没有答案