我想检查QR算法的数值稳定性,为此我需要创建这样的矩阵:
S = diag(2.^(-1:-1:-80));
但它排名第46位,我认为这是因为缺乏准确性。但在我读的书中,它是全排名矩阵。如何提高计算的准确性?
答案 0 :(得分: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