• ベストアンサー

mathematicaの積分

mathematicaの積分で Integrate[f[x],x]+Integrate[g[x],x] を Integrate[f[x]+g[x],x] にするにはどうすればいいでしょうか。 お願いします。 Simplifyでもやってくれません。

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

  • ベストアンサー
  • sanze_hui
  • ベストアンサー率100% (6/6)
回答No.2

私ならたとえば関数IntegrateSimplifyを次のように定義します. IntegrateSimplify[expr_] := ReleaseHold[Hold[expr] //. { Integrate[f_, x_] + Integrate[g_, x_] :> Integrate[f + g, x], a_*Integrate[f_, x_] :> Integrate[a*f, x] /; FreeQ[a, x] }] これを用いて IntegrateSimplify[a Integrate[f[x], x] + b Integrate[g[x], x]] とすると, Integrate[a*f[x] + b*g[x], x] を得ることができます. ただ,参考URLのようにMathematicaでは通常,微分や積分は展開する(Integrateの外に出す)方向に項の書き換えをしていくようですね.

参考URL:
http://reference.wolfram.com/mathematica/tutorial/AnExampleDefiningYourOwnIntegrationFunction.html
gatch_ky
質問者

お礼

完璧です。 ありがとうございました。

その他の回答 (1)

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

直接 Integrate[f[x]+g[x],x] と手入力したらどうですか? あるいは、 Integrate[f[x],x]+Integrate[g[x],x] を微分したものを積分すれば Integrate[f[x]+g[x],x] になるかと思います? 別々の積分の式を自動的に1つの積分にまとめてはくれないかと思います。

gatch_ky
質問者

補足

解答ありがとうございます. mathematicaで複雑なシステムをプログラミングしているので 手入力は避けたいです. やっぱり駄目なんですかね. 積分の加法性くらい実現してほしいですね.

関連するQ&A

  • Mathematicaの積分について

    Mathematicaを使って定積分を求めたいのですが、以下の入力では積分値を数値で返してくれません。どうしてでしょうか?原因と解決策を教えてください。 In:Integrate[1/Exp[Sqrt[x^2 + 1^2]], {x, 0, 1}] よろしくお願いします。

  • Mathematicaのプログラム

    Mathematicaの以下のプログラムでエラーがでてしまうのですが どこが間違っているのか教えてほしいです f[x_]:=x g[x_,y_]:=Integrate[f[x+y],x] Plot3D[g[x,y],{x,-3,3},{y,-3,3},PlotPoints->200] やりたいことはf(x)=xとしてf(x+y)をxで不定積分しその結果を変数x,yの2変数関数g(x,y)としてPlot3Dで表示したいのですが

  • Mathematicaにおける関数定義と部分積分

    Mathematicaにおける関数定義と部分積分 u[t_,x_]:=u[t,x] のように定義し、 u[t,x]に0を代入した場合、 u[t,l]の計算結果が0になってほしいのですが、 u[t,l]となってしまいます。 /.u[t,x]->0 とした場合に、u[t,x]の項だけでなく、u[t,l]の項も0になってほしいのです。 どのようにすれば、所望の動作をさせることができますか? また、Integrate[f[x]*g[x],{x,0,l}]で部分積分を実行したいのですが、 Mathematicaはやってくれません。 関数形のまま扱い、任意の回数部分積分を実行したいのです。 やはり、自分で関数を作るしなかないのでしょうか? 何かヒントがあれば、教えていただければ幸いです。 よろしくお願いいたします。

  • mathematica

    mathematicaで以下のような計算をしたいと思っています。 目標:y=f(x)がありy=1のときのxの値が知りたい そこで自分は逆関数を求めてからその式に1を代入して求めようと考えたのですがmathematicaで逆関数を求めるのはどのようにすればよいのでしょうか? もうひとつの解法としてシンプルに1=f(x)を解こうと試みてsolveを使ったのですが自分が今使おうとしているf(x)は中に積分が入っていたりと複雑なせいか、solveでは解けないと返ってきました。 上記のどちらでも構わないのでmathematicaで目標を求めるにはどのようにすればいいのでしょうか。よろしくお願い致します。

  • mathematicaで重積分ができません。

    mathematicaで複雑な2重積分を計算しようとしたのですが、出力に積分式そのものが出てしまって、計算結果が出力されません。いったいどうしたらよいでしょうか?

  • Mathematicaがうまく使えません。

    Mathematicaがうまく使えません。 関数f(x)でxが1から10までのリストを作りたいのですがうまく命令できません。どのように打てばいいのでしょうか?

  • 積分値Integrate[Abs[Sin[x]/x], {x, Pi, 2 Pi}]について

    mathematicaで Integrate[Abs[Sin[x]/x], {x, 0, Pi}] をしたら、 SinIntegral[\[Pi]] がでました。これはどういうものをあらわしますか? よめないです。。。教えてください! できれば、Abs[Sin[x]/x]の0-Pi、Pi-2Pi、・・・積分値の漸化式かI_nを教えていただけたらありがたいです。

  • 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の積分機能は弱いのでしょうか。

  • Mathematica で2元4次連立方程式を解くには・・・

    教えて下さい! 2元4次連立方程式{f(x,y)=0, g(x,y)=0} (関数fとgはxとyの4次方程式です。)について、 例えば、[x,-10,10]のような限定された範囲で 実数解(x,y)を Mathematicaを使って、30桁精度で数値的に求め、 それをx,yの2次元プロットしたいと思っております。 Mathematica のどのような関数を組み合わせれば これができるか、ご教示下さいませんでしょうか? よろしくお願いいたします。 (自分でC言語でプログラムした場合、解けるには解け るのですが、有効数字の桁数が十分でなく、部分的に 数値が丸まってしまい、プロットがとぎれてしまう問題 があったので、有効数字を自在に調節できるMathematica でやってみようと思ったのですが、例えば、安直に Plot[N[Solve[{f == 0, g == 0}], 30], {x, -10, 10, 0.01}] としてもダメでした。NRootなども検討しましたがうまく 行きません。)

  • 不定積分についてです

    (置換積分) f:[a,b]→[c,d]がC^1級でg:[c,d]→Rが連続であるとき次の式が成立する ∫[a,b]g(f(x))f'(x)dx = ∫[f(a),f(b)]g(y)dy この定理が成り立つのは良いのですが,不定積分について ∫g(f(x))f'(x)dx =∫g(y)dy が成り立つ理由がわかりません… 部分積分も同様に,定積分の式ならわかるのですが、不定積分について ∫f(x)g'(x)= f(x)g(x)-∫f'(x)g(x) となる理由がわかりません。 大学数学での不定積分のきちんとした定義とともに、 ∫[a,b]g(f(x))f'(x)dx = ∫[f(a),f(b)]g(y)dy ∫f(x)g'(x)= f(x)g(x)-∫f'(x)g(x) の成り立つ理由がわかる方がいらっしゃいましたら回答よろしくお願い致しますm(__)m