Lion Behrens
Lion Behrens

Reputation: 319

Solve polynomial equation for x in R

This might be insanely simple, but how can I solve the following equation for x using R? X should be a real number.

((4*x)^2+(2*x)^2+(1*x)^2+(0.5*x)^2+0.25)*((1 - 0.167)/0.167) = 1

Upvotes: 0

Views: 4143

Answers (2)

Manuel Bickel
Manuel Bickel

Reputation: 2206

You might also consider using Ryacas that can handle/solve symbolic expression on basis of the interface to the Computer Algebra System yacas. Of course, the perfomance of yacas is limited when it comes to more advanced functions in comparison to, e.g., Maple, however, in your case it works fine.

#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))))                                                            

Upvotes: 0

Mouad_Seridi
Mouad_Seridi

Reputation: 2716

the short answer is that this polynomial has no roots in the set of real numbers, you can see that analytically with some help from 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

Upvotes: 3

Related Questions