求助:基于R绘制指定参数下多元函数H的x-y等高线图
R语言绘制指定条件下的多元函数等高线图
首先代入给定条件z=3和w=5到原函数,简化得到仅关于x和y的函数:
H(x,y,z,w) = 2xy + 3zw - x² + w³
代入后计算常数项:335=45,5³=125,常数项总和为45+125=170,最终简化后的函数为:H(x,y) = 2xy - x² + 170
下面提供两种R语言实现绘图的方法:
方法一:使用基础绘图包
# 1. 生成x和y的取值序列 x <- seq(-10, 10, by = 0.5) y <- seq(-10, 10, by = 0.5) # 2. 创建网格并计算每个点的函数值 h_grid <- outer(x, y, function(x, y) 2*x*y - x^2 + 170) # 3. 绘制常规等高线图 contour(x, y, h_grid, main = "H(x,y) = 2xy - x² + 170 等高线图", xlab = "x", ylab = "y", col = "blue", lwd = 1.5) # 可选:绘制带填充色的等高线图 filled.contour(x, y, h_grid, main = "H(x,y) 填充式等高线图", xlab = "x", ylab = "y", color.palette = terrain.colors)
方法二:使用ggplot2包(可视化样式更丰富)
若未安装ggplot2,先执行安装命令:
install.packages("ggplot2")
绘图代码:
library(ggplot2) # 1. 生成网格数据框 grid_data <- expand.grid(x = seq(-10, 10, by = 0.5), y = seq(-10, 10, by = 0.5)) # 2. 计算每个网格点的函数值 grid_data$H <- with(grid_data, 2*x*y - x^2 + 170) # 3. 绘制常规等高线图 ggplot(grid_data, aes(x = x, y = y, z = H)) + geom_contour(color = "darkred", size = 0.8) + labs(title = "H(x,y) 等高线图", x = "x", y = "y") + theme_minimal() # 可选:绘制带填充色的等高线图 ggplot(grid_data, aes(x = x, y = y, z = H)) + geom_contour_filled(bins = 15) + labs(title = "H(x,y) 填充式等高线图", x = "x", y = "y") + theme_minimal()
说明:
- 可根据需求调整
seq函数里的取值范围(如-10,10)和步长(如by=0.5),获得更精细或宏观的视图; - 两种方法都支持自定义颜色、线条粗细等样式参数,可按需修改。
内容的提问来源于stack exchange,提问作者Hew123
相关产品推荐
相关产品推荐

