R nls:找不到功能“a”

时间:2014-02-27 13:36:36

标签: r nls

我正在尝试使用nls()函数来拟合信息。 公式为:enter image description here

但是R生气了:)

> dk1
                        Q   H
                1  43.754  21
                2  74.434  52
                3  94.601  72
                4 115.327  81
                5 135.751 109
                6  72.990  54
                7  35.756  12
                8  36.685   2
                9  35.799   2
> k1_H0
                [1] 0
> n_N <- nls(Q ~ a((H-k1_H0)^b)*(exp(1)^(c(log10(H-k1_H0)^2))), data = dk1, start = list( a = 0.1, b = 0.1, c=0.1), trace = T)
Error in eval(expr, envir, enclos) : could not find function "a"

1 个答案:

答案 0 :(得分:1)

您可以尝试:

nls(Q ~ a*((H-k1_HO)^b)*exp(c*(log10(H-k1_HO)^2)), data = dk1, start = list( a = 0.1, b = 0.1, c=0.1), trace = T)

应该用适当的起始值给出结果(否则错误提到“奇异梯度”)。

R需要*符号才能知道它是一个多重过程,否则a()或c()被视为函数。对于指数,你应该看看?exp。