解一元二次方程lisp_lisp语言编写lisp程序解二元一次方程组和一元二次方程组应该怎么做​...

满意答案

1964_yang

2016.10.08

采纳率:40%    等级:5

已帮助:55人

附上相关程序,请审核。

;-------------------------解二元一次方程组------------------------

(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是根据公式写的。

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值