我正在构建一个矩阵C,它的类是" dgCMatrix"因为我在R中的矩阵库中使用了bdiag函数。然而,反转稀疏矩阵(一个)的结果与反转同一个矩阵而不是稀疏类(两个)的结果不同。一个是错误的答案。有谁知道为什么
## rm(list=ls())
library(Matrix)
cy11=function(a,b,H){
d=outer(a,b,`-`);I=outer(a,b,`==`)
H[1]^2*exp(-0.25*d^2/H[2]^2) + I*H[3]^2
}
x0=c(1,1,0.05)
n1=25;n2=100
data=matrix( rnorm(n1*n2,mean=0,sd=5), n1, n2)
slast=seq(0,10,length.out=26)
z=list();Z=list()
for(i in 1:n2){
a=data[,i]
z[[i]]=cy11(a,a,x0)
}
for(i in 1:n2)
{
a=data[,i]
Z[[i]]=cy11(a,slast,x0)
}
A=bdiag(z)
D=cy11(slast,slast,x0)
B=do.call(rbind,Z)
C=rbind(cbind(A,B),cbind(t(B),D))
one=solve(C)
two=solve(as.matrix(C))