在R中,如何绘制此特定函数的图形?

在R中,如何绘制此特定函数的图形?,r,R,在数学记数法中 这里lambda是2*1矩阵,a是5*2矩阵,y是1*5矩阵 因此,我想从(1:10,1:10)开始,使用persp()(或其他命令)绘制乐趣(lambda)。您就快到了。您只需要创建一个值网格(1:10,1:10),在该网格上计算函数。我用虚拟数据来说明 fun = function(lambda) {-y %*% log(a %*% lambda) + lambda %*% apply(a,2,sum)} set.seed(123) lambdaM非常感谢你。成功了。起初我

在数学记数法中

这里lambda是2*1矩阵,a是5*2矩阵,y是1*5矩阵


因此,我想从(1:10,1:10)开始,使用persp()(或其他命令)绘制乐趣(lambda)。

您就快到了。您只需要创建一个值网格(1:10,1:10),在该网格上计算函数。我用虚拟数据来说明

fun = function(lambda) {-y %*% log(a %*% lambda) + lambda %*% apply(a,2,sum)}
set.seed(123)

lambdaM非常感谢你。成功了。起初我想使用outer(1:10,1:10,fun2),其中fun2(x,y)=fun(c(x,y)),但是由于一些奇怪的矢量化函数问题,它失败了。我想既然fun本身没有矢量化,apply()也会失败。
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)")