• ベストアンサー

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

  • Maximaが積分を行ってくれません

    Maximaで関数f(x)をxで不定積分しました。 するとf(x)の前に積分記号が付いただけの結果が出ます。(定積分の場合も同じで記号の上下に数値があるだけです) 単純な関数だと計算してくれます。 しかし、今回用いる関数が非常に複雑(指数eの肩に対数log、対数の中身も指数の分数・・など)(必要な場合はお教えします)なのですがそのような結果が出力されました。 積分能力が低いため複雑な関数は出来ないのでしょうか?積分する際の留意点などあるのでしょうか? よろしくお願いします。

  • 分数関数の積分

    積分後の文字の範囲がわからないので質問します。 ∫1/(x^2-a^2)dx=1/(2a)∫{1/(x-a)-1/(x+a)}dx= 1/(2a){log|x-a|-log|x+a|}+C(Cは積分定数)= 1/(2a)log|(x-a)/(x+a)|+C (a>0)と書かれていて、最後のa>0記述がわかりません。インターネットで調べたころa≠0の時上記のような答え。a=0の時は∫x^(-2)dxを計算していました。a=0のとき1/2aの分母を0にしまうのでa≠0はわかるのですが、a>0かa≠0どちらが正しいかどなたか教えてくださいお願いします。

  • 無理代数関数の分数の積分法について

    試験データを次式で表した時の積分が必要になり、公式を探してみたのですが見つからず、数値積分で行っています。できれば数式展開により積分結果を式で表したいのですが、どなたか教えていただけないでしょうか。 f(x)=ax/{1+b(x+c)^p} pは正の実数で^はべき乗を表し、a,b,cは定数、xが変数で、ほしいのはf(x)の不定積分の数式表示です。

  • maximaの積分に関する質問です

    maximaで積分を行っているのですが、 integrate(x,x,sqrt(y),y);と入力してその計算結果が返ってくるはずなのですが、 defint: lower limit of integration must be real; found sqrt(y) -- an error. To debug this try: debugmode(true); とエラー表示がされてこれ以上計算が進みません。どのように対処すれば うまくいくのでしょうか。

  • 分数関数の積分の導き方を教えてください。

    以下の積分を導き出す手順を教えてください。 ∫{ (x-b)^(a-1)}/x dx a, b は実数です 。 自力で計算できなかったので、Wolfram Matheaticaのサイトで積分したところ答えが { (x-b)^a/ab }{ 1 - (1-b/x)^-a 2F1(-a, -a; 1-a; b/x) } とガウスの超幾何級数を用いて算出されました。 確かに普通に積分しようとしても積分できそうになく級数に頼るしかないと模索していましたが、 どのように算出されたのかさっぱりわかりません。 導き方をご存知の方ご教示いただきたくお願いいたします。

  • maxima の関数について

    maxima を使ってまだそんなに知識が無い者です。 ある1変数関数において、定義域を範囲指定しておき、 その定義域において最大値をとる場合の定義域の値を返してくれる関数とはあるのでしょうか? 説明が下手なので具体例を出しますと、 例えば、f(x) = x^3 + 2*x + 1 という式があるとして、 そこで定義域を仮に、 x = [ -3 , 5 ] とした場合、 この範囲においてf(x)が最大値をとる際の x座標の値を返すような関数が maxima にはあるのでしょうか? 万が一そう言った関数がない場合でもこの関数を組み合わせればできるといったような 助言を与えてくださる方がいましたら是非お願いします。

  • 合成関数について

     こんばんは!ちょっと気になったのですが、  "f'(x)"が関数f(x)の導関数,"C"が積分定数を表すとき、  合成関数の微分法 [{f(x)}^n]' = nf'(x){f(x)}^n-1 が成り立つという事は、この関数の不定積分は、  ∫{f(x)}^n dx = [{1/(n+1)f'(x)}{f(x)}^n+1]+C としてもかまわないのでしょうか。  f(x)=ax+b のとき、  ∫(ax+b)^n dx = [{1/(n+1)a}(ax+b)^n+1]+C が成り立つので、関数全体としてはどうかなぁと思ったのですが・・・  よろしくお願いします。

  • 定積分

    明日からテストで勉強していたんですが、定積分の所でつまった高3です。 f(0)=0,f(1)=1を満たす2次関数f(x)のうちで、 S(1から0の範囲){f(x)}^2dxを最小にするものを求めよ f(x)=ax^2+bx+cとおいて c=0,a+b+c=1までは分かるんですがそこから どう考えればいいのか分かりません><

  • maximaで定積分を漸化式と台形から解きたい

    maxima初心者です。 f(x):=%e^a*x^n*%e^(-x); a:0.5; n:20; を4つの方法で0からaまで定積分し、その誤差を比較し正しい答え(誤差が少ない?)を出す計算式をみつけるという課題が出ました。 integrate(f(x), x, 0, a); romberg(f(x), x, 0, a); で出してはみたのですが、漸化式を使った解き方と、台形から解く方法、そして何が正しいのかの見極め方がわかりません。 漸化式は資料に I[0]:%e^a-1; for n:1 thru 20 do( I[n]:n*I[n-1]-a^n); print(i[20]); というヒントがあったのですが、正直これに関しては何が何なのかさっぱりわかっていません。 そして台形に関しては (f(0)+f(0.5))*(0.5)/2;で大きなひとつの台形として計算できると思ったので、 (f(0)+f(0.5)+2*(f(0.1)+f(0.2)+f(0.3)+f(0.4))) *(0.5/5)/2; や (f(0)+f(0.5)+2*(f(0.05)+f(0.1)+f(0.15)+f(0.2)+f(0.25)+f(0.3)+f(0.35)+f(0.4)+f(0.45))) *(0.5/10)/2; と分割数を大きくしてみましたが、これだと埒があかないですよね.. どうにもこうにもいかなくなり、質問させていただきました。 せっかくの高性能を全く使いこなせていなくて情けないです。 どなたか超初心者の私にわかりやすく解説していただけないでしょうか。 よろしくお願いします。

  • 対数関数と微分積分

    対数関数と微分積分 対数関数でlog x=1/xと言うのは決まり文句ですか。 log 2=1/2ですか。 後、微積で4x^3=x^4と言うのは積分するとa^nのnが消えaが指数になるのですか。 最後に ∫1/x・x^4   ↓ ∫x^ 3 dx   ↓ 1/4+Cになった理由を教えて下さい。 問題の式は∫4x^3log x dxです。