对点矩阵进行积分
Integrating over a matrix of points
我有一个点矩阵 F(x,y) = z,但我没有 F(x,y) 的表达式。
x 来自 [0-2pi],y 来自 [0-pi]。对于每对 "coordinates",我有一个 z 值。
我想对 F 的 0-2pi 和 0-pi 进行二重积分。我可以在没有解析表达式的情况下计算 (MatLab) 吗?
谢谢!
假设(x,y)网格是均匀的,你可以通过2D-[=15=近似积分]如下:
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)
我有一个点矩阵 F(x,y) = z,但我没有 F(x,y) 的表达式。 x 来自 [0-2pi],y 来自 [0-pi]。对于每对 "coordinates",我有一个 z 值。
我想对 F 的 0-2pi 和 0-pi 进行二重积分。我可以在没有解析表达式的情况下计算 (MatLab) 吗?
谢谢!
假设(x,y)网格是均匀的,你可以通过2D-[=15=近似积分]如下:
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)