主要内容

高精度的数值计算

此示例显示了如何使用可变精度算术使用符号数学工具箱™获取高精度计算。

搜索代表近整数的公式。一个经典的例子如下:compute exp. 1 6. 3. π 到30位数。结果似乎是一个包含舍入错误的整数。

数字(30);f = exp(sqrt(sym(163))* sym(pi));VPA(F)
ans =.
                
                 
                  
                   
                    262537412640768743.99999999999999.
                  
                  
                   VPA(262537412640768743.999999999999')
                 
                

计算相同的值为40位数。事实证明,这不是整数。

数字(40);VPA(F)
ans =.
                
                 
                  
                   
                    2625743.9999999999992500725972
                  
                  
                   VPA(262537412640768743.9999999999992500725972')
                 
                

进一步调查这种现象。下面,数字最多 exp. 1 0. 0. 0. 发生,调查在小数点后需要一些正确的数字。计算所需的工作精度:

d = log10(exp(vpa(1000)))
d =
                
                 
                  
                   
                    434.294481903251827651128918276511289182765112891891660508229444
                  
                  
                   VPA(434.29448190325182765112891891660508229444')
                 
                

在第一次调用函数之前设置所需的精度。其中圆形的VPA., 和双倍的是这样的功能。

数字(CEIL(D)+ 50);

寻找表格的类似示例 exp. N π 。当然,您可以通过乘以163个方形来获取更多这样的数字N.但除此之外,还有更多数量的此形式接近一些整数。您可以从分数部分的直方图图中看到这一点:

a = exp(pi * sqrt(VPA(1:1000))));B =一轮(a);直方图(双(b),50)

图包含轴。轴包含类型直方图的对象。

计算是否存在近整数的表单 exp. N

a = exp(VPA(1:1000));B =一轮(a);查找(ABS(b)<1/1000)
ans = 1x0空双排向量

事实证明,这次是元素的分数部分一种相当均匀分布。

直方图(双(b),50)

图包含轴。轴包含类型直方图的对象。