为什么平滑核的积分不等于 1?

计算科学 matlab sph
2021-12-05 13:14:05

我正在检查 SPH 的平滑内核上的统一条件,但是我不明白为什么积分没有给出 1。

核函数是W(||r||,h)=31564πh8(h2r2)3如果0||r||h

我试图用下面的matlab代码来近似积分

W = @(r) (r >= 0) .* (r <= 1) * 315/(64*pi*1^4) .* (1^2-r.^2).^3;
integral(W,0,1,'AbsTol',1e-12)

在哪里h=1结果是0.7162

我做错了什么,拥有一个积分是统一的内核的目的是什么,即归一化?

1个回答

具有积分 1 的平滑内核的目的通常是当您在位置上有一个点粒子时x0具有密度函数δ(xx0), 平滑内核将密度替换为W(xx0,h). 换句话说,它平滑了狄拉克三角函数。由于 Dirac delta 函数的积分为 1,因此平滑函数的积分也最好为 1。

积分计算您拥有的粒子数(只有一个)。选择具有错误积分的内核会“创建”或“破坏”粒子。R3δ(xx0)dx=1

积分取整个空间, 使用球坐标。在您的情况下,积分是 而这应该是 .

1=R3W(x,h)dx=4π0hW(r,h)r2dr,
4π0h31564πh8(h2r2)3r2dr=h,
1