|

楼主 |
发表于 2019-1-13 22:38
|
显示全部楼层
本帖最后由 愚工688 于 2019-1-13 14:52 编辑
也不是往哈李公式上面转。
使用素数连乘式计算偶数的素对数量,存在着一个误差修正的问题。
否则对于一亿以上的偶数,计算值的相对误差始终在10%以上,那样就太差了一些。但是由于相对误差的偏差值是随着偶数的增大而缓慢增大的,故需要在不同的偶数区域采用不同的修正系数来进行计算,才能收到计算值始终保持在高精度的范围。我目前对大偶数素对的高精度的计算就是这样做的。
哈李公式,由于采用了对数计算,对于比较大的偶数,其计算的速度要远远快于素数连乘式,而这个方法也是大多数数学家在研究哥猜时采用的。因为真正的计算偶数的素对数量,起步于哈代-李特伍德的研究。
而哈-李公式(单计)在小偶数区域的计算值的相对误差,与素数连乘式一样分布的范围比较大;而到稍大一些时,基本上处于负值的状态,并且相对误差的绝对值趋近于一个小范围内波动,而这个相对误差的偏差,据说会随着偶数的趋向无穷大而逐渐趋近于0。因此哈李公式被称为渐近式。
我只能计算有限大的偶数。因此在我能够计算的范围内(<10^15),有可能用一个修正系数来进行修正。
我这里探索使用修正系数的方法来用类似哈李计算式的方法进行计算,应该效果也是比较好的。
看看上面的对n=20至34的帖子中计算 M= 2^n 起的连续偶数的素对数量的计算值的相对误差的数据,就可以看到。
当然同样的修正系数的解析式,用素数连乘式时也能够采用,那样不同偶数区域的修正系数也可以采用一个解析式近似计算出来。目前我没有着手做。因为一来需要对不同区域的相对误差的偏差做大量的统计数值,再试验构造修正系数的回归式;二来大偶数时用素数连乘式的计算速度本来就不快,是否会使得计算速度慢得使人难以忍受?
而目前的素数连乘式方法的计算精度,在网络上,似乎还是少有匹敌的。使用起来也比较顺手的。
你的计算式,如果式子本身中不含有波动系数,那么怎么可能能够比较精确的计算连续的偶数呢?因为实际偶数的表为两个素数和的数量本身是在波动变化的。
比如:100亿起始的连续偶数:
在具有波动性的偶数M的素对下界计算值 inf( m)的相对误差绝对值小于0.001的情况下,inf( m )图形几乎与真值 G(M)的图形重合。大小变化规律几乎完全一致。
而偶数表法数的区域下界函数值infS(m)则随着偶数的增大,始终缓慢的攀升,表明大偶数的表法数下限是逐渐上升的。
G(10000000000) = 18200488;
Sp( 10000000000 *)≈ 18192520.4 , Δ≈-0.0004378,infS(m)= 13644390.26 , k(m)= 1.33333
G(10000000002) = 27302893;
Sp( 10000000002 *)≈ 27288780.5 , Δ≈-0.0005169,infS(m)= 13644390.27 , k(m)= 2
G(10000000004) = 13655366;
Sp( 10000000004 *)≈ 13644390.3 , Δ≈-0.0008038,infS(m)= 13644390.27 , k(m)= 1
G(10000000006) = 13742400;
inf( 10000000006 )≈ 13737209.3 , Δ≈-0.0003777,infS(m)= 13644390.27 , k(m)= 1.0068
G(10000000008) = 27563979;
inf( 10000000008 )≈ 27548673.7 , Δ≈-0.0005553,infS(m)= 13644390.27 , k(m)= 2.01905
G(10000000010) = 28031513
inf( 10000000010 )≈ 28018960 , Δ≈-0.0004478,infS(m)= 13644390.28 , k(m)= 2.05351
G(10000000012) = 13654956;
inf( 10000000012 )≈ 13647157.3 , Δ≈-0.0005711,infS(m)= 13644390.28 , k(m)= 1.0002
G(10000000014) = 27361348;
inf( 10000000014 )≈ 27348233.3 , Δ≈-0.0004793,infS(m)= 13644390.28 , k(m)= 2.00436
G(10000000016) = 13708223;
inf( 10000000016 )≈ 13701479.8 , Δ≈-0.0004919,infS(m)= 13644390.29 , k(m)= 1.00418
G(10000000018) = 13781412;
inf( 10000000018 )≈ 13776842.4 , Δ≈-0.0003316,infS(m)= 13644390.29 , k(m)= 1.00971
G(10000000020) = 37335123;
inf( 10000000020 )≈ 37319942.4 , Δ≈-0.0004066,infS(m)= 13644390.29 , k(m)= 2.73519
G(10000000022) = 13653503;
inf( 10000000022 )≈ 13646792.1 , Δ≈-0.0004915,infS(m)= 13644390.29 , k(m)= 1.00018
G(10000000024) = 16587802;
inf( 10000000024 )≈ 16575407.5 , Δ≈-0.0007472,infS(m)= 13644390.3 , k(m)= 1.21481
G(10000000026) = 28871083;
inf( 10000000026 )≈ 28857101.3 , Δ≈-0.0004843,infS(m)= 13644390.3 , k(m)= 2.11494
G(10000000028) = 13665084;
inf( 10000000028 )≈ 13661050.1 , Δ≈-0.0002952,infS(m)= 13644390.3 , k(m)= 1.00122
G(10000000030) = 19127680;
inf( 10000000030 )≈ 19121318.9 , Δ≈-0.0003326,infS(m)= 13644390.3 , k(m)= 1.40141
G(10000000032) = 32355048;
inf( 10000000032 )≈ 32342258.5 , Δ≈-0.0003953,infS(m)= 13644390.31 , k(m)= 2.37037
若把这些偶数的波动系数 k(m) 从大到小的排列起来,那么这些偶数分为两个素数的真值数量也同样排列好了:
G(10000000020) = 37335123; k(m)= 2.73519
G(10000000032) = 32355048; k(m)= 2.37037
G(10000000026) = 28871083; k(m)= 2.11494
G(10000000010) = 28031513 , k(m)= 2.05351
G(10000000008) = 27563979; k(m)= 2.01905
G(10000000014) = 27361348; k(m)= 2.00436
G(10000000002) = 27302893; k(m)= 2
G(10000000030) = 19127680; k(m)= 1.40141
G(10000000000) = 18200488; k(m)= 1.33333
G(10000000024) = 16587802; k(m)= 1.21481
G(10000000018) = 13781412; k(m)= 1.00971
G(10000000006) = 13742400; k(m)= 1.0068
G(10000000016) = 13708223; k(m)= 1.00418
G(10000000028) = 13665084; k(m)= 1.00122
G(10000000012) = 13654956; k(m)= 1.0002
G(10000000022) = 13653503; k(m)= 1.00018
G(10000000004) = 13655366; k(m)= 1
这就是波动系数与实际真值 之间的关联。不含有波动系数的计算式,若想比较高精度的计算连续偶数的素对数量,理论上是不可能做到的。
|
|