R:求多项式方程的根

时间:2015-09-16 11:33:13

标签: r newtons-method

我在R中有这个等式。

f <- function(x) {first +second*x +third*x^2  +fourth*filter_factor - log(myBITRATE)}

,其中

first= -5.219078
second = 0.7613156
third = -0.01298033
fourth = -0.05218249
filter_factor = 1
myBITRATE = 184.47

有没有办法找到这个等式的根源?

我需要newton-raphson方法的起点。

1 个答案:

答案 0 :(得分:2)

你的函数是一个带有一个变量的二阶多项式,所以你可以做一个简单的计算:

delta = second^2 - 4*third*(first + fourth*filter_factor - log(myBITRATE))

由于你的delta是严格肯定的:

x1 = (- second - sqrt(delta))/(2*third)
x2 = (- second + sqrt(delta))/(2*third)

#> x1
#[1] 36.53336
#> f(x1)
#[1] 0
#> x2
#[1] 22.11812
#> f(x2)
#[1] 8.881784e-16