我有一个点F(x,y)= z的矩阵,但我没有F(x,y)的表达式。 x是[0-2pi],y是[0-pi]。对于每对“坐标”,我的值为z。
我想在0-2pi和0-pi之间执行双重积分。我可以在没有解析表达式的情况下计算(MatLab)吗?
谢谢!
答案 0 :(得分:2)
假设( x , y )网格是一致的,您可以通过2D近似积分 - Riemman sum,如下所示:
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)