From 1a8c81d07efe55c5a6909aff32359d4b8866af1c Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Wed, 27 Sep 2023 09:53:37 -0600 Subject: keep unit tests but make directory structure more consistent with requirements i did not read --- src/approx/derivative.lisp | 9 +++++++++ src/approx/maceps.lisp | 11 +++++++++++ src/approx/package.lisp | 5 +++++ 3 files changed, 25 insertions(+) create mode 100644 src/approx/derivative.lisp create mode 100644 src/approx/maceps.lisp create mode 100644 src/approx/package.lisp (limited to 'src/approx') diff --git a/src/approx/derivative.lisp b/src/approx/derivative.lisp new file mode 100644 index 0000000..02fcb4c --- /dev/null +++ b/src/approx/derivative.lisp @@ -0,0 +1,9 @@ +(in-package :lizfcm.approx) + +(defun derivative-at (f x &optional (delta 0.01)) + (let* ((x2 (+ x delta)) + (x1 (- x delta)) + (y2 (apply f (list x2))) + (y1 (apply f (list x1)))) + (/ (- y2 y1) + (- x2 x1)))) diff --git a/src/approx/maceps.lisp b/src/approx/maceps.lisp new file mode 100644 index 0000000..ad234e8 --- /dev/null +++ b/src/approx/maceps.lisp @@ -0,0 +1,11 @@ +(in-package :lizfcm.approx) + +(defun compute-maceps (f a init) + (let ((h init) + (err init)) + (loop while (> err 0) + do + (setf h (/ h 2) + err (abs (- (funcall f (+ a h)) + (funcall f a)))) + collect (list a h err)))) diff --git a/src/approx/package.lisp b/src/approx/package.lisp new file mode 100644 index 0000000..c11eb60 --- /dev/null +++ b/src/approx/package.lisp @@ -0,0 +1,5 @@ +(in-package :cl-user) +(defpackage lizfcm.approx + (:use :cl) + (:export :derivative-at + :compute-maceps)) -- cgit v1.2.3-70-g09d2