You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言curve函数绘制固定参数的自定义函数图像

使用R的curve函数绘制自定义fun1函数图像的解决方案

问题背景

你已经定义了如下自定义函数:

fun1 <- function( x, y, z ){
  1 / (1 + (x / y)^z) 
}

需要用R的curve函数绘制该函数图像,要求固定参数y=1、z=0.5,横轴取指定的x范围(比如10到1000)或离散x值(10、50、1000),纵轴为对应x的fun1计算结果,之前参考了单参数函数的curve示例,需要可行的实现方案。

实现方案

方案1:直接在curve中使用匿名函数固定参数

curve函数要求传入的函数仅接受x作为唯一参数,因此可以直接在curve里用匿名函数,把y和z的参数固定住:

# 定义原函数
fun1 <- function( x, y, z ){
  1 / (1 + (x / y)^z) 
}

# 调用curve绘制连续曲线,x范围从10到1000
curve(fun1(x, y=1, z=0.5), 
      from=10, to=1000,
      xlab="x值", 
      ylab="fun1计算结果", 
      main="fun1函数连续图像(y=1, z=0.5)")

方案2:先创建固定参数的包装函数

如果需要多次调用,也可以先写一个只接受x的包装函数,再传给curve:

# 定义原函数
fun1 <- function( x, y, z ){
  1 / (1 + (x / y)^z) 
}

# 创建固定y、z参数的包装函数
fun1_fixed <- function(x) {
  fun1(x, y=1, z=0.5)
}

# 调用curve绘制曲线
curve(fun1_fixed, 
      from=10, to=1000,
      xlab="x值", 
      ylab="fun1计算结果", 
      main="fun1函数连续图像(y=1, z=0.5)")

方案3:绘制指定离散x值的点

如果只需要绘制10、50、1000这几个离散点,curve不适合(它是绘制连续曲线的),可以用plot函数:

# 定义原函数
fun1 <- function( x, y, z ){
  1 / (1 + (x / y)^z) 
}

# 指定要绘制的离散x值
x_points <- c(10, 50, 1000)
# 计算对应的fun1结果
y_points <- fun1(x_points, y=1, z=0.5)

# 绘制离散点
plot(x_points, y_points,
     xlab="x值", 
     ylab="fun1计算结果", 
     main="fun1函数离散点图像(y=1, z=0.5)",
     pch=16, # 设置点的形状为实心圆
     col="red") # 设置点的颜色为红色

内容的提问来源于stack exchange,提问作者user20501829

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:20:49