R中涉及求和的非线性方程
Nonlinear equation involving summations in R
我在尝试将这个方程实现到 R 中的非线性求解器中时遇到了最困难的时间。我正在尝试 nleqslv
和 BB
包,但到目前为止除了错误之外一无所获。我一直在搜索和阅读文档,直到我的眼睛流血,但我无法全神贯注。等式本身是这样计算的:
The Equation
s2 * sum(price^(2*x+2)) - s2.bar * sum(price^(2*x)) = 0
其中 s2
、s2.bar
和 price
是已知的等长向量。
我在 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
}
s2
、price
和 s2.bar
是您描述中的向量,因此您给出的公式将 return 一个向量。
由于您没有提供任何数据我们无法测试。我已经尝试使用 s2
、price
、s2.bar
的随机生成值进行测试。有时人们会同时获得 nleqslv
和 BB
的解决方案,但并非总是如此。
在包 nleqslv
的情况下,默认方法并不总是有效。
由于包有不同的方法,您应该使用包中的函数 testnslv
来查看是否有任何提供的方法确实找到了解决方案。
我在尝试将这个方程实现到 R 中的非线性求解器中时遇到了最困难的时间。我正在尝试 nleqslv
和 BB
包,但到目前为止除了错误之外一无所获。我一直在搜索和阅读文档,直到我的眼睛流血,但我无法全神贯注。等式本身是这样计算的:
The Equation
s2 * sum(price^(2*x+2)) - s2.bar * sum(price^(2*x)) = 0
其中 s2
、s2.bar
和 price
是已知的等长向量。
我在 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
}
s2
、price
和 s2.bar
是您描述中的向量,因此您给出的公式将 return 一个向量。
由于您没有提供任何数据我们无法测试。我已经尝试使用 s2
、price
、s2.bar
的随机生成值进行测试。有时人们会同时获得 nleqslv
和 BB
的解决方案,但并非总是如此。
在包 nleqslv
的情况下,默认方法并不总是有效。
由于包有不同的方法,您应该使用包中的函数 testnslv
来查看是否有任何提供的方法确实找到了解决方案。