2017-11-01 8 views
0

これは非常に簡単かもしれませんが、Rを使って次の式をどのように解くことができますか? Xは実数でなければなりません。xの多項式をRで計算する

((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を使用することを検討するかもしれませんコンピュータ代数システム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))))                
関連する問題