我想在圆柱坐标中积分一个离散场,给定为A(r, z),有z规律地间隔(间距距离dz),并且r不规则地间隔。此外,r[0]>0由于所选择的离散化。对于集成,我想使用梯形方法,并从 z 分量开始,将所有内容集成到一个向量中aux:
for (int i = 0; i < Nr; ++i) {
for (int j = 0; j < Nt; ++j) {
double I = A(i, j);
if ((j == 0) || (j == Nt - 1))
I *= 0.5;
aux(i) += I;
}
aux(i) *= dz;
}
对于沿r-axis 的积分,我必须考虑不同的间距,导致
double integral = 0;
for (int i = Nr; i > 0; --i) {
integral += (r(i) * aux(i) + r(i - 1) * aux(i - 1)) / 2
* (r(i) - r(i-1));
}
最后,在r[0] > 0我还必须通过添加考虑到这一点之后
integral += 0.5 * aux(0) * r(0) * r(0);
并添加缺少的:
integral *= 2 * M_PI;
这种方法是正确的,还是我在这里错过了某个因素?