如何在R语言中获取3D曲面图z最小值对应的x、y取值
找到3D曲面最小值对应的x、y取值
嘿,我来帮你搞定这个问题!你已经完成了函数定义、生成序列、计算z矩阵和绘制3D曲面的工作,现在只需要补充几行代码就能找到z最小值对应的x和y取值啦~
首先,我们把完整的代码整合好,关键部分我会加上注释:
# 定义cone函数 cone <- function(x,y){ ((x^2)+(y^2)-(x*y)) } # 生成x、y序列 x <- y <- seq(-0.5, 0.5, length=50) # 计算z矩阵 z <- outer(x, y, cone) # 加载plotly包并绘制3D曲面图 library(plotly) fig <- plot_ly(x = x, y = y, z = z) %>% add_surface() fig # 找到z的最小值 min_z <- min(z) # 关键:找到最小值在z矩阵中的行、列索引 min_position <- which(z == min_z, arr.ind = TRUE) # 根据索引获取对应的x和y值 min_x <- x[min_position[, 1]] min_y <- y[min_position[, 2]] # 打印结果 cat("z的最小值为:", min_z, "\n") cat("对应的x取值为:", min_x, "\n") cat("对应的y取值为:", min_y, "\n")
代码小解释
which(z == min_z, arr.ind = TRUE):这个函数会返回z矩阵中等于最小值的元素的行和列索引——因为z是outer生成的,行对应x序列的位置,列对应y序列的位置。x[min_position[,1]]:用行索引从x序列中取出对应的x值,同理y[min_position[,2]]取出对应的y值。
运行这段代码后,你就能清晰看到z的最小值以及它对应的x、y取值啦~
内容的提问来源于stack exchange,提问作者ASHUTOSH KAUSHAL
相关产品推荐
相关产品推荐

