Интегрирование по матрице точек

У меня есть матрица точек F(x,y) = z, но у меня нет выражения для F(x,y). x из [0-2pi], а y из [0-pi]. Для каждой пары «координат» у меня есть значение z.

Я хотел бы выполнить двойное интегрирование от 0-2pi и 0-pi F. Могу ли я сделать это вычислительным способом (MatLab), не имея аналитического выражения?

Спасибо!


person mr-santos    schedule 16.01.2015    source источник
comment
Я не думаю, что это дубликат, потому что сетка (x,y) неоднородна в связанном вопросе.   -  person Luis Mendo    schedule 16.01.2015


Ответы (1)


Предполагая, что сетка (x,y) равномерна, вы можете аппроксимировать интеграл двумерной-сумма Риммана следующим образом:

result = sum(z(:))*delta_x*delta_y;

где delta_x, delta_y — шаг сетки в направлениях x и y. В вашем случае они могут быть вычислены как

delta_x = 2*pi/numel(x); %// or 2*pi/(numel(x)-1)
delta_y = pi/numel(x); %// or pi/(numel(x)-1)

Возможно, более интуитивная интерпретация: вычислите среднее значение функции и умножьте его на площадь домена (x,y):

result = sum(z(:))/(numel(x)*numel(y)) * 2*pi^2; %// or replace numel(x)*numel(y) 
                                                 %// by numel(z)
person Luis Mendo    schedule 16.01.2015