無理数 √b√d の有理化について
無理数 √b√d を有理化すると、 √bdd となる。しかし、rat() を使っても
となって、分子の無理数が計算されない。ここで rootscontract() を使って分子の根号の積を計算しようとしても
となって有理化する前の式に戻ってしまう。しかし、下の場合は
と、分子の根号計算をしてくれる。
根号は指数に変換して処理
これは Maxima内部では sqrt(a) つまり √a は a12 と表現しているからだ。したがって√2×√33は212×312×3−1 と解釈されて 212×3−12 と計算して √2√3 と出力される。
√abb と出力する方法
この様な意図しない結果が現れるのは有理化後に分子が全て無理数を含むの積で表されているときだけ起こり、以下のような例では
と有理化して分子を計算してくれる。つまり、 √a√b を有理化するときだけ起こると考えてよい。そこで以下のような関数を定義した。
ratio(x,y):=rat(xy)y2y2
ただし、y=√m(m>0)
これで正しく計算される。
参考
1. Maxima (虎の備忘録)
3. Maxima Manual(de)
4. Maxima 5.29.1 Manual
5. Maxima (eBook en)
0 件のコメント :
コメントを投稿