原有资讯: 序 号:13478 标 题:【解决方案】LISP常用数学函数... (875字) 发信人:秋枫哥 时 间:2001-7-27 14:49:30 阅读次数:80 详细资讯: (defun tg(x) (/ (sin x) (cos x)) )
(defun ctg(x) (/ (cos x) (sin x)) )
(defun power(x y) (expt x y) )
(defun ln(x) (log x) )
(defun lg(x) (/ (log x) (log 10)) )
(defun round(x) (fix (+ x 0.5)) )
(defun dtor(d) (/ (* d pi) 180) )
(defun rtod(r) (/ (* r 180) pi) )
(defun arctg(r) (atan r) )
(defun arcsin(r / result ) (if (and (/= 1 (abs r))(/= 1.0 (abs r))) (setq result (atan (/ r (sqrt (- 1 (* r r)))))) (cond ((< r 0) (setq result (/ pi -2.0))) ((> r 0) (setq result (/ pi 2.0))) ) ) result )
(defun arccos(r / result) (if (and (/= r 0)(/= r 0.0)) (setq result (atan (/ (sqrt (- 1 (* r r))) r))) (setq result (/ pi 2)) ) (if (< result 0) (setq result (+ pi result)) ) (if (or (= r -1)(= r -1.0))(setq result pi)) result )
(defun ACOS (X) ;Inverse cosine (- (/ pi 2.0) (atan (/ X (sqrt (- 1.0 (* X X)))))) ) (defun ASIN (X) ; Inverse sine (atan (/ X (sqrt (- 1.0 (* X X))))) ) (defun ACSC (X) ; Inverse cosecant (+ (atan (/ 1.0 (sqrt (- (* X X) 1.0)))) (* (/ pi 2.0) (- (if (< X 0) (- 1.0) (+ 1.0)) 1.0))) ) (defun ASEC (X) ; Inverse secant (+ (atan (sqrt (- (* X X) 1.0))) (* (/ pi 2.0) (- (if (< X 0) (- 1.0) (+ 1.0)) 1.0))) ) (defun ACOT (X) ; Inverse cotangent (- (/ pi 2.0) (atan X)) ) (defun SEC (X) ; Secant (/ 1.0 (cos X)) ) (defun CSC (X) ; Cosecant (/ 1.0 (sin X)) ) (defun TAN (X) ; Tangent (/ (sin X) (cos X)) ) (defun COT (X) ; Cotangent (/ (cos X) (sin X)) ) |