主要内容

发现几乎与高精度运算整数

算法寻找整数关系[1],如PSLQ算法,需要高精度运算产生精确的结果。输入算法的精度越高,信心程度越大的算法可以找到一个整数关系不仅仅是一个数字工件。PSLQ算法可以遇到误报,例如那些由于几乎整数。

这个例子展示了如何找到几乎整数,或数字非常接近整数,使用可变精度运算符号数学工具箱™。这个示例搜索几乎整数(或near-integers)的形式 经验值 ( π n ) 经验值 ( π n ) 的整数 n = 1 , , 200年

首先,考虑的一个著名例子几乎整数[2]这是实数 经验值 ( π 163年 ) 。创建这个实数作为一个精确的符号数字。

r = exp(π* sqrt(信谊(163)))
r =
                 
                  
                   
                    
                     
                      e
                    
                    
                     
                      
                       
                        π
                       
                       
                       
                        
                         
                          163年
                        
                       
                      
                     
                    
                   
                  
                 

评估这个数可变精度算法使用vpa。默认情况下,vpa计算值32位有效数字。

vpa(右)
ans =
                 
                  
                   
                    262537412640768743.99999999999925
                  
                 

你可以改变有效数字的数量用更高的精度数字。评估相同数量40位有效数字。

数字(40)vpa(右)
ans =
                 
                  
                   
                    262537412640768743.9999999999992500725972
                  
                 

这个数字非常接近一个整数。找到这个实数之间的区别及其最近的整数。使用vpa评估这个结果到40位有效数字。

博士= vpa(圆(r) - r)
博士=
                 
                  
                   
                    0.0000000000007499274028018143151532171817442410122968
                  
                 

接下来,寻找几乎整数的形式 经验值 ( π n ) 的整数 n = 1 , , 200年 。创建这些数字是准确的符号数字。

一个= exp(π* sqrt(信谊(1:200)));

有效数字的数量设置为数字的整数部分的数量 经验值 ( π 200年 ) + 20小数点。

d = log10 (());数字(装天花板(d) + 20)

评估这一系列的数字之间的差异和他们最近的整数。发现几乎整数的舍入误差小于0.0001。显示的结果准确的符号形式。

B = vpa(圆(一)——);A_nearint = (abs (B) < 0.0001)”
A_nearint =

( e π 37 e π 58 e π 67年 e π 163年 )

评估几乎整数的精度至少20个小数点。

A_nearint = vpa (A_nearint)
A_nearint =

( 199148647.9999780465518567665009238753359 24591257751.99999982221324146957619235527 147197952743.9999986624542245068292613126 262537412640768743.9999999999992500725972 )

绘制柱状图的差异来显示他们的分布。分布有许多的差异出现接近于零,在表单 经验值 ( π n ) 几乎是一个整数。

柱状图(双(B), 40)

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

接下来,寻找几乎整数的形式 经验值 ( π n ) 的整数 n = 1 , , 200年 。创建这些数字是准确的符号数字。

一个= exp(信谊(π)* 1:200);

有效数字的数量设置为数字的整数部分的数量 经验值 ( π 200年 ) + 20小数点。

d = log10 (());数字(装天花板(d) + 20)

评估这一系列的数字之间的差异和他们最近的整数。发现几乎整数的舍入误差小于0.0001。结果是空的信谊数组,这意味着几乎没有满足这个条件的整数。

B = vpa(圆(一)——);A_nearint = (abs (B) < 0.0001)
A_nearint =空信谊:1-by-0

绘制柱状图的差异。直方图相对均匀分布并显示表单 经验值 ( π n ) 几乎没有出现的许多整数。对于这个特定的例子中,几乎没有整数的舍入误差小于0.0001。

柱状图(双(B), 40)

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

最后,恢复默认32位有效数字的精度进行进一步的计算。

数字(32)

引用

[1]“整数关系的算法。“在维基百科,2022年4月9日。https://en.wikipedia.org/w/index.php?title=Integer_relation_algorithm&oldid=1081697113

[2]“几乎整数。“在维基百科上,12月4日,2021年。https://en.wikipedia.org/w/index.php?title=Almost_integer&oldid=1058543590

另请参阅

||

相关的话题