数系从整数扩张到实数,其实并不是一件简单的事情。
光增加实数本身意义不大,对应的计算规则也需要跟着扩张。否则就好像兑换了比特币,但发现没有消费场景,这就尴尬了。
比如,我们知道:
$$x^2=x*x$$
通过极限理论,可以把乘方扩展到实数范围,比如:
$$x^\pi\quad x^e$$
那么,下面这两个针对正整数的运算是否可以扩展到实数范围:
阶乘是定义在正整数上的,比如:
$$
\begin{aligned}
&1!=1\\
&2!=2\times 1 = 2\\
&3!=3\times 2\times 1 = 6\\
&\cdots
\end{aligned}
$$
那么:
$$0!=?$$
定义0的阶乘等于多少,数学家最主要考虑的是自洽。
自洽的意思是说,数学是环环相扣的,增加一个新的定义,必须让之前的公理、公式都成立。否则得不偿失。
我们来考虑$e^x$的泰勒展开:
$$
e^x=\sum_{n=0}^{+\infty}\frac{x^n}{n!}
$$
那么令$x=0$有:
$$
\begin{aligned}
e^0
&=\sum_{n=0}^{+\infty}\frac{0^n}{n!}\\
&=\frac{0^0}{0!}+\frac{0^1}{1!}+\frac{0^2}{2!}+\cdots\\
&=1
\end{aligned}
$$
已知$0^0=1$(关于这个的定义又是另外的故事了,这里不讨论),于是,必须定义:
$$0^0=0!=1$$
才能让上面这个等式成立,才能自洽。
现在我们知道了:
$$
\begin{aligned}
&0!=1\\
&1!=1\\
&2!=2\times 1 = 2\\
&3!=3\times 2\times 1 = 6\\
&\cdots
\end{aligned}
$$
放在坐标轴上也就是这些点:
要把阶乘扩展到实数,最自然的想法就是找到一条穿过这些点的线,比如:
这种折线我们一般不考虑,性质太差,好多地方不可导,这样插值在数学里面意义不大。
看着还行,但是插值点多了之后(下面增加了$4!,5!,6!$三个插值点),图像就很曲折:
我这里介绍一种插值方法,考虑这个积分:
$$
\int_0^{\infty}e^{ax}dx=-\frac{1}{a},a < 0
$$
两边对$a$求$n$次导:
$$
\begin{aligned}
\frac{d^n}{da^n}\int_0^{\infty}e^{ax}dx
&=\int_0^{\infty}\frac{d^n}{da^n}e^{ax}dx\\
&=\int_0^{\infty}x^ne^{ax}dx\\
&=\frac{(-1)^{n+1}n!}{a^{n+1}}
\end{aligned}
$$
即得到:
$$
\int_0^{\infty}x^ne^{ax}dx=\frac{(-1)^{n+1}n!}{a^{n+1}}
$$
令$a=-1$,得到:
$$
\int_0^{\infty}x^ne^{-x}dx=n!
$$
这个就是我们要的插值函数,稍微换一下符号,写作(高斯就是这么标记的):
$$
\prod(x)=\int_0^{\infty}t^xe^{-t}dx
$$
此时有:
$$
\begin{aligned}
&\prod(0)=0!=1\\
&\prod(1)=1!=1\\
&\prod(2)=2!=2\times 1 = 2\\
&\prod(3)=3!=3\times 2\times 1 = 6\\
&\cdots
\end{aligned}
$$
欧拉和勒让德把这个稍微改动了一下,就是现在用的Gamma函数:
$$
\Gamma(x)=\int_0^{\infty}t^{x-1}e^{-t}dx
$$
此时有:
$$
\begin{aligned}
&\Gamma(1)=0!=1\\
&\Gamma(2)=1!=1\\
&\Gamma(3)=2!=2\times 1 = 2\\
&\Gamma(4)=3!=3\times 2\times 1 = 6\\
&\cdots
\end{aligned}
$$
图像如下:
可能大家非常不习惯,为啥:
$$\Gamma(x)=(x-1)!$$
大家猜测这样定义的话,欧拉后来定义的beta函数会比较对称:
$$
{\displaystyle B (x,y)={\frac {\Gamma (x)\,\Gamma (y)}{\Gamma (x+y)}}.}
$$
否则按照高斯的标记法,beta函数得长这个样子:
$$
{\displaystyle B (x,y)={\frac {\prod (x)\,\prod (y)}{\prod (x+y+1)}}.}
$$
可能到时候同学们又会抱怨beta函数难以记住了。
哎,总之阴差阳错,gamma函数就是长这个样子了。就好像圆的周长是:
$$2\pi R$$
为什么会多个$2$啊?这也是欧拉给我们留下的数学遗产。
其实,能够完成插值的函数不止一个,有非常多,比如:
再比如:
要我说,上面这两个插值函数还好一些,不像Gamma函数在$x\le 0$的时候,还有非常多的点取不到值,也不单调。
数学家也无法彼此说服,直到Bohr-Mullerup定理出现,平息了大部分的争论。
Bohr-Mullerup定理说的是,Gamma函数是唯一在定义域$(0,\infty)$中,满足以下三个条件的函数:
-
$f(1)=1$
-
$f(x+1)=xf(x)$
-
$log f(x)$是凸函数
前面两个条件不说了,以上的插值函数都满足,数学家最看中的是最后一个条件。
怎么说呢?最后这个条件说明这个函数性质良好,在可选的插值函数中选择一个这样的函数,数学家很满意。
当然,其他的插值函数在某些条件下也是有用的,具体可以参看
这篇文章。
要是对$x^n$求导,令:
$$f(x)=x^n$$
有:
$$f^{(k)}(x)=\frac{n!}{(n-k)!}x^{n-k}$$
那么用Gamma函数来重新定义结果:
$$f^{(k)}(x)=\frac{\Gamma(n+1)}{\Gamma(n-k+1)}x^{n-k}$$
这样,导数又可以扩展到分数阶,比如:
$$f^{(\frac{1}{2})}(x)=\frac{\Gamma(\frac{1}{2}+1)}{\Gamma(n-\frac{1}{2}+1)}x^{n-\frac{1}{2}}$$
确实,这是分数微积分的起点。
从整数到实数,数系的扩张很不简单,需要数学家们付出巨大的努力。通过Gamma函数可见一斑。
关于数系的扩张,也曾经写过几篇相关的文章:
本文参考: