MATLAB浮点精度(MATLAB float accuracy)

2019-10-21 03:27发布

我想查QR算法的数值稳定性,为了这个,我需要这样的创建矩阵:

 S = diag(2.^(-1:-1:-80));

但是它有等级46,我认为这是因为缺乏准确性。 但在这本书我读它充满排名矩阵。 我怎样才能提高计算精度?

Answer 1:

您可以使用vpa (可变精度ariuthmetic):

>> S = diag(2.^vpa((-1:-1:-80)), 100); %// 100 here is number of precision digits
>> rank(S)
ans =
    80

需要注意的是结果的类型的sym 。 转换为double如果需要的话:

>> double(rank(S))
ans =
    80


文章来源: MATLAB float accuracy