• 締切済み

Mathematicaで約分できない

シンボリックなユーザー関数f[x]を定義し、いくつかの変形を行いました。 関数の分母と分子に、同一の変数の平方根(sqrt(t))がでてきたのですが、Simplify、FullSimplify,Cancelを試しても、約分してくれず、困っています。 helpの例にある Cancel[f[x],Extension->Automatic]なども試したのですが、うまく消してくれません。 解決法又は参考URLをご教示よろしくお願いします。

みんなの回答

回答No.2

No1の補足に対する回答。 数値[12.30000000…1]も、数値[12.29999999…7]も、ディスプレイ表示上は[12.3]ですので、約分できそうですが、裏方の計算はレジスタを使って行いますので、同じ[12.3]であっても全く違うために約分できないのです。 この現象を避けるには、分母と分子のsqrt(t)を例えば10倍してから小数点以下を丸めて、整数に直すような操作が考えられます。

回答No.1

sqrt(t)は、いわゆる実数値を返します。 この実数というのがクセモノで、平方根が12.3の場合は[12.30000000…1]または[12.29999999…7]のような値をとるのが普通です。 みかけの数値に騙されないでください。 分母・分子がともに整数値であれば約分できますが、ご質問のケースは実数表現なので、約分できないのが普通です。稀に約分できることもありますが。

yyamada10
質問者

補足

貴重なご教示ありがとうございます。 上記の件も、今まで知らずにいたので大変勉強になりました。 ただ、私の説明が不十分で申し訳ありません。 今回の場合、分母分子にある平方根の中身は、同じシンボリックの変数となっています。なので、数値誤差は発生しないと思うのですが、理解不足でしょうか?再度ご教示よろしくお願いします。

関連するQ&A