;;;***********************************************************************************;;;
;;; (detm m) function calculates determinant of square martix ;;;
;;; Marko Ribar, d.i.a. ;;;
;;; Args: m - nxn matrix ;;;
;;; (detm '((0 1) (1 0))) ;;;
;;; (detm '((1.4 2.1 5.4 6.5) (4.1 9.3 4.5 8.5) (1.2 4.1 6.2 7.5) (4.7 8.5 9.3 0.1))) ;;;
;;;***********************************************************************************;;;
(defun detm
( m
/ d i j r
)
)
)
)
(setq r
(+ r
(* j e
(if (listp (d m i
)) (detm
(d m i
)) (d m i
))))) )
r
)
)
)
;;;***********************************************************************************;;;
;;; (mmin m) function calculates matrix of minors of square martix ;;;
;;; Marko Ribar, d.i.a. ;;;
;;; Args: m - nxn matrix ;;;
;;; (mmin '((0 1) (1 0))) ;;;
;;; (mmin '((1.4 2.1 5.4 6.5) (4.1 9.3 4.5 8.5) (1.2 4.1 6.2 7.5) (4.7 8.5 9.3 0.1))) ;;;
;;;***********************************************************************************;;;
(defun mmin
( m
/ i j r rr
)
(detm m)
)
)
) m
)
)
;;;***********************************************************************************;;;
;;; (cofm m) function calculates cofactor matrix of square martix ;;;
;;; Marko Ribar, d.i.a. ;;;
;;; Args: m - nxn matrix ;;;
;;; (cofm '((0 1) (1 0))) ;;;
;;; (cofm '((1.4 2.1 5.4 6.5) (4.1 9.3 4.5 8.5) (1.2 4.1 6.2 7.5) (4.7 8.5 9.3 0.1))) ;;;
;;;***********************************************************************************;;;
(defun cofm
( m
/ i j r rr
)
)
) m
)
)
;;;***********************************************************************************;;;
;;; (adjm m) function calculates adjugate matrix of square martix ;;;
;;; Marko Ribar, d.i.a. ;;;
;;; Args: m - nxn matrix ;;;
;;; (adjm '((0 1) (1 0))) ;;;
;;; (adjm '((1.4 2.1 5.4 6.5) (4.1 9.3 4.5 8.5) (1.2 4.1 6.2 7.5) (4.7 8.5 9.3 0.1))) ;;;
;;;***********************************************************************************;;;
)
;;;***********************************************************************************;;;
;;; (invm m) function calculates inverse matrix of square martix ;;;
;;; or returns nil if matrix is singular ;;;
;;; Marko Ribar, d.i.a. ;;;
;;; Args: m - nxn matrix ;;;
;;; (invm '((0 1) (1 0))) ;;;
;;; (invm '((1.4 2.1 5.4 6.5) (4.1 9.3 4.5 8.5) (1.2 4.1 6.2 7.5) (4.7 8.5 9.3 0.1))) ;;;
;;;***********************************************************************************;;;
(defun invm
( m
/ k i j r rr
)
(setq k
(/ 1.0 (detm m
))) )
) (adjm (cofm (mmin m)))
)
)
(prompt "\nSupplied argument isn't matrix list") (prompt "\nSupplied argument list isn't square matrix") nil
)
)
)
)