我正在尝试使用nls()函数来拟合信息。 公式为:
但是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"
答案 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。