我想查QR算法的数值稳定性,为了这个,我需要这样的创建矩阵:
S = diag(2.^(-1:-1:-80));
但是它有等级46,我认为这是因为缺乏准确性。 但在这本书我读它充满排名矩阵。 我怎样才能提高计算精度?
我想查QR算法的数值稳定性,为了这个,我需要这样的创建矩阵:
S = diag(2.^(-1:-1:-80));
但是它有等级46,我认为这是因为缺乏准确性。 但在这本书我读它充满排名矩阵。 我怎样才能提高计算精度?
您可以使用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