crazybird

matlab中数值可变精度的实现

0
阅读(3104)

vpa是可变精度算法的简称,有以下两种方式:

(1)R = vpa(A):从第一个非零数字开始,如果有效数字位数在32位以内,则保留所有有效数字;如果有效数字位数超过32位,则保留前32位有效数字并四舍五入。举例如下:

>>vpa('1/(2^10)')
>>ans = 0.0009765625
>>vpa('1/(2^100)')
>>ans = 0.00000000000000000000000000000078886090522101180541172856528279
>>vpa('1/(2^100)',34)
>>ans = 0.0000000000000000000000000000007888609052210118054117285652827862

(2)R = vpa(A,d):从第一个非零数字开始,指定d位有效数字,其中d大于1且小于2^29+1。举例如下:

>>vpa('pi',20)
>>ans = 3.1415926535897932385