如何在 R 中找到矩阵的符号逆;例如:
Matrix.test <- function(x) matrix(c(x, x^2, x^3, x^4, x^5, x^6, x^7, x^8, x^9, 2*x, 3*x, 4*x, 2*x^2, 3*x^3, 4*x^4, 5*x^5), 4, 4)
我知道有一个名为“Ryacas”的包,它是“yacas”的接口,但我无法应用它来进行此类计算。'yacas' 是一个用于对数学表达式进行符号操作的程序。请参阅链接了解更多详情。
谢谢你
如何在 R 中找到矩阵的符号逆;例如:
Matrix.test <- function(x) matrix(c(x, x^2, x^3, x^4, x^5, x^6, x^7, x^8, x^9, 2*x, 3*x, 4*x, 2*x^2, 3*x^3, 4*x^4, 5*x^5), 4, 4)
我知道有一个名为“Ryacas”的包,它是“yacas”的接口,但我无法应用它来进行此类计算。'yacas' 是一个用于对数学表达式进行符号操作的程序。请参阅链接了解更多详情。
谢谢你
这对我来说可以:
> library(Ryacas)
> x <- Sym('x')
> M <- List(List(1,x),List(x,1))
> PrettyForm(M)
/ \
| ( 1 ) ( x ) |
| |
| ( x ) ( 1 ) |
\ /
> PrettyForm(Inverse(M))
/ \
| / 1 \ / -( x ) \ |
| | ------ | | ------ | |
| | 2 | | 2 | |
| \ 1 - x / \ 1 - x / |
| |
| / -( x ) \ / 1 \ |
| | ------ | | ------ | |
| | 2 | | 2 | |
| \ 1 - x / \ 1 - x / |
\ /
并遵循:
M2 <- List(List( x, x^2, x^3, x^4),
List( x^5, x^6, x^7, x^8),
List( x^9, 2*x ,3*x , 4*x),
List(2*x^2, 3*x^3, 4*x^4, 5*x^5))
Inverse(M2)
不过,答案相当复杂(我只能费心重新格式化前四行):
{{(x^6*3*x*5*x^5-x^6*4*x*4*x^4+x^8*2*x*4*x^4-x^7*2*x*5*x^5+
x^7*4*x*3*x^3-x^8*3*x*3*x^3)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-
x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+
x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-
x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(x^4*3*x*3*x^3-x^4*2*x*4*x^4+x^3*2*x*5*x^5-x^3*4*x*3*x^3-x^2*3*x*5*x^5+x^2*4*x*4*x^4)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),0,(x^10*3*x-x^9*4*x-x^10*3*x+x^9*4*x-x^11*2*x+x^11*2*x)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2)},{(x^5*4*x*4*x^4-x^5*3*x*5*x^5-x^17*4*x^4+x^16*5*x^5-x^7*4*x*2*x^2+x^8*3*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(3*x^2*5*x^5-4*x^2*4*x^4+x^13*4*x^4-x^4*3*x*2*x^2-x^12*5*x^5+x^3*4*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),0,(x^8*4*x-x^9*3*x+x^9*3*x-x^8*4*x)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2)},{(x^5*2*x*5*x^5-x^5*4*x*3*x^3+x^17*3*x^3-x^15*5*x^5+x^6*4*x*2*x^2-x^8*2*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(4*x^2*3*x^3-2*x^2*5*x^5-x^13*3*x^3+x^11*5*x^5-x^2*4*x*2*x^2+x^4*2*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(x^7*5*x^5-x^9*3*x^3+x^9*3*x^3-x^7*5*x^5)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(x^9*2*x-x^7*4*x-x^9*2*x+x^7*4*x-x^19+x^19)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2)},{(x^5*3*x*3*x^3-x^5*2*x*4*x^4-x^16*3*x^3+x^15*4*x^4-x^6*3*x*2*x^2+x^7*2*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(2*x^2*4*x^4-3*x^2*3*x^3+x^12*3*x^3-x^11*4*x^4+x^2*3*x*2*x^2-x^3*2*x*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(x^8*3*x^3-x^7*4*x^4-x^8*3*x^3+x^7*4*x^4-x^9*2*x^2+x^9*2*x^2)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2),(x^7*3*x-x^8*2*x+x^8*2*x-x^7*3*x)/(x^7*3*x*5*x^5-x^7*4*x*4*x^4-x^8*2*x*5*x^5+x^8*4*x*3*x^3-x^9*3*x*3*x^3+x^9*3*x*3*x^3+x^8*2*x*5*x^5-x^8*4*x*3*x^3-x^7*3*x*5*x^5+x^7*4*x*4*x^4-x^19*4*x^4+x^19*4*x^4+x^18*5*x^5-x^9*4*x*2*x^2-x^18*5*x^5+x^9*4*x*2*x^2-x^11*2*x*2*x^2+x^11*2*x*2*x^2)}};