数列a(n+1)=2an/(1+an^2),a1=1/2 ,求数列{an}通项公式是什么?

1个回答

  • 答案:1 - 2/(1 + 3^2^(n - 1))

    我是借助 Mathematica 来求解的,因为中间计算很繁琐,且有一步我也不太会.首先算出这个数列的前几项:

    f[n_] := If[n == 1, 1/2, 2 f[n - 1]/(1 + f[n - 1]^2)]

    s = Table[f[k], {k, 1, 5}]

    输出:

    {1/2, 4/5, 40/41, 3280/3281, 21523360/21523361}

    这个时候我发现分子比分母小1

    于是我假定 f[n] = p[n]/(p[n]+1),这一步可以用数学归纳法来证明,下面的Mathematica代码给出验证结果.

    f = (-1 + p)/p

    2 f/(1 + f^2) // FullSimplify

    输出结果

    (2 (-1 + p) p)/(1 + 2 (-1 + p) p) 分母确实比分子大1

    这个时候,我欲求f[n],就转换为求p[n]

    根据f[n]与f[n-1]的关系式,把p[n]带入得到

    p[n]/(1 + p[n]) = (2 p[n - 1]/(1 + p[n - 1]))/(1 + (p[n - 1]/(1 + p[n - 1]))^2)

    这个可以解得p[n]与p[n-1]的关系式:

    p[n] = 2 (p[n-1] + p[n-1]^2) = 2 * p[n-1] * ( 1 + p[n-1] )

    对上面式子右边进行配方得:

    p[n] = 2 (p[n-1] + 1/2)^2 - 1/2

    再代换一步

    q[n] = p[n]+1/2

    就得到了

    q[n] = 2 q[n-1]^2

    通过查书得知,这种叫非线性递归方程,一般是很难有解的,有的情况还会导致混沌现象.但是万幸,你这个情况是有解的.一般来说,递归方程:

    a[n] == k*a[n - 1]^2

    两边取对数之后变成:

    log( a[n] ) = log(k) + 2 log(a[n-1])

    可以解出它的通解为:(注意从这里开始都是幂指数的幂指数)

    a[n] = E^(2^n C)/k 这里C为一个待定常数

    因此我们这里的q[n] = a[n] = E^(2^n C)/2, 且q[1] = p[1]+1/2 = 1+1/2 = 3/2

    C=Log[3]/2

    带入化简得到:

    q[n] = (3^2^(n-1))/2

    从而p[n] = (3^2^(n-1))/2-1/2

    f[n] = p[n]/(p[n]+1) = ((3^2^(n-1))-1)/((3^2^(n-1))+1) 或者 1 - 2/(1 + 3^2^(n - 1))

    中间计算太繁琐了,有可能有不对的地方,但最后的通项公式我是编程验证过的,没有问题.

    Mathematica程序验证一下:

    Table[((3^2^(n - 1)) - 1)/((3^2^(n - 1)) + 1), {n, 1, 10}]

    note:

    关于这个问题,我一开始觉得这个递推表达式跟某个三角函数的公式很像,但是推了半天无功而返.但是后来我用Mathematica来求解的时候发现,直接求解f[n]得不到解,但求p[n]有解,而且在复数域还有一个解,这说明这个通项公式可以用三角函数来表示.看来也许真的可以用三角函数的公式来巧妙求解,只不过我的功力粗浅,无法完成了.