2017-03-23 7 views
1

Matlabのいくつかの離散データポイントで関数の積分を計算する必要があります。私は各点の絶対座標を持っています: x = [1,2.65,3.25,3.33,15.65] y = [10,31,15、-6,1] trapz(x,y)関数を使用しようとしていましたが、xは必須ですデータ点のx座標ではなく、データ点間の間隔です。Matlabの離散データポイントでの積分

このような統合を計算する最も簡単な方法は何ですか?

答えて

0

integralでは、1Dのオプションとしてウェイポイントを指定できます。 2D統合のためにintegral2を使用すると、それはできないようです。

また、2次元の長方形の積分点グリッドがあるようですか?その場合

だけ(diffを介して)、平均間隔の長さに応じた重みを計算し、次にまとめます。統合グリッドは固定されているため、数値積分の精度は制御できず、統合する関数に依存します。

% get grid 
x = [1, 3, 7, 15]'; 
y = [3, 6, 8]; 
[xi, yi] = ndgrid(x, y); 

% get weights 
h = diff(x, [], 1); 
wx = ([h; 1] + [1; h])/2; 
h = diff(y, [], 2); 
wy = ([h, 1] + [1, h])/2; 
w = wx * wy; 

% calculate function 
f = func(xi, yi); 

% integration is weighted summation 
int = sum(f(:) .* w(:)); 

境界線を慎重に扱う必要があります。また、あなたの座標のリストをソートする必要があります。

関連する問題