包含R中求和的非线性方程

时间:2017-04-13 20:09:27

标签: r stochastic-process

我正在努力将这个等式实现为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)

1 个答案:

答案 0 :(得分:0)

从您对功能中使用的各种部件的描述中,您似乎已经混淆了公式。

您的函数gamma最有可能写成

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

s2prices2.bar是您描述中的向量,因此您提供的公式将返回一个向量。

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

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