找回密码
 快速注册
搜索
查看: 41|回复: 23

[函数] 400多年前的常用对数表是如何制作的

[复制链接]

830

主题

4862

回帖

3万

积分

积分
36159

显示全部楼层

isee 发表于 2025-1-12 18:11 |阅读模式
源自知乎提问



问:如何徒手算出10000以内任意整数的常用对数?




早在1624年英国数学家布里格斯(Briggs)就超额完成了

63 岁的布里格斯在 1624 年出版了《对数算术》中载有真数 $1-20\ 000$ , $90\ 000-100\ 000$ 这三万个数的 14 位尾数为常对数表——世界上第一个常用对数表诞生.

1628 年荷兰人德斯克和费拉格补齐 $20\ 000-90\ 000$ 之的“空隙”,并出版了也称《对数算术》的书,这个对数表是尾数 10 位数.

这九万个真数,从纳皮尔始,共经历了 13 年.

再后来,有了对数计算尺,再再后来他们都进历史博物馆,完全被袖珍计算器取代.

如今日常中完全被小小手机“掌控”.

那么布里格斯等人是几何手制作对数表的呢?布里格斯在 1624 年的另一本书《对数》中,给出了详尽的方法——把 $10$ 不断的开平方,如图 1

图 1

图 1



举例来说,如计算 $\lg 5$ ,要完成 22 次开方运算!如图 2,当年布里格斯的运算方式.

图 2

图 2


在那年时段里,布里格斯等人用有限的生命去完全无限的真数表是伟大的,但是在现在用有限的生命虽可计算到任意精度却是无聊的.

来来来,欣赏一下曾经的中学生用的《中学数学用表》中部分(虽然不是布里格斯的原始表,但原理本质一样),如图 3.

图 3

图 3


好在这种“原始”的计算方法,仅仅过了半个世纪就有了重大改进:级数.

那么又如何具体编辑对数表呢?赫德,麦卡托,泰勒给出“法宝” \[\ln(1+x)=x-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+\frac{x^5}5-\cdots,\ (-x<x\leqslant 1),\] 作置换 $x\mapsto -x$ \[\ln(1-x)=-x-\frac{x^2}2-\frac{x^3}3-\frac{x^4}4-\frac{x^5}5-\cdots,\ (-1\leqslant x<1),\] 两式相减 \[{\color{blue}{\ln\frac{1+x}{1-x}=2\left(x+\frac{x^3}3+\frac{x^5}5+\frac{x^7}7+\cdots\right),\ |x|<1}},\] 令 $x=\frac1{2n+1}<1,\ n\in\mathbb N^*$ ,整理就得到 \[\ln(n+1)=\ln n+\frac{2}{2n+1}+\frac{2}{3(2n+1)^3}+\frac{2}{5(2n+1)^5}+\cdots,\] 于是由 $\ln 1=0$ 开始,逐步算出所有自然数的自然对数,编制自然对数表了.

如,取 $n=1$ ,则(请注意没有开方运算) \begin{align*}
\ln 2&=0+\frac2{2+1}+\frac2{3(2+1)^3}+\frac2{3(2+1)^5}+\frac2{3(2+1)^7}+\cdots\\[1ex]
&\approx 0+0.666\ 667+0.024\ 691+0.001\ 646+0.000\ 131\\[1ex]
&=0.693\ 135\\[1ex]
&\approx 0.693\ 14,
\end{align*} 进一步可知前四位小数是完全准确的.

可能有中学生就要问了,这什么时候学呢?大学,大一就能学到了,属于标签中的《数学分析》内容,如华东师大《数学分析》上册第三版第 142 页第 5 题(2) $\lg 11$ 准确到 $10^{-5}$ ,图 4,还对对误差进行了讨论.

图 4

图 4


然后由对数换底公式 \[\lg n=\frac{\ln n}{\ln 10}=\frac{\ln n}{2.303\ 585\cdots}=0.434\ 294\cdots \ln n.\]

在现如今,级数的计算依然有各种优化,如正解@知乎的文章.
isee=freeMaths@知乎

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 18:33
isee 发表于 2025-1-12 10:11
赫德,麦卡托,泰勒给出“法宝” \[\ln(1+x)=x-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+\frac{x^5}5-\cdots,\ (-x<x\leqslant 1),\]


该级数可以通过泰勒定理获得,通过数学归纳法,计算 $\ln(x)$ 在 $x=1$ 处的第 $n$ 阶导数,$\frac{d}{dx}\ln(x)=\frac1{x}.$
\[
\frac{\mathrm{d}^n}{\mathrm{d} x^n} \ln x=\frac{(n-1)!(-1)^{n-1}}{x^n}
\]
或者:可以从公比为 $-t\ne 1$ 的等比数列开始
$$1-t+t^2-\cdots+(-t)^{n-1}=\frac{1-(-t)^n}{1+t}$$
这给出
$$\frac1{1+t}=1-t+t^2-\cdots+(-t)^{n-1}+\frac{(-t)^n}{1+t}.$$
由此可得
$$\int_0^x \frac{dt}{1+t}=\int_0^x \left(1-t+t^2-\cdots+(-t)^{n-1}+\frac{(-t)^n}{1+t}\right)\ dt$$
通过逐项积分,
$$\ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\cdots+(-1)^{n-1}\frac{x^n}{n}+(-1)^n \int_0^x \frac{t^n}{1+t}\ dt.$$
如果 $-1<x\le 1$ ,当 $n\to\infty$ 时,余项趋于0。
该表达式可以再迭代积分 $k$ 次,得到
$$-xA_k(x)+B_k(x)\ln(1+x)=\sum_{n=1}^\infty (-1)^{n-1}\frac{x^{n+k}}{n(n+1)\cdots (n+k)},$$
其中
$$A_k(x)=\frac1{k!}\sum_{m=0}^k{k\choose m}x^m\sum_{l=1}^{k-m}\frac{(-x)^{l-1}}{l}$$

$$B_k(x)=\frac1{k!}(1+x)^k$$
是 $x$ 的多项式。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 18:39
isee 发表于 2025-1-12 10:11
好在这种“原始”的计算方法,仅仅过了半个世纪就有了重大改进:级数.


High precision
为了计算具有多位精度的自然对数,泰勒级数方法效率不高,因为收敛速度很慢。特别是当 x 接近 1 时,一个好的替代方法是使用 Halley 方法或牛顿方法来反转指数函数,因为指数函数的级数收敛更快。为了使用 Halley 方法找到使 $ \exp(y)-x=0 $ 的 y 值,或者等效地使用牛顿方法找到使 $ \exp(y/2)-x\exp(-y/2)=0 $ 的 y 值,迭代简化为
$ {\displaystyle y_{n+1}=y_{n}+2\cdot {\frac {x-\exp(y_{n})}{x+\exp(y_{n})}}} $
它具有对 $ \ln(x) $ 的三次收敛性。

另一种用于极高精度计算的替代方法是公式
$ {\displaystyle \ln x\approx {\frac {\pi }{2M(1,4/s)}}-m\ln 2,} $
其中 M 表示 1 和 4/s 的算术-几何平均数,并且
$ {\displaystyle s=x2^{m}>2^{p/2},} $
选择 m 以达到 p 位精度。(对于大多数用途,m 的值为 8 就足够了。)事实上,如果使用这种方法,自然对数的牛顿反转可以反过来用于高效计算指数函数。(常数 $ \ln 2 $ 和 $π$ 可以使用几种已知的快速收敛级数预先计算到所需的精度。)或者,可以使用以下公式:
$ {\displaystyle \ln x={\frac {\pi }{M\left(\theta _{2}^{2}(1/x),\theta _{3}^{2}(1/x)\right)}},\quad x\in (1,\infty )} $

其中
$ {\displaystyle \theta _{2}(x)=\sum _{n\in \mathbb {Z} }x^{(n+1/2)^{2}},\quad \theta _{3}(x)=\sum _{n\in \mathbb {Z} }x^{n^{2}}} $
是雅可比 theta 函数。

根据 William Kahan 的提议,并于 1979 年首次在 Hewlett-Packard HP-41C 计算器中实现(在显示屏上仅称为 "LN1"),一些计算器、操作系统(例如 Berkeley UNIX 4.3BSD)、计算机代数系统和编程语言(例如 C99,是 C 编程语言开放标准的过去版本)提供了一种特殊的自然对数加 1 函数,替代地命名为 LNP1 或 log1p,以通过传递接近零的参数 x(也接近零)给函数 log1p(x) 来获得更准确的接近零的对数结果,而不是传递接近 1 的值 y 给返回 ln(y) 的函数。函数 log1p 避免了浮点运算中泰勒展开式的绝对项 1 与第二项的近似抵消。这使得参数、结果和中间步骤都接近零,在那里它们可以最准确地表示为浮点数。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 18:54

Remez minimax algorithm

isee 发表于 2025-1-12 10:11
在现如今,级数的计算依然有各种优化

https://quadst.rip/ln-approx

泰勒级数收敛很慢。

这个 SO 答案向我指出了Remez 算法,虽然我并不完全理解它,但近似的简单性和准确性确实看起来非常好。

他们在答案中仅给出了范围$[1,2]$的 4 阶近似值:
−1.7417939+(2.8212026+(−1.4699568+(0.44717955−0.056570851x)x)x)x
但是我也想尝试找出 3 阶,因为在我的应用程序中,我可以用稍微低一点的精度(和更快的速度)来完成。我没有答案中提到的 Maple 软件,但我找到了这篇博客文章,其中作者使用 C++ 的Boost 库内置函数计算了 atan2 近似值。
−1.49278+(2.11263+(−0.729104+0.10969x)x)x

ln-approx-1[1].png
▲ 误差太小,人眼无法从图中观察到

如果我们用四阶多项式代替三阶多项式,即
return -1.7417939+(2.8212026+(-1.4699568+(0.44717955-0.056570851*x)*x)*x)*x+0.6931471806*t;
我们甚至可以将(绝对)误差缩小到:
avg_err=0.000039, max_err=0.000061
是的!小数点后有四个零。

现在为了测试算法的速度,我们可以使用下面的代码:

#include <sys/time.h>
#include <stdlib.h>

int main(){
  srand(time(NULL));
  float* ans = malloc(sizeof(float)*100);
  unsigned int N = 1000000000;

  {
    struct timeval t0, t1;
    unsigned int i;
    gettimeofday(&t0, NULL);
    for(i = 0; i < N; i++){
      float y = log((float)i/1000.0);
      ans[i%100]=y;
    }
    gettimeofday(&t1, NULL);
    printf("%u <math.h> log() calls in %.10f seconds\n", i, t1.tv_sec - t0.tv_sec + 1E-6 * (t1.tv_usec - t0.tv_usec));
  }

  {
    struct timeval t0, t1;
    unsigned int i;
    gettimeofday(&t0, NULL);
    for(i = 0; i < N; i++){
      float y = ln((float)i/1000.0);
      ans[i%100]=y;
    }
    gettimeofday(&t1, NULL);
    printf("%u ln() calls in %.10f seconds\n", i, t1.tv_sec - t0.tv_sec + 1E-6 * (t1.tv_usec - t0.tv_usec));
  }

  printf("spot check: %f\n",ans[rand()%100]);
  return 0;
}

注意我们如何初始化一个小数组,在计算对数时修改数组的元素,最后随机抽样并打印数组的一个元素。这是为了防止 C 编译器变得“太聪明”,并优化整个循环:我们正在进行“抽查”,以确保gcc没有通过跳过所有工作来作弊!

编译并运行:

gcc -O3 ln.c ; time ./a.out

在我的旧 MacBook 上,我得到的是:

1000000000 <math.h> log() calls in 10.5289920000 seconds
1000000000 ln() calls in 2.8090880000 seconds

速度几乎快了四倍!

如果我们使用四阶多项式:

1000000000 <math.h> log() calls in 10.5589010000 seconds
1000000000 ln() calls in 3.2228910000 seconds

但速度仍是原来的三倍多!

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 19:02
hbghlyj 发表于 2025-1-12 10:54
这个 SO 答案向我指出了Remez 算法,虽然我并不完全理解它,但近似的简单性和准确性确实看起来非常好。

算法的主要目的是从一个集合$ X $得到一个可以逼近函数$ f $的多项式。集合$ X $由近似的区间上的$ n+2 $个取样点$ x_{1},x_{2},...,x_{n+2} $组成,通常由Chebyshev多项式线性映射至该区间得到。算法步骤如下:

  1. 解线性方程组
$ b_{0}+b_{1}x_{i}+...+b_{n}x_{i}^{n}+(-1)^{i}E=f(x_{i}) $ (其中 $ i=1,2,...n+2 $),
未知数为 $ b_{0},b_{1},...,b_{n} $ 和 $ E $
  1. 使用 $ b_{i} $ 作為多項式 $ P_{n} $ 的係數。
  2. 找出$ |P_{n}(x)-f(x)| $的局部极大误差点,组成集合$ M $
  3. 若所有 $ m\in M $ 都是相同大小,仅正负号不同的话,则 $ P_{n} $ 为极小化极大逼近多项式。否则的话,使用$ M $取代$ X $并重复上述步骤。

此结果称为极小化极大逼近算法的最佳逼近多项式。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 19:08

證明不存在誤差少於 E 之 n 次多項式。

The de la Vallée-Poussin alternation theorem: If a sequence of points $ \{ x _ {i} \} $, $ i = 0 \dots n + 1 $, in a closed set $ Q \in [a, b] $ forms an alternation, then for the best approximation of a function $ f $ by polynomials of the form $$ P _ {n} (x) = \ \sum _ {k = 0 } ^ { n } c _ {k} s _ {k} (x), $$ the estimate $$ E _ {n} (f ) = \ \inf _ {c _ {k} } \ \sup _ {x \in Q } \ \left | f (x) - \sum _ {k = 0 } ^ { n } c _ {k} s _ {k} (x) \right | \geq $$ $$ \geq \ \mathop{\rm min} _ {0 \leq i \leq n + 1 } \ | f (x _ {i} ) - P _ {n} (x _ {i} ) | $$ is valid, where $ {\{ s _ {k} (x) \} } _ {0} ^ {n} $ is a Chebyshev system.

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 19:13

證明不存在誤差少於 E 之 n 次多項式。

我尝试理解de la Vallée-Poussin定理。但我不明白橙色部分:
nvuD5[1].png
我真的不明白为什么它们需要有相同符号。如能提供任何帮助我将不胜感激 :)

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 19:16
给定$n +2$个有序节点处的误差依次为正和负$E$,
$ p(x_{i})-f(x_{i})\ =\ -(-1)^{i}E,\ \ i=0,...,n\!+\!1. $
在这种情况下,不存在误差小于E的n次多项式。

简单证明:
如果存在这样的多项式,称之为$ {\tilde {p}}(x) $,那么差值 $ p(x)-{\tilde {p}}(x)=(p(x)-f(x))-({\tilde {p}}(x)-f(x)) $在$n +2$个节点$ x_{i} $处仍为正/负,因此至少有$n +1$个零点,而这对于$n$次多项式来说是不可能的。因此,这个$E$是$n$次多项式可以实现的最小误差的下限。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 20:12
isee 发表于 2025-1-12 10:11
赫德,麦卡托,泰勒给出“法宝” \[\ln(1+x)=x-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+\frac{x^5}5-\cdots,\ (-x<x\leqslant 1),\]
在$x=1$处的等式的证明见 en.wikipedia.org/wiki/Abel%27s_theorem
The utility of Abel's theorem is that it allows us to find the limit of a power series as its argument (that is, $ z $) approaches $ 1 $ from below, even in cases where the radius of convergence, $ R, $ of the power series is equal to $ 1 $ and we cannot be sure whether the limit should be finite or not. See for example, the binomial series. Abel's theorem allows us to evaluate many series in closed form. For example, when
$ {\displaystyle a_{k}={\frac {(-1)^{k}}{k+1}},} $
we obtain
$ {\displaystyle G_{a}(z)={\frac {\ln(1+z)}{z}},\qquad 0<z<1,} $
by integrating the uniformly convergent geometric power series term by term on $ [-z,0] $; thus the series
$ {\displaystyle \sum _{k=0}^{\infty }{\frac {(-1)^{k}}{k+1}}} $
converges to $ \ln 2 $ by Abel's theorem.

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 20:23


$a_0=-\ln2,\;a_1=1,\;\dots,\;a_n=-(-1)^n\frac1n$
$G_a(z)=\sum_{n\ge0}a_nz^n,$ 下面证明$G_a(1)=a_0+a_1+\dots=0$.
作代换 $ a_{k}=s_{k}-s_{k-1} $,即$s_k=\sum_{n=0}^ka_n$,进行Abel变换(分部求和)得到
$ {\displaystyle G_{a}(z)=(1-z)\sum _{k=0}^{\infty }s_{k}z^{k}.} $
给定 $ \varepsilon >0, $ 选择足够大的 $ n $ 使得 $ |s_{k}|<\varepsilon $ 对于所有 $ k\geq n $ 并注意到
$ {\displaystyle \left|(1-z)\sum _{k=n}^{\infty }s_{k}z^{k}\right|\leq \varepsilon |1-z|\sum _{k=n}^{\infty }|z|^{k}=\varepsilon |1-z|{\frac {|z|^{n}}{1-|z|}}\le\varepsilon |1-z|{\frac {1}{1-|z|}}<\varepsilon M} $
当 $ z $ 位于给定的斯托尔兹角内时。每当 $ z $ 足够接近 $ 1 $ 时,我们有
$ {\displaystyle \left|(1-z)\sum _{k=0}^{n-1}s_{k}z^{k}\right|<\varepsilon ,} $
因此当 $ z $ 既足够接近 $ 1 $ 又在斯托尔兹角内时,$ \left|G_{a}(z)\right|<(M+1)\varepsilon $.
330px-Stolz_sector_plot.svg[1].png
上图为斯托尔兹角$ |1-z|\leq M(1-|z|) $.

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 20:34
isee 发表于 2025-1-12 10:11
赫德,麦卡托,泰勒给出“法宝” \[\ln(1+x)=x-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+\frac{x^5}5-\cdots,\ (-x<x\leqslant 1),\]
如果不用Abel定理,我们只能得到这个级数在$|x|<1$收敛,得不到它在$1$收敛
但我们可以通过$\log(\frac12)$来计算$\log(2)$
$$\log(2)=-\log\left(\frac12\right)=-\log\left(1-\frac12\right)=\sum_{k=1}^\infty\frac1{k2^k}.$$
这样$|-\frac12|<1$,我们只用在$|x|<1$收敛就可以计算$\log(2)$.

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 20:52
isee 发表于 2025-1-12 10:11
赫德,麦卡托,泰勒给出“法宝” \[\ln(1+x)=x-\frac{x^2}2+\frac{x^3}3-\frac{x^4}4+\frac{x^5}5-\cdots,\ (-x<x\leqslant 1),\]
这个级数的收敛域为 $\{z\inC:|z|\le1\wedge z\ne-1\}$,但$\log$的定义域为$\mathbb{C}\setminus\mathbb{R}_{\le0}$,如何计算不在收敛域内的函数值呢?我们需要Analytic continuation

图示是自然对数的解析延续(绘制对数的虚部)
Imaginary_log_analytic_continuation[1].png

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 21:06
hbghlyj 发表于 2025-1-12 12:52
如何计算不在收敛域内的函数值呢?我们需要Analytic continuation
On the Power Series for log (1 + z), Annals of Mathematics, 1916
当幂级数 $\sum_{n=0}^{\infty} c_n(z-a)^n$ 在 $|z-a|<r$ 内收敛时,解析延拓到点 $a'$,其中 $\left|a'-a\right|<r$,结果是
\[\tag3
\sum_{n=0}^{\infty} c_n(z-a)^n=\sum_{n=0}^{\infty} c_n{ }'\left(z-a'\right)^n
\]
其中$$\tag4 c_n'=\sum_{\nu=0}^{\infty} \frac{(n+\nu)!}{n!\nu!} c_{n+\nu}\left(a'-a\right)^\nu.$$


对于 $a=0, a'=a_1$,其中 $\left|a_1\right|<1$,且 $c_n=(-1)^{n-1} / n$,公式 (4) 给出
\[
\begin{aligned}
c_n' & =\sum_{\nu=0}^{\infty} \frac{(n+\nu)!}{n!\nu!} \frac{(-1)^{n+\nu-1} a_1^\nu}{n+\nu}\\&=\frac{(-1)^{n-1}}{n} \sum_{\nu=0}^{\infty} \frac{(n+\nu-1)!}{(n-1)!\nu!}\left(-a_1\right)^\nu \\
& =\frac{(-1)^{n-1}}{n} \cdot \frac{1}{\left(1+a_1\right)^n}, \quad(n \geqq 1),
\end{aligned}
\]
(最后一步是通过在展开式$
\frac{1}{(1-z)^n}=\sum_{\nu=0}^{\infty} \frac{(n+\nu-1)!}{(n-1)!\nu!} z^\nu
$中取 $z=-a_1$ 得到的
这个$\frac{1}{(1-z)^n}=\dots$的公式可以通过将$
\frac{1}{1-z}=\sum_{\nu=0}^{\infty} z^\nu
$乘 $n-1$ 次方展开或对其进行 $n-1$ 次求导来证明。)

代入(3)得,$\log (1+z)=\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n} z^n$ 在点 $a_1,\,\left|a_1\right|<1$ 的解析延拓为
\[
\log(1+a_1)+\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n\left(1+a_1\right)^n}\left(z-a_1\right)^n
\]
并且通过ratio test可以立即看出其收敛半径为 $\left|1+a_1\right|$.
page1-900px-AnalyticContinuationGraphic.pdf[1].jpg

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 21:35
hbghlyj 发表于 2025-1-12 13:06
代入(3)得,$\log (1+z)=\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n} z^n$ 在点 $a_1,\,\left|a_1\right|<1$ 的解析延拓为
\[
\log(1+a_1)+\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n\left(1+a_1\right)^n}\left(z-a_1\right)^n\]
并且通过ratio test可以立即看出其收敛半径为 $\left|1+a_1\right|$.


其实这个就是$\log(1+z)$在$z=a_1$的泰勒级数。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 21:45
hbghlyj 发表于 2025-1-12 13:06
代入(3)得,$\log (1+z)=\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n} z^n$ 在点 $a_1,\,\left|a_1\right|<1$ 的解析延拓为
\[
\log(1+a_1)+\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n\left(1+a_1\right)^n}\left(z-a_1\right)^n\]
并且通过ratio test可以立即看出其收敛半径为 $\left|1+a_1\right|$.

正$m$边形的顶点$a_\nu=-1+e^{2 \nu \pi i / m}, \nu=0,1, \cdots, m$
从$a_0=0$出发,将$\log(1+z)$依次解析延拓到$a_1,\dots,a_m$,又回到$a_m=0$.
这样从$0$出发,绕$-1$走一圈后,又回到$0$,我们的函数值竟然增加了
$$K=\sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n} \sum_{\nu=1}^m\left(\frac{a_\nu-a_{\nu-1}}{1+a_{\nu-1}}\right)^n$$
代入$a_\nu=-1+e^{2 \nu \pi i / m},$
\[
K=m \sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n}\left(e^{2 \pi i / m}-1\right)^n
\]
文章的末尾证明了$K=2\pi i$(与$m$无关的常数)。

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 21:48
hbghlyj 发表于 2025-1-12 13:45
这样从$0$出发,绕$-1$走一圈后,又回到$0$,我们的函数值竟然增加了


“增加”的函数值,可以从下图直观地看出:
125126gf1gxfoqtgg3agky[1].png
上方和下方的函数值之差为$2\pi i$

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 22:04
hbghlyj 发表于 2025-1-12 12:52
如何计算不在收敛域内的函数值呢?我们需要Analytic continuation
另一个例子:级数 $ 1+\frac{1}{2^p} +\frac{1}{3^p}+...$ 当 $p\leq 1$ 时发散,当 $p>1$ 时收敛。

这个级数的和是黎曼ζ函数,$\zeta(p)$。我一直以为ζ函数只在 $p>1$ 时定义。但后来我发现ζ函数在除1以外的所有复数值上都有定义。如果函数在 $p≤1$ 时发散,WolframAlpha 是如何计算 $\zeta(1/5)$ 的?答案不应该为无穷大吗?

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 22:06
hbghlyj 发表于 2025-1-12 14:04
如果函数在 $p≤1$ 时发散,WolframAlpha 是如何计算 $\zeta(1/5)$ 的?答案不应该为无穷大吗?


对于 $z\in\mathbb{C},\operatorname{Re}(z)>1$,ζ函数定义为 $\zeta (z)=\sum_{k=1}^{\infty }\frac{1}{k^{z}}$
但我们也有$$\label{z}\tag{*}\zeta (z)=\frac{1}{1-2^{1-z}}\sum_{k=1}^{\infty }\frac{(-1)^{k-1}}{k^{z}}$$
其中的级数是狄利克雷η函数。由于对于 $x>0$,这是个交错级数(因为 $1/k^x\to 0$)在 $z\in\mathbb{C},\operatorname{Re}(z)>0$ 时收敛,并且 $1-2^{1-x}\neq 0$ 对于 $x\in(0,1)\cup(1,\infty)$,函数 $\zeta (x)$ 可以解析延拓到 $x\in(0,1)\cup(1,\infty)$(注意第一个级数中 $1$ 被排除)为
$\zeta (x)=\frac{1}{1-2^{1-x}}\sum_{k=1}^{\infty }\frac{(-1)^{k-1}}{k^{x}}.$
对于 $x=1/2$,我们得到 $\sum_{k=1}^{\infty }\frac{(-1)^{k-1}}{k^{1/2}}\approx 0.6049$ 并且
$\zeta (1/2)=-\left( 1+\sqrt{2}\right) \sum_{k=1}^{\infty }\frac{(-1)^{k-1}}{k^{1/2}}\approx -1.4604.$


式 \eqref{z} 的推导:

$$\begin{eqnarray*}
\zeta (x) &=&\sum_{k=1}^{\infty }\frac{1}{k^{x}}=\sum_{k=1}^{\infty }\frac{%
(-1)^{k-1}}{k^{x}}+2\sum_{k=1}^{\infty }\frac{1}{\left( 2k\right) ^{x}} \\
&=&\sum_{k=1}^{\infty }\frac{(-1)^{k-1}}{k^{x}}+2^{1-x}\zeta (x).
\end{eqnarray*}$$

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 22:17

证明$\ln 2 $为无理数。

hbghlyj 发表于 2025-1-12 10:33
通过逐项积分,
$$\ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\cdots+(-1)^{n-1}\frac{x^n}{n}+(-1)^n \int_0^x \frac{t^n}{1+t}\ dt.$$

从这个式子可得:
\[
\int_0^1 \frac{x^j}{1+x} d x=\frac{1}{j}-\frac{1}{j-1}+\cdots \mp 1 \pm \ln 2 .
\]
假设 $\ln 2$ 为有理数 $a / b$, 则\[
\begin{aligned}
0<\left|A_n\right| & =\left|\left(b d_n\right) \int_0^1 P_n(x) \frac{1}{1+x} d x\right| \quad \quad\left(\text {where } d_n=\operatorname{LCM}\{1,2,3, \ldots, n\}\right) \\
& =\left|\left(b d_n\right) \int_0^1 \frac{1}{n!} x^n(1-x)^n\left[\frac{d^n}{d x^n}\left(\frac{1}{1+x}\right)\right] d x\right| \\
& \leq\left|\left(b d_n\right) \int_0^1\left(\frac{x(1-x)}{1+x}\right)^n \frac{1}{1+x} d x\right|
\end{aligned}
\]因为 $1 /(1+x)$ 的 $n$ 阶导数是 $(-1) \ldots(-n)(1 /(1+x))^{n+1}$。现在在 $[0,1]$ 上,$x(1-x) /(1+x)$ 的最大值是 $3-2 \sqrt{2}$,在 $x=-1+\sqrt{2}$ 处取得。一个来自数论的粗略不等式是 $d_n=\operatorname{LCM}\{1, \ldots, n\} \leq 3^n$。最后,由于 $(3(3-2 \sqrt{2}))^n<1$,$\ln 2$ 的无理性得以证明;参见 Similarities in Irrationality Proofs for π, ln2, ζ(2), and ζ (3)

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2025-1-12 22:43
isee 发表于 2025-1-12 10:11
如,取 $n=1$ ,则(请注意没有开方运算) \begin{align*}\ln 2&=0+\frac2{2+1}+\frac2{3(2+1)^3}+\frac2{3(2+1)^5}+\frac2{3(2+1)^7}+\cdots\\[1ex]&\approx 0+0.666\ 667+0.024\ 691+0.001\ 646+0.000\ 131\\[1ex]&=0.693\ 135\\[1ex]&\approx 0.693\ 14,\end{align*} 进一步可知前四位小数是完全准确的.
我们可以使用这个广义连分数来直接获得尽可能接近$\,\ln\,2$的分数:$$\ln\,2=\cfrac 1{1+\cfrac 1{2+\cfrac 1{3+\cfrac 2{2+\cfrac 2{5+\cfrac 3{2+\cfrac 3{7+\cfrac 4{2+\cfrac 4{9+\cdots}}}}}}}}}=b_0+\cfrac {a_1}{b_1+\cfrac {a_2}{b_2+\cfrac {a_3}{b_3+\cfrac {a_4}{\cdots}}}}$$
每次使用前一次的$a_k,b_k$值和$\;\left[\matrix {n_k\\d_k}\right]=\left[\matrix {n_{k-1}\;n_{k-2}\\d_{k-1}\;d_{k-2}}\right]\left[\matrix {b_k\\a_k}\right],\quad\left[\matrix {n_1\\d_1}\right]=\left[\matrix {b_0\,b_1+a_1\\b_1}\right]=\left[\matrix {1\\1}\right],\;\left[\matrix {n_0\\d_0}\right]=\left[\matrix {b_0\\1}\right]=\left[\matrix {0\\1}\right]$来获得下一个渐进分数:
\begin{array} {l|c|ccccc}k&b_k,a_k&&&f_k=\dfrac{n_k}{d_k}\\\hline\\1 & \color{#0000ff}{1,1} &\cfrac 1{1}&&=\cfrac 1{1}=\dfrac {n_1}{d_1}\\2 & \color{#0000ff}{2,1} & \cfrac 1{1+\frac 1{2}}&=\dfrac{n_1 b_2+n_0 a_2}{d_1 b_2+d_0 a_2}=\dfrac{1\cdot\color{#0000ff}{2}+0\cdot\color{#0000ff}{1}}{1\cdot\color{#0000ff}{2}+1\cdot\color{#0000ff}{1}}&=\dfrac 23=\dfrac {n_2}{d_2}\\3 & \color{#0000ff}{3,1} & \cfrac 1{1+\frac 1{2+\frac 1{3}}}&=\dfrac{n_2 b_3+n_1 a_3}{d_2 b_3+d_1 a_3}=\dfrac{2\cdot\color{#0000ff}{3}+1\cdot\color{#0000ff}{1}}{3\cdot\color{#0000ff}{3}+1\cdot\color{#0000ff}{1}}&=\dfrac {7}{10}=\dfrac {n_3}{d_3}\\4 & \color{#0000ff}{2,2} &\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2}}}}&=\dfrac{7\cdot\color{#0000ff}{2}+2\cdot\color{#0000ff}{2}}{10\cdot\color{#0000ff}{2}+3\cdot\color{#0000ff}{2}}&=\dfrac {18}{26}=\dfrac {9}{13}\\5 & \color{#0000ff}{5,2}&\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2+\frac 2{5}}}}}&=\dfrac{18\cdot\color{#0000ff}{5}+7\cdot\color{#0000ff}{2}}{26\cdot\color{#0000ff}{5}+10\cdot\color{#0000ff}{2}}&=\dfrac {104}{150}=\dfrac {52}{75}\\6 & \color{#0000ff}{2,3}&\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2+\frac 2{5+\frac 3{2}}}}}}&=\dfrac{104\cdot\color{#0000ff}{2}+18\cdot\color{#0000ff}{3}}{150\cdot\color{#0000ff}{2}+26\cdot\color{#0000ff}{3}}&=\dfrac {262}{378}=\dfrac {131}{189}\\7 & \color{#0000ff}{7,3}&\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2+\frac 2{5+\frac 3{2+\frac 3{7}}}}}}}&=\dfrac{262\cdot\color{#0000ff}{7}+104\cdot\color{#0000ff}{3}}{378\cdot\color{#0000ff}{7}+150\cdot\color{#0000ff}{3}}&=\dfrac {2146}{3096}=\dfrac {1073}{1548}\\8 & \color{#0000ff}{2,4}&\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2+\frac 2{5+\frac 3{2+\frac 3{7+\frac 4{2}}}}}}}}&=\dfrac{2146\cdot\color{#0000ff}{2}+262\cdot\color{#0000ff}{4}}{3096\cdot\color{#0000ff}{2}+378\cdot\color{#0000ff}{4}}&=\dfrac {5340}{7704}=\dfrac {445}{642}\\9 & \color{#0000ff}{9,4}&\cfrac 1{1+\frac 1{2+\frac 1{3+\frac 2{2+\frac 2{5+\frac 3{2+\frac 3{7+\frac 4{2+\frac 4{9}}}}}}}}}&=\dfrac{5340\cdot\color{#0000ff}{9}+2146\cdot\color{#0000ff}{4}}{7704\cdot\color{#0000ff}{9}+3096\cdot\color{#0000ff}{4}}&=\dfrac {56644}{81720}=\dfrac {14161}{20430}\\\cdots &\\\end{array}
对于偶数值的$k$,分数会太小,而对于奇数值则会太大。
How to evaluate logx to high precision "by hand"

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:52

Powered by Discuz!

× 快速回复 返回顶部 返回列表