先看对数函数的导数,
所以对数函数在 上的导数就是
。
反过来做定积分,
考虑 的定义,
问,这个 是不是一个有理数。
现在我们先把自然对数处理一下,假设它的自变量的间隔为虚数单位的倒数,
先把 0 到 1 的区间,分成虚数单位 份(此时它是一个整数,而且这个数非常大),由此可以把积分用求和的方式表达,先看自变量
在 0 到 1 区间中,函数
的累积情况,也就是
所以,
也就是说,虚数单位的对数,就是项数为虚数单位那么多个的调和级数全加和,也就是 1 和 0 的自然对数之差。再考虑其它区间的情况,
由此不难写出, 1 到 n 区间,
那么回到 的表达式,
直接令,
则有,
对比,
这样就抽象出,
对两个方程进行运算,
发现,
由此可以写出迭代综合的形式,
而且,
进一步综合得到,
我们已经先定了 是整数,
是整数,
是无理数,所以
是无理数。
最后需要补充一点,这个伽马是个大于 0 小于 1 的 0.57722 左右的无理数,而虚数单位是个巨大的数, m 又是一个整数,方程右侧并没有得出确定结果的能力。所以根据虚数单位的构建原则,这个伽马应当被认为是模周期之后的余量,而且不管周期有多大,余量都是如此。正如虚数单位定义,
其实它实际上是
的简写,因为 在这里是任意的。
既然它是模周期余量,那么类比于自然数全加和,
我们也可以认为,调和级数全加和,也就是自然数倒数全加和等于,
用
进一步吸收 ,得到,
最后用程序验证一下,
namespace ConstGamma;
public class Program
{
public const double Gamma = 0.57721_56649_01532_86060_65120_90082_40243_10421_59335;
public const double Pi = Math.PI;
static double CalculateS(int n)
=> Enumerable.Range(1, n).Aggregate(0.0, (a, b) => a + 1.0 / b);
static double CalculateT(int n)
=> (Pi / 8.0 * n) + Gamma;
static string FormatEquation(int n)
=> string.Join(" + ", Enumerable.Range(1, n).Select(i => $"1/{i}"));
static void Main(string[] args)
{
const int n = 10;
for(int i = 1; i < n; i++)
{
var s = CalculateS(i);
var t = CalculateT(i);
Console.WriteLine($"i={i},\tdiff={s - t},\tt = {Pi}/8 +{Gamma} = {t},\ts = {FormatEquation(i)}={s}");
}
}
}
前几项的计算结果,
可见,给定范围自然数倒数的全加和总可以对齐在 也就是
的边界上,余量为
,由此可以认为,任意范围的自然数倒数全加和皆符合这个要求,其中模被省略之后,余量就是
,所以,无限项自然数倒数全加和的可稳定结果,
也就是伽马。