R 使用具有固定参数的nls?

R 使用具有固定参数的nls?,r,R,我一直在尝试使用nls函数将实验数据拟合到一个模型中,这个模型由3个参数的函数表示,比如a、b和c。但是,我希望保持b和c固定,因为我知道它们的真实值,并且只适合参数a: nls(formula=pattern~myfunction(a, b, c), start=list(a=estimate_a), control=list(maxiter=50, tol=5e-8, warnOnly=T), algorithm="port", weights=sqrt(pattern), na.actio

我一直在尝试使用nls函数将实验数据拟合到一个模型中,这个模型由3个参数的函数表示,比如a、b和c。但是,我希望保持b和c固定,因为我知道它们的真实值,并且只适合参数a:

nls(formula=pattern~myfunction(a, b, c), start=list(a=estimate_a), control=list(maxiter=50, tol=5e-8, warnOnly=T), algorithm="port", weights=sqrt(pattern), na.action=na.exclude, lower=0, upper=1)
但显然这不起作用。。。我怎样才能告诉R b和c是固定的?

一个快速解决方案:

my_new_function <- function(a) myfunction(a, b = b_true, c = c_true)
nls(formula = pattern ~ my_new_function(a), start = list(a = estimate_a), 
    control = list(maxiter = 50, tol = 5e-8, warnOnly = TRUE), algorithm = "port", 
    weights = sqrt(pattern), na.action = na.exclude, lower = 0, upper = 1)
my_new_函数修复一个参数(1)在运行
nls
之前设置它,以及(2)不要将它包含在
start
中。下面是一个自包含的示例,显示将
a
固定为0:

a <- 0
nls(demand ~ a + b * Time, BOD, start = list(b = 1))

a谢谢Lars Lau Raket,我没有想过用这种方法来解决这个问题。