支点(连分式解二次方程,或者开平方)

//examples
X*X-B*X-1=0
Go
X=B+1/X
Go
(init x=1 ,B=2 )


(setq   small  37)
(setq  big  99)

(defun  calc  (a  b)
(if  (eq  a  1)
       (cons  b nil)
(cons  (/  (-  b  (mod  b  a ) )
            a)
       (calc   (mod  b a )  a ))))

(defun  recalc  (lst)
(if  (eq  (cdr lst ) nil)
    (/ 1.0  (car lst))
(/  1.0 
    (+   (car  lst)
         (recalc (cdr lst))))))

 


(setq  initvalue  1.0)
(setq  B  2)
(defun  fun  (value)
(+  B
    (/  1.0  value)))

(defun  many (value)
(if  (> (abs  (- (fun value ) value ))  (/ 1  10000000) )
       (+ 1  (many   (print (fun value)) ))
      0))

(defun  generate  (count )
(if  (>  count  0)
     (cons  B   (generate  (- count 1)  ))
     (cons  initvalue nil)
)
)

(+ B (recalc   (generate (many   initvalue ) )  ) )
//注意最后一行的+ B的意义因为它与前面的1/(1+x)格式不一样.

 

//比如要开(sqrt 5)

(x-2)(x+2)=1

Go

x=2+1/(2+x)

可以实现.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值