Assume that the matrix is square with number of rows greater than or equal to 2.
The determinant of the 2 by 2 matrix
$
A = \begin{array}{ll}
a_{11} & a_{12}\\
a_{21} & a_{22} \\
\end{array}
$
is given by A[1,1]* A[2,2] - A[2,1] * A[1,2]. To be continued.....
$\sum_{\forall j} A[1,j] * (-1) ^ {j+1} *det(A[-1,-j]$
where A[-1, -j] denotes the submatrix obtained by deleting the first row and the jth column! R has a clever method of denoting the row or column to be deleted.
here is a simple recursive implementation with debugging statements. We ask the reader to remove them and simplify the code.
""" # file mydet.R # author your name here! mydet <- function (A) { rows <-nrow(A) print (c("rows=", rows)) if (rows != ncol(A)) { print("A is not a square matrix!!!") } if (rows == 2) { result <- (A[1,1] * A[2,2] - A[2,1] * A[1,2]) print (c("result=", result)) return(result) } # expand by first row. tot = 0.0 sign = 1 for (j in seq(1, rows)){ tot = tot + sign * A[1,j] * mydet(A[-1,-j]) sign = -sign } return(tot) }
No comments:
Post a Comment