虚根的测试3

来源:互联网 发布:淘宝马云能占多少股份 编辑:程序博客网 时间:2024/05/19 11:50

虚根的测试(扩展)
X*X-2*X+3=0  ( init value  10  15  0)
Go

(setq r  (sqrt 3))
cos a=1/r
sina a=(sqrt 2)/r

M={cos a  + i* sin  a}/r;
N={cos a  - i* sin  a}/r;

Go
a(n)=A*M^n+B^n

Go
A*{ cos a  + i* sin  a }/r+B * { cos a  - i* sin  a }/r =10
A*{ cos a  + i* sin  a }^2/r^2 +B * { cos a  - i* sin  a }^2/r^2 =15
A*{ cos a  + i* sin  a }^3/r^3 +B * { cos a  - i* sin  a }^3/r^3 =0

Go
这里有个有趣的公式
比如
{ cos a  + i* sin  a }^2
={cos a* cos a -sin a* sina +i* 2 *sin a*cos a}
={cos 2a+ i *sin 2a }
同理可以证明{ cos a  + i* sin  a }^3={cos 3a+ i *sin 3a }

上面解方程可以得到
A+B
(setq  AA  (/  5.0  3))

A-B
(setq  BB  (/  25.0  (*  3  (sqrt  2))))

Go
a(n)=A*M^n+B^n
a(n)=A*(cos na + i* sin na )  + B * (cos na -i *sin na)

 


(defun pow (num count)
(if (> count 0)
      (* num (pow num (- count 1) ) )
    1
)
)

(defun  expr (n)
(if (eq  n 1)
       10
     (if  (eq  n  2)
          15
         (-  (* 2 (expr  (- n 1) ))
             (* 3 (expr  (- n 2) ))))))
    

求出a的角度
(defun  look ( init left right  value )
(if (< (abs (-  (cos  init ) value ))  (/ 1.0  10000000))
       init
      (if  (<  (cos  init ) value )
              (look   (/  (+  init left ) 2.0) left init value)
              (look   (/  (+  init right ) 2.0)  init right value))))
          
// (test  0  0  (/  pi  2)  0.5)   对应于cos a =0.5

(setq r  (sqrt 3))
(setq a (look  0  0  (/  pi  2) (/  1 (sqrt 3) )))      对应于cos a =2/r


(defun  formula (n)
(+   (*  AA  (pow r n)
         (cos  (*  n  a)))
     (*  BB    (pow r n)
         (sin  (*  n  a)))))


(defun  test (n)
(if (> n 0)
  (progn
       (print (formula n))
       (print  'compare)
       (print (expr n))
       (test  (- n 1) ))
  (print 'over)))

(test  10)