如何使用Ryacas推导出来

时间:2018-03-30 09:52:15

标签: r derivative yacas

我完全没有使用Ryacas包。我想获得多项式的连续导数,所以我尝试了以下几行:

library(Ryacas)
x <- Sym("x")
P <- 1
for (k in 1:10) {
  P <- (1+k*x)*P + x*(1-x)*deriv(P, x)
  P
}

我期望获得连续的多项式:

P = (1 + x)(1) = 1 + x
P = (1 + 2x)(1 +x) + x(1 - x)(1) = 1 + 4x + x^2
P = (1 + 3x)(1 + 4x + x^2) + x(1 - x)(4 + 2x) = 1 + 11x + 11x^2 + x^3

等等。

未指示错误,但未显示输出。所以写我的线条显然是错误的。你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

在开头使用P <- Sym(1)。在循环中也使用Simplify,否则计算过于耗时。您还必须在循环中使用print

library(Ryacas)
x <- Sym("x")
P <- Sym(1)
for (k in 1:10) {
  P <- Simplify((1+k*x)*P + x*(1-x)*deriv(P, x))
  print(P)
}

结果:

expression(3 * x^2 - x^3 + 9 * x + 1)
expression(x^4 - 4 * x^3 + 18 * x^2 + 20 * x + 1)
expression(5 * x^4 - x^5 + 2 * x^3 + 94 * x^2 + 43 * x + 1)
expression(x^6 - 6 * x^5 + 27 * x^4 + 196 * x^3 + 411 * x^2 + 
    90 * x + 1)
expression(7 * x^6 - x^7 - 9 * x^5 + 527 * x^4 + 2017 * x^3 + 
    1593 * x^2 + 185 * x + 1)
expression(x^8 - 8 * x^7 + 40 * x^6 + 1000 * x^5 + 8686 * x^4 + 
    14440 * x^3 + 5704 * x^2 + 376 * x + 1)
expression(9 * x^8 - x^9 - 24 * x^7 + 2280 * x^6 + 32058 * x^5 + 
    101190 * x^4 + 86280 * x^3 + 19368 * x^2 + 759 * x + 1)
expression(x^10 - 10 * x^9 + 57 * x^8 + 4368 * x^7 + 112134 * 
    x^6 + 597108 * x^5 + 937350 * x^4 + 461328 * x^3 + 63417 * 
    x^2 + 1526 * x + 1)
expression(11 * x^10 - x^11 - 43 * x^9 + 9249 * x^8 + 371346 * 
    x^7 + 3173370 * x^6 + 8269398 * x^5 + 7454718 * x^4 + 2289231 * 
    x^3 + 202459 * x^2 + 3061 * x + 1)
expression(x^12 - 12 * x^11 + 78 * x^10 + 18068 * x^9 + 1197279 * 
    x^8 + 15664248 * x^7 + 63560580 * x^6 + 94344696 * x^5 + 
    53298207 * x^4 + 10776596 * x^3 + 634926 * x^2 + 6132 * x + 
    1)