2013/02/22

Ubuntu  Maxima 分母の有理化を行うときの注意

無理数 \(\frac{\sqrt{b}} { \sqrt{d}} \) の有理化について

無理数 \(\frac{\sqrt{b}} { \sqrt{d}} \) を有理化すると、 \(\frac{\sqrt{bd}} {d} \) となる。しかし、rat() を使っても



となって、分子の無理数が計算されない。ここで rootscontract() を使って分子の根号の積を計算しようとしても



となって有理化する前の式に戻ってしまう。しかし、下の場合は



と、分子の根号計算をしてくれる。


根号は指数に変換して処理

これは Maxima内部では sqrt(a) つまり \( \sqrt{a}\) は \(a^{\frac{1}{2}}\) と表現しているからだ。したがって\[ \frac{\sqrt{2} \times \sqrt{3}}{3} \]は\[ 2^{\frac{1}{2}} \times 3^{\frac{1}{2}} \times 3^{-1} \] と解釈されて \[ 2^{\frac{1}{2}} \times 3^{- \frac{1}{2}}\] と計算して \[ \frac{\sqrt{2}}{\sqrt{3}} \] と出力される。


\( \frac{\sqrt{ab}}{b}\) と出力する方法 

この様な意図しない結果が現れるのは有理化後に分子が全て無理数を含むの積で表されているときだけ起こり、以下のような例では


と有理化して分子を計算してくれる。つまり、 \( \frac{\sqrt{a}}{\sqrt{b}}\) を有理化するときだけ起こると考えてよい。そこで以下のような関数を定義した。
  \[ ratio(x,y) :=  \frac{rat(\frac{x}{y}) y^2}{y^2}\]
ただし、\( y=\sqrt{m}   (m>0)\)
これで正しく計算される。

参考

 1. Maxima (虎の備忘録)



 3. Maxima Manual(de)

 4. Maxima 5.29.1 Manual

 5. Maxima (eBook en)

0 件のコメント :

コメントを投稿