Mathematica强大的计算能力,可以很容易地实现数据的拟合,不过,素数公式能不能通过数据拟合的方法得出来?可是,通过几组实验,没找到靠谱的素数公式。
工具/原料
1
电脑
2
Mathematica
方法/步骤
1
首先 ,给出一维素数列表:list=Table[Prime[n],{n,20}]再给出二维素数列表:list0=Table[{n,Prime[n]},{n,20}]
2
用 InterpolatingPolynomial 把前20个素数拟合为关于x的多项式,并作出这个多项式的图像。用这个多项式来检测前30个素数,发现结果很不靠谱!看来,拟合多项式是不可能得到素数公式的!
3
用 Interpolation 来对前20个素数进行插值拟合,得到函数f[x],并画出这个函数图像,把素数的散点图也画出来。代入具体的数值,发现数值已经脱离常态,变成负数了。
4
用ListFit拟合前20个素数,并把拟合方向指定为对数函数和正比例函数的线性组合,检测一下,误差不少。
注意事项
1
由此可知,用拟合的方法求出素数公式,是不大可能的!
2
奇怪的是,Mathematica里面的素数公式Prime[]是怎么来的呢?
下一篇:Java中100以内的素数