root - 代数式の n 乗根
使い方
root(x,n) または root[n](x)
root(x,n,symbolic) または root[n](x,symbolic)
パラメータ
x - 任意の代数式
n - 正の整数
|
説明
|
|
•
|
関数 root は x の n 乗根を計算します。x としては、たとえば 2.0, 2.0+0.5*I のような実または複素の浮動小数点定数、8, 2+I/2 のような整数や複素の有理定数、あるいは b, -8*a^4*y, ln(1+x) のような一般の記号式がありえます。x が実または複素の浮動小数点定数のとき、根は浮動小数点算術で計算されます。そうでないときは、root 関数は x^(1/n) を簡単にしようとします。どんな簡単化もできなかったときは、単にベキ x^(1/n) が返されます。
|
•
|
浮動小数点数の場合、``主要根'' (principal root) が計算されます。これは次の式で定義される根です。
|
|
root(x,n) = exp(1/n * ln(x)) .....
|
•
|
たとえば、y^3+8=0 の3つの根は -2, 1+I*sqrt(3), 1-I*sqrt(3) です。したがって、root(-8.0,3) は 1.000000000 + 1.732050808 I を返し、実数 -2.0 を返しません。実数の実の n 乗根が欲しいときは surd を参照してください。
|
•
|
有理定数の分数ベキ、すなわち a,b,n,d を整数として根 a^(n/d) や (a/b)^(n/d) に対して、Maple は自動的に次の変換を適用することにより整数の分数ベキとして標準形で書き込みます。
|
(1) a^(n/d) = a^(q*d+r/d) ==> a^q*a^(r/d) (0<r<d)
(2) (a/b)^(n/d) ==> a^(n/d)*b^(-n/d) (b>0,d>0)
|
たとえば、3^(5/2) ==> 3^(2+1/2) ==> 3^2*3^(1/2) ==> 9*3^(1/2)、また、(5/3)^(1/2) ==> 5^(1/2)*3^(-1/2) ==> 5^(1/2)*3^(1/2)/3 です。root 関数は変換 (1) と次の変換を行います。
|
(4) root[n](a/b) ==> root[n](a*b^(n-1))/b
(5) root[n](-a) ==> (-1)^(1/n)*root[n](a)
(6) root[n](p^n*a) ==> p*root[n](a) (p は p<150 を満たす素数)
(7) root[n](a^n) ==> a
|
たとえば、root[3](-8) ==> 2*(-1)^(1/3)、また、root[3](24/5) ==> root[3](24*5^2)/5 ==> 2*root[3](3*5^2)/5 ==> 2/5*75^(1/3) です。入力された整数 x を分解しようという試みはなされていないことに注意してください。
|
•
|
記号式に対しては、いくつかの簡単化が試みられます。主なものは、
|
(8) root[n](a^n*b) ==> a*root[n](b) (signum(a)=1 のとき) と
(9) root[n](a^n*b) ==> -a*root[n]((-1)^n*b) (signum(a)=-1 のとき)
|
です。ここで n は正の整数で条件 signum(a)=1 は a が実で正であることを意味します。負ベキについても同様の簡単化が行われます。これらの簡単化は x に現れる明示的な整数乗に対してのみ行われます。入力 x を分解しようという試みはなされません。
|
•
|
注意: Maple は root[n](x^n) を x に簡単化しません。これは一般の x に対しては正しくありません。Maple は (x^n)^(1/n) を返します。ときに、ユーザの仕事の文脈によっては、この変換が有効であることがわかっているかも知れません。symbolic オプションが指定され、signum(x) がわかっていると、root は a が正であると実際に仮定して変換 (8) を適用します。適当な仮定、たとえば assume(a>0) を置くことにより、root 関数に簡単化を強いることも可能です。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
| (2.4) |
| (2.5) |
| (2.6) |
| (2.7) |
| (2.8) |
| (2.9) |
| (2.10) |
| (2.11) |
| (2.12) |
| (2.13) |
>
|
root[3](16*x^3*y,symbolic);
|
| (2.14) |
>
|
root[4](-16*x^4*y,symbolic);
|
| (2.15) |
>
|
assume(x>0);
root[3](16*x^3*y);
|
| (2.16) |
| (2.17) |
>
|
assume(x<0);
root[3](16*x^3*y);
|
| (2.18) |
| (2.19) |
| (2.20) |
>
|
f := expand( (x-1)^3 );
|
| (2.21) |
| (2.22) |
| (2.23) |
|
|