2011-12-15 29 views
11

2つのデータリストが{x1, x2, ..., xn}{y1, y2, ..., yn}の場合、Mathematicaで数値積分を行う組み込みルーチンがありますか?2つのデータリストを与えられたmathematicaの数値積分

私は台形の積分などをしたいです。それはNIntegrateと思われません。もちろん私はそれを自分で書くことができます。試してみるには数値統合スキームが多すぎると思ってください。

答えて

11

おそらくない何を考えているが、あなたは補間機能を設定できます。

dat = {#, Sin[#]} & /@ Range[0, 2*Pi, .1]; 

は({x,y}の形で)データポイントのリストを作成します。

fun = Interpolation[dat]; 

(それが何であるかを見るためにPlot[fun[x],{x,0,2*Pi}]をプロットしてみてください)補間関数を作成します。その後、NIntegrateを使用することができます。

NIntegrate[fun[x]^2, {x, 0, 2*Pi}] 

しかし、あなたが本当にそれをも可能ですMatlabの仕方をしたい場合。

+1

必要に応じて、_InterpolationOrder - > n_を使用することもできます。 –

+4

これは、少なくともドキュメントに従って推奨される方法です。かつてListIntegrate関数を持つアドオンパッケージがありました。このバージョンのドキュメントは、「バージョン6では、ListIntegrateがIntegrate [補間[データ、InterpolationOrder-> k] [x]、{x、Max [Subscript [x、c]]、Min [Subscript [x、c添え字[x、n]、添え字[y、n]}}の添字[x、1]、添字[x、 c] = data [[All、1]]。デフォルトの補間順はk = 3です。 –

+0

別のポイントとして、高次数値積分スキームのいくつかは、補間で見つかったアイデアに基づいています。 – rcollyer

関連する問題