我有以下代码:
x1 <- c("x", "y")
x2 <- c("z", "w")
X <-data.frame(x1,x2)
A=as.matrix(X)
矩阵
A
如下:
x1 x2
[1,] "x" "z"
[2,] "y" "w"
如何找到
A
的行列式?我想要一个像 xw-yz
这样的结果。
我尝试过
det(A)
但不起作用。
一般来说,我希望能够找到元素为字符类型的任何矩阵的行列式。
你需要一个符号计算库:
library(rSymPy)
x1 <- List(Var("x"), Var("y"))
x2 <- List(Var("z"), Var("w"))
A = Matrix(x1, x2)
Det <- function(x) Sym("(", x, ").det()")
Det(A)
# [1] "w*x - y*z"
x <- Var("x")
y <- Var("y")
z <- Var("z")
A = Matrix(List(y+z,z,y), List(z,z+x,x), List(y,x,x+y))
Det(A)
# [1] "4*x*y*z"
a <- Var("a")
b <- Var("b")
c <- Var("c")
A = Matrix(List(0,b-a,c-a), List(a-b,0,c-b), List(a-c,b-c,0))
Det(A)
# [1] "0"
您可以使用 giacR 软件包:
library(giacR)
giac <- Giac$new()
command <- "det([[x, y], [z, w]])"
giac$execute(command)
# [1] "x*w-y*z"
giac$close()