• ベストアンサー

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で複雑なシステムをプログラミングしているので 手入力は避けたいです. やっぱり駄目なんですかね. 積分の加法性くらい実現してほしいですね.