复数开n次根号的尝试(底为实数)
先尝试一个底为实数的:
x^5-1=0
GO
cos s=1 , sin s=0
Go
因为有公式a(k)=cos (s+2*pi*k)/n +i *sin (s+2*pi*k)/n
这里n=5,s=0
所以有:
a(1)=cos 2*pi/5 + i * sin 2*pi/5
a(2)=cos 4*pi/5 + i * sin 4*pi/5
a(3)=cos 6*pi/5 + i * sin 6*pi/5
a(4)=cos 8*pi/5 + i * sin 8*pi/5
a(5)=cos 10*pi/5 + i * sin 10*pi/5
对于虚数用牛顿展开式:下面写程序验证如下:
(defun pow (num count)
(if (or (> count 1) (eq count 1))
(* num
(pow num
(- count 1) ) )
1)))
(defun expr (i j)
(if (or (eq i (1+ j))(eq j 0) )
1
(+ (expr (- i 1)
j )
(expr (- i 1)
(- j 1) ))))
(defun exprsum (start end xvalue yvalue)
(if (< end 0)
0
(+ (exprsum start (- end 2) xvalue yvalue)
(* (expr start end )
(pow xvalue end )
(pow yvalue (/ (- (1- start)
end )
2))))))
(defun test (n)
(if (> n 0)
(progn
(print (exprsum (+ 5 1)
5
(cos (* n
(* (/ pi 5)
2)))
(- 0
(pow
(sin (* n
(* (/ pi 5)
2)))
2))))
(print 'compare)
(print (exprsum (+ 5 1)
4
(cos (* n
(* (/ pi 5)
2)))
(- 0
(pow
(sin (* n
(* (/ pi 5)
2)))
2))))
(test (- n 1)))
(print 'over)))
(test 5)
其中最重要的特点是虚数部分的值为0,也就是compare下面的计算结果为0.