A1(bisection (lambda (x) (- (* x x) 2)) 1.4 1.5 1e-50)B1(* @a1 @a1)(defproc bisection-iteration (f x1 f1 x2 f2 delta) (let ((m (/ (+ x1 x2) 2))) (if (< (abs (- x1 x2)) delta) m (let ((fm (f m))) (if (opposite-sign? f1 fm) (bisection-iteration f x1 f1 m fm delta) (bisection-iteration f m fm x2 f2 delta)))))) (defproc bisection (f x1 x2 delta) (let ((f1 (f x1)) (f2 (f x2))) (if (opposite-sign? f1 f2) (approximate (bisection-iteration f x1 f1 x2 f2 delta) delta) (throw (quote error) "zero not within interval in bisection"))))opposite-sign1local:opposite-signDie Funktion opposite-sign? prüft, ob ihre beiden numerischen Argumente unterschiedliche Vorzeichen haben.opposite-sign?(defproc opposite-sign? (a b) (or (and (greater? a 0) (less? b 0)) (and (less? a 0) (greater? b 0))))bisectionDie Funktion bisection bestimmt die Nullstelle einer Funktion (erstes Argument) in einem Intervall (zweites und drittes Argument) auf eine gewünschte Genauigkeit (viertes Argument).bisection100110100010101110000011110101010110111010001101110001011110000