考研递归怎么算?

施棋祥施棋祥最佳答案最佳答案

1. 简单说,递归就是重复调用本身。比如 函数 f(x)=f(x-1)+2 的根的近似解(精确到 10^{-6}): 2. 对这个例子而言,求解的过程其实就是将函数进行泰勒展开,然后化简得到一个关于 x 的一次方程,进而解出 x 的值。这个过程其实就包含在了 f 和 g 的定义中。这里需要注意的是,由于我们使用了一个比 1e-6 要大的数字作为停止迭代的条件,所以实际上当循环两次以上时,答案已经接近于真正的解了(当然,在计算机科学里,不可能让循环次数超过 100,这是因为计算机运行并非无限的,而真正有效的计算量其实是比这要小的多)。

3. 题主的问题其实在上面那个例子已经回答了——如果希望计算速度快一些的话,只需要更换掉泰勒展开的时候把 f(x) 看成是 f(x-1) 即可。这时候整个函数的循环将被压缩到只有一步,因此效率将会提高很多(因为不再需要重新乘平方)!注意这里并不是说这个算法更快,而是说使用这种变换下的算法,只要其循环足够多次(大于等于 3),那么结果必然会接近于正确解。而这种情况下,理论上说,循环的次数越多,那么计算结果的精确度也就越高。

4. 对于更一般的函数来说,如果希望将其展开成一个无穷级数来求得渐近解,那么可以使用幂级数方法或拉普拉斯变换的方法。对于后者,可以参考本书第二章的内容。

我来回答
请发表正能量的言论,文明评论!