fun = function(lambda) {-y %*% log(a %*% lambda) + lambda %*% apply(a,2,sum)}
用数学符号表示。
这里lambda是2 * 1矩阵,a是5 * 2矩阵,y是1 * 5矩阵。
所以我想从(1:10,1:10),使用persp()(或其他命令)绘制乐趣(lambda)。
答案 0 :(得分:2)
你快到了。您只需要创建一个值网格(1:10,1:10)来评估您的功能。我用伪数据来说明。
set.seed(123)
lambda<-as.matrix(runif(2),nrow=2)
a<-matrix(runif(10),ncol=2)
y<-runif(5)
fun = function(lambda) {-y %*% log(a %*% lambda) + lambda %*% apply(a,2,sum)}
#Create grid
lambda.grid<-expand.grid(1:10,1:10)
names(lambda.grid)<-c("lambda_1","lambda_2")
z<-apply(lambda.grid,1,fun) #Evaluate function for each row
#Change z into matrix form for persp plots
z.mat<-matrix(z,ncol=10,byrow=FALSE)
persp(x=1:10,y=1:10,z.mat,xlab="lambda_1",ylab="lambda_2",zlab="f(lambda_1,lambda_2)")
HTH