附上相关程序,请审核。
;-------------------------解二元一次方程组------------------------
(defun 1y1c (a c) (if (/= a 0) (/ c (float a)))) ; 解一元一次方程 ax=c
(DEFUN 2Y1C (A1 B1 C1 A2 B2 C2 / x y) ; 二元一次方程组 A1x+B1y=C1
(IF (= A1 0) ; A2x+B2y=C2
(SETQ Y (1Y1C B1 C1))
(SETQ Y (1Y1C (- B2 (* (/ A2 (float A1)) B1)) (- C2 (* (/ A2 (float A1)) C1))))
)
(setq X (if y (1Y1C A2 (- C2 (* B2 Y)))))
(list x y)
)
;-------------解一元二次方程------------------------------------
(defun 1y2c (a b c / d e f) ; 一元二次方程 Ax^2+Bx+C=0
(setq d (- (* b b) (* 4 a c))
e (/ b -2.0 a)
f (/ (sqrt (abs d)) 2 a)
)
(cond((= d 0) (list e))
((> d 0) (list (+ e f) (- e f)))
((< d 0) (list e "+/-i" f))
)
)
追问 : 那个f 为什么不能用(/ d 2a) 前面不是对d进行赋值了么
追答 :f是根据公式写的。