 - (defun binSea (fun minx maxx any pre)
- (cond ((equal (fun (* 0.5 (+ minx maxx))) any pre)
- (* 0.5 (+ minx maxx))
- )
- ((< (* (- any (fun (* 0.5 (+ minx maxx)))) (- any (fun maxx)))
- 0
- )
- (binsea fun (* 0.5 (+ minx maxx)) maxx any pre)
- )
- ((< (* (- any (fun (* 0.5 (+ minx maxx)))) (- any (fun minx)))
- 0
- )
- (binsea fun minx (* 0.5 (+ minx maxx)) any pre)
- )
- )
- )
函数名 binsea
参数
fun 要求的函数名 用defun lambda 等自定义
minx maxx 求解范围最大值 最小值
any 目标值
pre 精度
说明:函数必须在给定范围里单调 且解必须在范围里
示例:求根号5
 - (defun tt()
- (setq fun (lambda (x) (* x x)))
- (binsea fun 1.0 10.0 5 0.001)
- )
(tt)----->2.23596 |