• ベストアンサー

Maximaで分数関数の積分がでjきない

Maximaで関数f(x):=x/{a(x-b)+c}をintegrate(f(x),x)で積分すると、f(x)の前に積分記号が付いただけの結果が出ます。正解は、 x/a+{(ab-c)log(-ab+c+ax)}/a^2なのですが、Maximaの積分機能は弱いのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

最新バージョン「wxMaxima 0.8.3a」では次のようにチャンと積分してくれます。 f:x/(a*(x-b)+c); integrate(f,x); 出力 x/a-((c-a*b)*log(a*x+c-a*b))/a^2 これはお書きのMathematicaの結果と同じですね。 もし旧バージョンをお使いなら最新バージョンをインストールして確認してみてください。 Mathematicaの積分サイトやwxMaximaで文字定数を使う場合には、特に積分が対数となる場合、真数の符号に注意しないと真数が整数でない結果も含まれていたりして、一見積分してくれているように見えても正しい積分になっていない結果を(Mathematica積分サイトでもwxMaximaでも)出してきます。 従って、文字定数を使う場合は、積分が正しいか確認する必要がありますね。 例えば f(x)の分母がゼロとなる場合のxに対してf(x)は定義されませんがその場合積分の対数は真数がゼロとなって未意義となることは別にして 分母>0となるxの範囲では正しい積分結果となりますが、 分母<0となる場合も積分が存在しますが、Mathematica積分サイトもwxMaximaも正しい積分結果を与えてくれません(対数の真数が負になる。他の数式処理ソフトも同じ)。 なので、文字定数を含む積分については、どちらのソフトでも計算してくれた積分結果を鵜呑みにしないで、正しいかチェックするようにした方が良いですね。

pipiruru11
質問者

お礼

ご指摘に力を得て、もう一度式を見直したところ、ミスにより分母の二重括弧の外側が中括弧{}になっていました。これを直したら正解が出ました。その他のご教示も含め、感謝いたします。

その他の回答 (1)

  • sono0315
  • ベストアンサー率48% (85/177)
回答No.1

私もMaximaを使っていて、質問者さんと同じ症状が現れたことがありました。 私の場合は定積分でしたが、やはり∫記号に積分範囲が 書かれた形で表記されただけです。 積分機能は弱いと思いますよ。少なくとも私の体感では。 Wolfram Mathematica Online Integrator http://integrals.wolfram.com/index.jsp だと当たり前に計算できる普通の積分なんですがね。

pipiruru11
質問者

お礼

ご回答、ありがとうございます。そうなんですか。これくらいの積分ができないようだと、何か、Maxima全体に少し不信感が生まれました。なお実は記載した正解はご紹介の参考URLから得たものです。

関連するQ&A