用Newtown开高阶根号

本文通过Newton法计算6^(1/7)的近似值,利用级数展开形式进行迭代计算,并展示了具体的Lisp函数实现。讨论了收敛速度与初始值选择的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Newtown开高阶根号
6^(1/7)
Go
(2^7-122)^(1/7)
Go
2*(1-122/128)^(1/7)
Go
Newton 展开有
2*( 1+ 1/7*(-122/128)/1!+  1/7*(1/7-1)*(-122/128)^2/2!  +

(defun pow (num count)
(if (or (> count 1) (eq  count 1))
      (* num
         (pow num
              (- count 1) ) )
      1))


(defun slayer(count)
(if (or (> count 1) (eq  count 1))
      (* count
         (slayer
              (- count  1) ) )
      1))

(defun slayerex(n count )
(if (or (> count 1) (eq  count 1))
      (* n
         (slayerex
                  (-  n  1)
                  (- count  1) ) )
      1))


(defun  expr  (n x y count)
(if  (>  n  count)
       0
      (+  (expr  (+ n 1)
                 x
                 y
                 count)
          (/  (*  (slayerex x  n)              
                  (pow y n))
              (slayer n)))))

(print (* 2 (expr  0  (/ 1.0 7) -122/128 32) ) )
(print 'compare )
(print  (pow (* 2 (expr  0  (/ 1.0 7) -122/128  32))  7))
这种方法收敛得很慢,要到32项才慢慢接近目标。因为其中-122/128的值还是比较接近1,而不是0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值