如何参数化作为高斯导数的曲线
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
在下面的高斯方程中,我可以指定高度 (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