欢迎光临
我们一直在努力

isaac newton,olivia newton john

验证newton二项式在指数为分数时的正确性

设形式为(1+0.1)^a,下面将讨论a为2/3和8/3时,直接计算法(采用以前用e做中间计算过程的方法)和newton直接展开,两者结果的比较;

?

?

下面写程序来证明:

(setq ?a ?2 )

(setq ?b ?(/ ?1.0 3))

(setq ?c ?0.1)

?

(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 (num count)

(if (or (> count 1) (eq ?count ?1) )

?? ? ?(* num?

?? ? ? ? (slayerex

?? ? ? ? ? ? ?(- num ?1) ?

?? ? ? ? ? ? ?(- count 1) ) )

?? ? ?1))

?

?

?

(defun ?newton (n value)

(if ?(eq ?n ?0)

?? ? ? ? ? 1.0

?? ? ? (+ ?(newton ?(1- n)

?? ? ? ? ? ? ? ? ? ?value)

?? ? ? ? ? (/ ?(* ?1.0

?? ? ? ? ? ? ? ? ? (pow ?value ?

?? ? ? ? ? ? ? ? ? ? ? ? n)

?? ? ? ? ? ? ? ? ? (slayerex ?(* ?a?

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?b)

?? ? ? ? ? ? ? ? ? ? ? ? ? ?n))

?? ? ? ? ? ? ? (slayer n)))))

?

?

?

(defun ?expr (n value)

(if (eq ?n 0)

?? ? ? 1.0

?? ? ?(+ ?(expr ?(1- n)

?? ? ? ? ? ? ? ? value)

?? ? ? ? ?(/ ? (* ?1.0 ?

?? ? ? ? ? ? ? ? ? (pow ?value

?? ? ? ? ? ? ? ? ? ? ? ? n))

?? ? ? ? ? ? ? (slayer n)))))

?

?

?

(defun ?formula (n value)

(expr ?n ?

?? ? ? (* ?(log ?(pow value

?? ? ? ? ? ? ? ? ? ? ?a))

?? ? ? ? ? ?b)))

?

(defun ?test (n)

(if (> n 0)

??(progn?

?? ? ? (print (newton ? n ?c))

?? ? ? 美国高防vps (print ?’compare)

?? ? ? (print (formula n ?(+ ?c 1))) ? ? ??

?? ? ? (test (- n 1)))

??(print ‘over)))

?

(test ?10)?

之所以能够这样做,是因为newton二项式中的指数分子值的变化没有n!形式的快,也就是说最终还是收敛的。

[35]> (test ?10)

?

1.0656023

COMPARE

1.0656023

1.0656023

COMPARE

1.0656023

1.0656023

COMPARE

1.0656023

1.0656023

COMPARE

1.0656023

1.0656023

COMPARE

1.0656023

1.0656023

COMPARE

1.0656023

1.0656021

COMPARE

1.0656023

?

下面将a的值变为8实验下:

(setq ?a ?8)

(test ?10)

[37]> (test ?10)

?

1.2893788

COMPARE

1.2893788

1.2893788

COMPARE

1.2893788

1.2893788

COMPARE

1.2893788

1.2893788

COMPARE

1.2893788

1.2893788

COMPARE

1.2893788

1.2893788

COMPARE

1.2893784

1.2893786

COMPARE

1.2893696

?

?

将C的值变为0.9有:

(setq ?c ?0.9)

(test ?10)

[44]> (test ?10)

?

5.537819

COMPARE

5.537861

5.537963

COMPARE

5.5378013

5.53771

COMPARE

5.5374537

5.538184

COMPARE

5.535627

5.5372124

COMPARE

5.527088

5.53948

COMPARE

5.4921665

5.533

COMPARE

5.369749

?

如果将c变为0.99,a变为32,需要用(test ?20)才能得到如下结果:

[53]> (test ?20)

?

1540.871

COMPARE

1540.8262

1540.871

COMPARE

1540.7415

1540.871

COMPARE

1540.5106

1540.871

COMPARE

1539.9132

1540.871

COMPARE

1538.4481

1540.871

COMPARE

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。