5

私は358個の数字のベクトルを持っています。このベクトルを数値積分したいのですが、関数がわかりません。

trapz または quad を使用できることがわかりましたが、関数なしで統合する方法がよくわかりません。

4

3 に答える 3

8

ベクトルの水平方向の間隔がわかっている場合は、trapzを使用して関数なしで統合できます。たとえば、y=sin(x)0 から pi までを 358 セクションで積分するには、

x=0:pi/357:pi;
y=sin(x);
area=trapz(x,y);

ポイント間のデフォルトの距離が 1 であると想定されているため、単に を使用するtrapz(y)と、はるかに大きな数値が得られます。この問題は、x ポイント間の距離を掛けることで修正できます。

area=pi/357*trapz(y);
于 2010-05-18T22:00:54.590 に答える
6

数値積分するために関数を知る必要はありません。trapzそれがとのポイントですquadtrapzベクトルを渡すだけです。ドキュメントへのリンクは次のとおりです。

于 2010-05-18T20:48:33.633 に答える
1

ベクトルによって形成される曲線の下の領域を見つけるように積分を考えてください。実は曲線ではなく、多角形の鎖です。TRAPZ関数が行っていることは、ベクトル内の2つの隣接点ごとに形成された各台形の面積の合計と、X軸へのそれらの投影を見つけますポイント間の距離が不均一な場合、または距離が等しくない場合は、関数のドキュメントを参照してください。

この方法の詳細については、Wikipediaなどを参照してください。

于 2010-05-18T21:38:08.100 に答える