如何在R中将数值向量转换为下凹抛物线曲线
转换方程与R实现
首先推导符合要求的抛物线方程:
- 抛物线顶点在(50, 100),且经过(0,0)和(100,0)两点
- 用顶点式
y = a(x - h)² + k(其中h=50,k=100),代入(0,0)解得a=-0.04 - 最终转换方程为:
y = -0.04*(x - 50)^2 + 100,展开后也可写成y = 4*x - 0.04*x^2
R代码实现
# 生成原始向量 values <- runif(n = 1000, min = 0, max = 100) # 应用转换方程 transformed_values <- -0.04 * (values - 50)^2 + 100 # 绘制原向量与转换后向量的关系图 plot(values, transformed_values, main = "原数值与转换后数值的关系", xlab = "原始值", ylab = "转换后值", pch = 16, col = rgb(0,0,1,0.3)) # 添加抛物线拟合线(可选,更直观) curve(-0.04*(x-50)^2 +100, from=0, to=100, col="red", lwd=2, add=TRUE)
说明
转换后的数值严格落在0到100之间,完全匹配需求:原始值0和100对应转换后0,原始值50对应转换后100,整体呈现下凹抛物线形态。
内容的提问来源于stack exchange,提问作者jotamon
相关产品推荐
相关产品推荐

