如何参数化作为高斯导数的曲线

How to parameterize a curve that is the derivative of a Gaussian

在下面的高斯方程中,我可以指定高度 (a)、宽度 (c) 和中心 (b)。

f(x) = a*e^[-(x-b)^2 / (2c^2)]

高斯导数采用以下形式:

我想做的是想出一个方程,我可以在其中指定曲线的高度、宽度和中心,如高斯导数

上述高斯方程的导数为:

d = (a*(-x).*exp(-((-x).^2)/(2*c^2)))/(c^2);

一阶 Hermite 函数采用类似的形式。

d = (((pi)^(-1/4)*exp(-0.5*(x.^2))).*x)*sqrt(2);

我的目标是得到一个采用这种一般形式并允许我指定高度、宽度和中心的方程式。

高斯导数的表达式需要做两处改动:

  • 微分保留高度和位置的变化。唯一的问题是在导数的表达式中你缺少参数 b。您应该x替换为x-b

  • 至于宽度的变化,因为原来的高斯函数有面积1,更高的c产生更多的宽度但也更小的高度。为了弥补这一点,乘以 c,这样高度就不会受到 c.

  • 变化的影响

所以,参数化函数为

d = c*(a*(-x+b).*exp(-((-x+b).^2)/(2*c^2)))/(c^2);

示例:

figure
hold on
grid
x = -20:.1:20;

a = 1; b = 2; c = 3; % initial values
d = c*(a*(-x+b).*exp(-((-x+b).^2)/(2*c^2)))/(c^2);
plot(x, d, 'linewidth', 1) % blue

a = 2; b = 2; c = 3; % change height
d = c*(a*(-x+b).*exp(-((-x+b).^2)/(2*c^2)))/(c^2);
plot(x, d, 'linewidth', 1) % red

a = 1; b = 7; c = 3; % change center
d = c*(a*(-x+b).*exp(-((-x+b).^2)/(2*c^2)))/(c^2);
plot(x, d, 'linewidth', 1) % yellow

a = 1; b = 2; c = 5; % change width
d = c*(a*(-x+b).*exp(-((-x+b).^2)/(2*c^2)))/(c^2);
plot(x, d, 'linewidth', 1) % purple