2017-11-01 3 views
0

이것은 아주 간단 할 수도 있지만, R을 사용하여 다음 방정식을 어떻게 풀 수 있습니까? X는 실수 여야합니다.R에있는 x에 대한 다항식을 풀어보십시오.

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

이것은 선형 방정식이 아니며, 변수 x의 2 차 다항식이 아닙니다. 또한'x'가 실수인지 복소수인지를 지정해야합니다. –

+0

댓글 주셔서 감사합니다! 나는 제목을 조정했다. X는 실수 여야합니다. –

답변

2

짧은 대답이 다항식은 실수의 집합에는 뿌리가 없다는 것입니다, 당신은 분석적 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 
0

또한 Ryacas를 사용하는 것이 좋습니다 그 Computer Algebra System yacas에 대한 인터페이스를 기반으로 상징적 인 표현을 처리하거나 해결할 수 있습니다. 물론 yacas의 성능은 예를 들어 메이플 (Maple)과 비교하여 더 많은 고급 기능을 제공 할 때 제한적이지만 귀하의 경우에는 정상적으로 작동합니다.

#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))))                
관련 문제