[英]Solve polynomial equation for x in R
这可能非常简单,但是如何使用R求解x的以下方程式? X应该是一个实数。
((4*x)^2+(2*x)^2+(1*x)^2+(0.5*x)^2+0.25)*((1 - 0.167)/0.167) = 1
简短的答案是,该多项式在实数集中没有根,您可以在R的一些帮助下从分析上看到这一点:
> #((4*x)^2+(2*x)^2+(1*x)^2+(0.5*x)^2+0.25)*((1 - 0.167)/0.167) = 1
>
> # first add up your coefficients
> coefs <- c(16 + 4 + 1+ .25 , .25)
> coefs
[1] 21.25 0.25
>
> # apply the second product
> coefs <- (coefs - 0.167*coefs)/0.167
> coefs
[1] 105.995509 1.247006
>
> # move the one from one side to another
>
> coefs <- coefs - c(0,1)
> coefs
[1] 105.995509 0.247006
>
> #106*x^2 + 1/4 = 0 has no solution in the set of real number
您可能还会考虑使用Ryacas
,它可以根据与计算机代数系统yacas的接口来处理/解决符号表达式。 当然,与例如Maple相比,yacas在执行更高级功能时的性能是有限的,但是,在您的情况下,它可以正常工作。
#Ryacas solves the equation and shows that there is only a complex solution
library("Ryacas")
yacas("Solve(((4*x)^2+(2*x)^2+(1*x)^2+(0.5*x)^2+0.25)*((1 - 0.167)/0.167) == 1, x)")
# expression(list(x == complex_cartesian(0, root(0.00688875/2.95610875, 2)),
# x == complex_cartesian(0, -root(0.00688875/2.95610875, 2))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.