我知道如何使用this vertica jdbc driver执行单个积分。如果我的函数是m1=(sum(diff(x,1,2).*(f(:,1:end-1)+f(:,2:end)),2))/2
,则MATLAB中的f(x,y,z)
上的单个积分看起来像
dydz
现在,如果我有函数Algorithm What(A,n)
A <-- new 2D array of n*n integers
s <-- 0
for I <-- 2 to n-2 do
for j <-- I-2 to n-1 do
s <--s + A[I][j]
end for
end for
如何使用MATLAB中非均匀网格的梯形规则在HashMap<String, String> cust = new HashMap<>();
上执行双积分?
请注意它的网格不均匀。
答案 0 :(得分:2)
使用MATLAB中的内置函数trapz
,您可以实现这一目标。这是一个例子:
>> x = -3:.1:3;
y = -5:.1:5;
z = -10:0.1:10;
[X,Y,Z] = meshgrid(x,y,z);
F = X.^2 + Y.^2 + Z.^2;
I = trapz(y,trapz(x,F,2));
I = squeeze(I);
我正在做的是创建由小写x,y,z
表示的数据点的网格网格,并评估函数,在本例中为X^2+y^2+Z^2
。您已经有了备用数据。请注意,您始终可以使用griddata
统一重新网格化数据。
然后我使用trapz
两次来整合x和y维度。 trapz
专门专门针对不等于1的第一个矩阵维度进行集成,允许我这样做(请参阅此处的文档:http://www.mathworks.com/help/matlab/ref/trapz.html)。
最后,我使用数据挤压删除所有单例维度并返回一个向量。如果我沿着剩余维度绘制数据,我得到:
>> plot(z,I);
与我原来的功能相比,如果在-3 <= x <= 3
和-5 <= y <= 5
之间进行分析整合,我会获得:680 + 60 z^2
。两人达成一致。