- ベストアンサー
Maximaが積分を行ってくれません
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2,#3です。 少し工夫すると数式処理ソフトMaple(有料ライセンス)と無料の計算サイト WolframAlphaで積分 ∫[0→∞]f(x)dxの数値積分が出来ました。 f(x)の計算式が長すぎてパソコン等の計算パワー不足で 計算できなかったようです。 定数項 b=exp((1/(1-exp(-1)))*log(a/(1-exp(-1))) を予め括りだして計算しておけば f(t)=exp((-exp(-1)+exp(-2))*x)*exp(1/(1-exp(-1))*log(α/((1-exp(-1)) *(((exp((-exp(-1)+exp(-2))*x)-exp(x))/(-exp(-1)+exp(-2)-1)) +exp((-exp(-1)+exp(-2))*x)/(exp(-1)-exp(-2))))))) =b*exp((-exp(-1)+exp(-2))*x)*exp(-log(((exp((-exp(-1)+exp(-2))*x)-exp(x))/(-exp(-1)+exp(-2)-1))+exp((-exp(-1)+exp(-2))*x)/(exp(-1)-exp(-2)))/(1-exp(-1))) と変形出来て、bを定数として与えてやれば数値積分できます。 α=1の時、b=2.065997986, ∫[0→∞]f(x)dx=0.2879173714 α=2の時、b=6.185179888, ∫[0→∞]f(x)dx=0.8619663461 α=3の時、b=11.74693607, ∫[0→∞]f(x)dx=1.637052397 などと計算結果が得られました。 WolframAlphaサイトで積分の前の定数bに予め上のbの式で計算した数値を 掛けておいて後は残りの[0→∞]の積分の式を書き込んで実行するだけで 数値積分をしてくれます。 ↓の例はα=2の場合で積分の前の定数はαに対するbの数値です。 http://www.wolframalpha.com/input/?i=6.185179888*integrate%28exp%28%28-exp%28-1%29%2Bexp%28-2%29%29*x%29*exp%28-ln%28%28exp%28%28-exp%28-1%29%2Bexp%28-2%29%29*x%29-exp%28x%29%29%2F%28-exp%28-1%29%2Bexp%28-2%29-1%29%2Bexp%28%28-exp%28-1%29%2Bexp%28-2%29%29*x%29%2F%28exp%28-1%29-exp%28-2%29%29%29%2F%281-exp%28-1%29%29%29%2C%5Bx%2C0%2Cinfinity%5D%29 αを変えてbを計算しておいて積分の前の定数をbの値に置き換えて やってみてください。 便利なサイトや数式処理ソフトも工夫次第で積分をしてくれます。 元のf(x)をそのまま積分させても積分してくれません。 積分の式を表示してくれるだけです。 なお、こういったやり方で数値積分できない場合は A#3で紹介した「ガウス-ラゲール(Gauss-Laguerre)積分公式」を使って 数値積分するしか方法がないでしょうね。 Maximaではやはり、まだ計算パワー不足なのか計算できませんでした。
その他の回答 (3)
- info22
- ベストアンサー率55% (2225/4034)
#2です。 お書きのf(x)の括弧の数(右括弧「)」が1つ足りない)が合わないですね。 >exp((-exp(-1)+exp(-2))*x)*exp(-((-1)/(1-exp(-1)))*log(α/((1-exp(-1))*(((exp((-exp(-1)+exp(-2))*x)-exp(x))/(-exp(-1)+exp(-2)-1))+exp((-exp(-1)+exp(-2))*x)/(exp(-1)-exp(-2))))) 何処に補えば良いのでしょうか? 他の有料ライセンス数式処理ソフトでもお書きのf(x)の積分は解析的な積分は不可能でしょう。 原因はlog(α/(...))の「...」の式が長くて複雑なために積分不可能のなっていると思われます。 αは文字定数のまま積分しないといけない定数ですか? αが既知の定数なら、数値として与えて、[0,∞]区間の積分を厳密式で計算できなくても、積分区間[0,∞]のガウス積分「ガウス-ラゲール(Gauss-Laguerre)積分」を使って数値積分すれば解決しませんか? http://home.hiroshima-u.ac.jp/atanaka/CmpPhys/EX-1/TEXT1.pdf
補足
ありがとうございます。 ご指摘通り、右括弧は最後に付け加えるのを忘れていました。 αは既知の定数です。 ガウス-ラゲール積分?初めて耳にしました。勉強してみます。
- info22
- ベストアンサー率55% (2225/4034)
どんな関数でも積分してくれるわけではありません(積分不可能な関数もあります)。 積分できない関数も存在しますし、非常に長い式になる場合も積分してくれない場合もあります。積分のパワー不足で積分してくれない場合もあります。 被積分関数を適当に変数変換したり、書き換えたり、工夫次第では積分してくれる場合もあります。 従って、実際の被積分関数、あるいはMaxima表現の積分の式を 具体的に書いていただかないとチェックもできません。
補足
返信ありがとうございます。 f(x)を載せました。 そうですね、変換して積分してくれるよう試みるべきでした。 ありがとうございます。
- Ginzang
- ベストアンサー率66% (136/206)
どんな関数を積分しようとしたのかが分からなくては、回答しようがないが…。 是非、教えて欲しい。 一般論として、複雑な関数の積分はMathematicaでも計算できないだろう。 積分は微分と違い、常に計算できるとは限らない。いつでもこのことを念頭においておくべきだろう。
補足
ありがとうございます。 f(x)を載せます。 exp((-exp(-1)+exp(-2))*x)*exp(-((-1)/(1-exp(-1)))*log(α/((1-exp(-1))*(((exp((-exp(-1)+exp(-2))*x)-exp(x))/(-exp(-1)+exp(-2)-1))+exp((-exp(-1)+exp(-2))*x)/(exp(-1)-exp(-2))))) これをmaximaやgnuplotでグラフ表示を行うとxの正の極限は0に収束している様子が分かります。 最終的にf(x)を0から∞で積分して数値を算出したいのですが、上記のように積分を行ってくれませんでした。 よろしくお願いします。
関連するQ&A
- 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の積分機能は弱いのでしょうか。
- ベストアンサー
- 数学・算数
- 積分 dx について
積分のdxについて ・不定積分・・・・・微分の逆操作 ・定積分・・・・・・総和Σの極限 であると理解しています。 関数F(x)をf(x)の原始関数とすると、F(x)の微分は、 d/dxF(x)=f(x)です。 不定積分の場合は、微分の逆操作なので、 d/dxF(x)=f(x)の両辺を積分すれば、∫d/dxF(x)=∫f(x)となります。 よって、不定積分は∫f(x)=F(x)+Cではダメなのでしょうか? わざわざf(x)dxとして積分する理由がわかりません・・・ 微分の逆操作という意味であれば、∫f(x)=F(x)+Cはとてもしっくりくるのですが・・・ もちろん、式変形を行いd/dxF(x)=f(x)より、dF(x)=f(x)dxとなり、 両辺を積分すれば、∫f(x)dxが導けることは理解できます。 ∫f(x)dxは、F(x)の接線の傾きであるf(x)とdxでの面積の総和となり、 ∫f(x)dxが直感的に微分の逆操作というイメージが沸きません・・・ F(x)の接線の傾きであるf(x)とdxでの面積の総和が原始関数となる事を 教えて頂けませんでしょうか? (もちろん、積分定数分は切片としてズレる事は理解しています。) そもそも∫○dxは、一対で考えなければならないのでしょうか? このdxが何で積分するかを表すという考えなのでしょうか? ということは、 ・不定積分・・・・・微分の逆操作→∫f(x)dxのdxは何で積分するかを表すための記号 ・定積分・・・・・・総和Σの極限→∫f(x)dxのdxは幅 という解釈で良いのでしょうか? 定積分であれば、面積=Σ(高さ×幅)となるので、∫f(x)dxは理解できます。f(x)が高さでdxが幅。 ※質問内容※ ・不定積分は、∫f(x)=F(x)+Cではダメか。 ダメな場合、なぜダメなのか。 ・∫○dxは一対で考えなければならないのか? ・F(x)の接線の傾きであるf(x)とdxでの面積の総和がなぜ原始関数になるのか? ・不定積分における∫f(x)dxのdxとは”何で積分するか”を表す記号と解釈してよいか? 以上、長々とあほな質問ですがご回答よろしくお願い致しますm(__)m ちなみに、以前私と同様の質問の方がいらっしゃいました。 http://okwave.jp/qa1415099.html
- ベストアンサー
- 数学・算数
- maxima の関数について
maxima を使ってまだそんなに知識が無い者です。 ある1変数関数において、定義域を範囲指定しておき、 その定義域において最大値をとる場合の定義域の値を返してくれる関数とはあるのでしょうか? 説明が下手なので具体例を出しますと、 例えば、f(x) = x^3 + 2*x + 1 という式があるとして、 そこで定義域を仮に、 x = [ -3 , 5 ] とした場合、 この範囲においてf(x)が最大値をとる際の x座標の値を返すような関数が maxima にはあるのでしょうか? 万が一そう言った関数がない場合でもこの関数を組み合わせればできるといったような 助言を与えてくださる方がいましたら是非お願いします。
- ベストアンサー
- 数学・算数
- 「微分」と「導関数」 「不定積分」と「原始関数」
高校で授業をしていてふと疑問に思ったことです。 手元の高校の教科書(数研)では「導関数を求めること」を「微分する」と表現していて、 「微分」という言葉は演算を表す動詞で、その結果を表す名詞(?)ではないようなのですが、 f(x)に対してf'(x)のことを「fの微分」とも呼びませんでしたっけ? 同じように積分に関してなんですが、 教科書では「F'(x)=f(x)であるF(x)をf(x)の不定積分または原始関数という」となっているんですが、 この「不定積分」と「原始関数」ってもともと別に定義していたように思うのです。 どうも、用語の使い分けが混乱しているので、 「微分」と「導関数」 「不定積分」と「原始関数」 この正式な使い分けについて、教えてほしいのです。 もっとも、高校ではあまり厳密にうだうだ言ってもかえって混乱するので、ある程度で流すわけですが。。。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 数IIの積分のところなのですが・・・・
2次関数f(x)の1つの不定積分F(x)が1/6(x^2-3)f'(x)に等しく、f(0)=2であるときのf(x)を求めたいのですが、f(x)をどのようにおいていいのか分かりません。どうかよろしくお願いします。
- ベストアンサー
- 数学・算数
- 数学の積分の問題ですが、お助けください
大学レベルの問題だと思います。途中経過もお願いします。 (1)有理関数 x/x^3+1 を部分分数展開せよ。 (2)不定積分 ∫x/x^3+1 dx を求めよ。 次の定積分を求めよ。 π/2 ∫ dx/2+cosx -π/2 1 ∫ dx/√(x^2+1) 0 よろしくお願いします
- 締切済み
- 数学・算数
お礼
ありがとうございます!! ここまで調べていただけるとは思いませんでした。 やはりパワー不足ということがありえるんですね。 すぐに確かめてみたいと思います。 ありがとうございます!
補足
0から無限大は無事積分できました! ありがとうございます。 しかし、0でなく4等のほかの数値から無限大で積分すると数値を出力されませんでした。 このような場合はできないのでしょうか? Wolfram Alphaの使い方が良く分からないのでまだ使いこなせていません。 何度もすみません。