几种能用不动点解的方程的特征
这类方程有种递归的性质在里面:如下举例:
x=( ((x+1/4)^2+1/4 )^2 +1/4)^2
这种形式也可以
x= ((x^2+1/4)^2+1/4 )^2 +1/4
继续举例有:
x=sqrt (2 + sqrt (2+ sqrt (2 +sqrt (2 +x) )))
在上面这些形式之中,这种递归的形式可以是无限的,虽然目前全是有限的。
sqrt形式的这个数列是收敛为2的,下面可以写程序来验证。
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))
(defun expr (n x)
(if (> n 0)
(expr (1- n)
(sqrt (+ 2
x)))
x))
(defun test (n)
(if (> n 0)
(progn
(print (expr 200 n))
(print 'compare)
(print n)
(test (- n 1)))
(print 'over)))
(test 100)
但有很多是不收敛的,比如那个x= ((x^2+1/4)^2+1/4 )^2 +1/4,下面同样写程序来验证:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))
(defun expr (n x)
(if (> n 0)
(expr (1- n)
(+ (* x
x)
1/4))
x))
(defun test (n)
(if (> n 0)
(progn
(print (expr 20 n))
(print 'compare)
(print n)
(test (- n 1)))
(print 'over)))
(test 50)
在这个程序运行的过程中总是会出现大数相乘而无法计算的问题,可见它的序列值不是收敛的。