0

数値ではなく、Rで分析的に3次方程式の解を得ようとしています。

私はインターネットで調べて、立方根の式を取得し、次のコードを書きました: リンクは: http://www.math.vanderbilt.edu/~schectex/courses/cubic/

cub <- function(a,b,c,d) {
  p <- -b/3/a
  q <- p^3 + (b*c-3*a*(d))/(6*a^2)
  r <- c/3/a
  x <- (q+(q^2+(r-p^2)^3)^0.5)^(1/3)+(q-(q^2+(r-p^2)^3)^0.5)^(1/3)+p
  x
}

ただし、この関数はほとんどの場合機能しません。これは、数式内の負の数の累乗が原因であると思います。たとえば、R は (-8)^(1/3) の実根 (-2) を取得できないことに気付きました。 . しかし、一般的に正確な3次解を解くために使用できるようにコードを修正する方法がわかりません。

ありがとう。

4

4 に答える 4

1

実際のルートのみが必要な場合は、別のオプションがあります。

> x <- c( -8,8 )
> sign(x) * abs(x)^(1/3)
[1] -2  2

または、他のオプションとして Ryacas パッケージや polynom パッケージに興味があるかもしれません。

于 2014-03-24T02:15:47.750 に答える