【问题标题】:R: Find roots of polynomial equationR:求多项式方程的根
【发布时间】:2015-12-12 23:18:06
【问题描述】:

我在 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 方法的起点。

【问题讨论】:

  • 使用您的函数生成一个数字序列,然后在该序列上使用 polyroot 函数。

标签: r newtons-method


【解决方案1】:

您的函数是具有一个变量的二阶多项式,因此您可以进行简单的计算:

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

由于您的增量是严格正数:

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

【讨论】:

  • delta 为负值的情况怎么办?
  • 我想问你,当没有解决方案的情况下出现负值时,你期望什么? NA?请注意您的问题不清楚您想要什么输出(包含潜在解决方案的列表?)
  • 好的,我明白了。我有另一个问题。我的等式是f &lt;- function(x) {first +second*x +third*filter_factor - log(myBITRATE)} 你也能帮我解决这个问题吗?
  • 我想我已经回答了这个问题......我同意这是一个提供帮助、引导但不做所有功课的网站:) 你可以根据你的系数调整公式:en.wikipedia.org/wiki/Quadratic_equation
猜你喜欢
  • 1970-01-01
  • 2017-07-20
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
相关资源
最近更新 更多