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(:));
境界線を慎重に扱う必要があります。また、あなたの座標のリストをソートする必要があります。