主要内容

高精度数值计算

此示例演示如何使用变精度算法使用符号数学工具箱获得高精度计算™.

搜索表示接近整数的公式。一个典型的例子如下:compute 经验 ( 1. 6. 3. π ) 到30位。结果显示为整数,并显示舍入错误。

数字(30);f=exp(sqrt(sym(163))*sym(pi));vpa(f)
ans=
                
                 
                  
                   262537412640768743.999999999999
                 
                

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

数字(40);vpa(f)
ans=
                
                 
                  
                   262537412640768743.9999999999992500725972
                 
                

进一步调查这一现象。以下为数字,最多为 经验 ( 1. 0 0 0 ) 发生,并且调查需要小数点后的一些正确数字。计算所需的工作精度:

d=log10(exp(vpa(1000)))
d=
                
                 
                  
                   434.2944819032518276511289189166050822944
                 
                

在第一次调用依赖它的函数之前设置所需的精度。在其他中,圆形的,vpa双重的这些都是功能。

数字(ceil(d)+50);

寻找类似的表单示例 经验 ( N π ) . 当然,用163乘以一个平方可以得到更多这样的数字n。但除此之外,更多的这种形式的数字接近于某个整数。您可以从其分数部分的直方图图中看到这一点:

A=exp(pi*sqrt(vpa(1:1000));B=A轮(A);直方图(双(B),50)

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

计算是否存在以下形式的近似整数 经验 ( N ) .

A=exp(vpa(1:1000));B=A-round(A);find(abs(B)<1/1000)
ans=1x0空双行向量

结果表明,这一次,元素的分数部分A.分布相当均匀。

直方图(双(B),50)

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