在学校玩计算器时无意发现一个神奇的式子
tan(sin−1(x))→x
当 x 初始值为 101 时 按上面的式子迭代19次会得到91 再继续迭代17次会得到81;以此类推 最终到1
简单整理一下 定义
an+1=1−an2an (n∈Z)
若 ai=k1 (i∈Z,k∈Z∩[2,+∞)) 则 ai+2k−1=k−11
显然只要将表达式代入自身19次就能看出端倪了 但由于我计算力低下且在学校没时间 于是回家用代码测一测它
首先数值模拟就不必多说了(毕竟在学校用计算器模拟的足够多了) 我直接import sympy
1 2 3 4 5 6 7
| from sympy import Symbol, sqrt, simplify
x = Symbol('x') for i in range(19): x = x / sqrt(1 - x ** 2) x = simplify(x) print(x)
|
本来那个sqrt
图省事用的是** 0.5
但是这两个在sympy
里面似乎不等价 ** 0.5
还是当成幂计算 算了好久也算不到19
后来改sqrt
之后总算快了一点 但是算出来的式子有点抽象 再怎么simplify()
也只能得出这样的结果
x2−12x2−12x2−13x2−13x2−14x2−14x2−15x2−15x2−16x2−16x2−17x2−17x2−18x2−18x2−19x2−19x2−110x2−110x2−111x2−111x2−112x2−112x2−113x2−113x2−114x2−114x2−115x2−115x2−116x2−116x2−117x2−117x2−118x2−118x2−119x2−11−x2x
显然sympy
有点注意力底下了 连明显的分式因子都消不掉
于是启动mathematica
1 2 3
| Subscript[a, n_] := Subscript[a, n-1] / Sqrt[1-Subsuperscript[a, n-1, 2]] Subscript[a, 0] := x Subscript[a, 19] // FullSimplify
|
不得不说mathematica的计算能力还是一流的 很快得到结果
a19=1−19a02a0
虽然mathematica暂不能(我不会写)给出 an 关于 a0 的表达式 但经过更多数据的测试 我们可以有根据地猜测
an=1−na02a0 (n∈N∗)
即
an=1−(n−k)ak2ak (n∈N∗,k∈N,n>k)
由此显然可以得出开头的结论
顺便用matplotlib.pyplot
画了个 a0=0.1 时的图
下面是用desmos直接画表达式的图