R中涉及求和的非线性方程

Nonlinear equation involving summations in R

我在尝试将这个方程实现到 R 中的非线性求解器中时遇到了最困难的时间。我正在尝试 nleqslvBB 包,但到目前为止除了错误之外一无所获。我一直在搜索和阅读文档,直到我的眼睛流血,但我无法全神贯注。等式本身是这样计算的:

The Equation

s2 * sum(price^(2*x+2)) - s2.bar * sum(price^(2*x)) = 0

其中 s2s2.barprice 是已知的等长向量。

我在 BB 中尝试的最后一次尝试是这样的:

gamma = function(x){
        n = len(x)
        f = numeric(n)
        f[n] = s2*sum(price^(2*x[n]+2)) - s2.bar*sum(price^(2*x[n]))
        f
      }

g0 = rnorm(length(price))
results = BBsolve(par=g0, fn=gamma)

从你对函数中使用的各个部分的描述来看,你似乎把公式弄糊涂了。

您的函数 gamma 最有可能写成

gamma <- function(x){
    f <- s2*sum(price^(2*x+2)) - s2.bar*sum(price^(2*x))
    f
}

s2prices2.bar 是您描述中的向量,因此您给出的公式将 return 一个向量。

由于您没有提供任何数据我们无法测试。我已经尝试使用 s2prices2.bar 的随机生成值进行测试。有时人们会同时获得 nleqslvBB 的解决方案,但并非总是如此。

在包 nleqslv 的情况下,默认方法并不总是有效。 由于包有不同的方法,您应该使用包中的函数 testnslv 来查看是否有任何提供的方法确实找到了解决方案。