高斯一维

class astropy.modeling.functional_models.Gaussian1D(amplitude=1, mean=0, stddev=1, **kwargs)[源代码]

基类:astropy.modeling.core.Fittable1DModel

一维高斯模型。

参数
振幅 :浮动或 Quantity浮动或

高斯的振幅(峰值)-对于归一化剖面(积分为1),设置振幅=1/(stddev np.sqrt(2 np.pi))

mean :浮动或 Quantity浮动或

高斯平均值。

标准设备 :浮动或 Quantity浮动或

半高宽=2的高斯分布的标准差 标准设备 np.sqrt(2*np.log(2))。

其他参数
fixed口述,可选

字典 {{parameter_name: boolean}} 在拟合过程中不能改变的参数。True表示参数保持不变。或者 fixed 可以使用参数的属性。

tied可选的

字典 {{parameter_name: callable}} 链接到其他参数的参数。字典值是提供链接关系的可调用项。或者 tied 可以使用参数的属性。

bounds可选的

字典 {{parameter_name: value}} 参数的上下界。键是参数名。值是一个长度为2的列表或元组,为参数提供所需的范围。或者 minmax 可以使用参数的属性。

eqcons可选列表

长度函数列表 n 这样的话 eqcons[j](x0,*args) == 0.0 在一个成功优化的问题中。

ineqcons可选列表

长度函数列表 n 这样的话 ieqcons[j](x0,*args) >= 0.0 是一个成功优化的问题。

笔记

全部输入或不输入 xmeanstddev 必须一致地使用兼容的单位或作为无单位数字提供。

模型公式:

\[f(x)=一个e ^{-\frac{\left(x-x{0}\right)^{2}}}{2\sigma^{2}}}\]

实例

>>> from astropy.modeling import models
>>> def tie_center(model):
...         mean = 50 * model.stddev
...         return mean
>>> tied_parameters = {'mean': tie_center}

通过以下两种方法之一指定“mean”是绑定参数:

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                             tied=tied_parameters)

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.mean.tied
False
>>> g1.mean.tied = tie_center
>>> g1.mean.tied
<function tie_center at 0x...>

固定参数:

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                        fixed={'stddev': True})
>>> g1.stddev.fixed
True

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.stddev.fixed
False
>>> g1.stddev.fixed = True
>>> g1.stddev.fixed
True
import numpy as np
import matplotlib.pyplot as plt

from astropy.modeling.models import Gaussian1D

plt.figure()
s1 = Gaussian1D()
r = np.arange(-5, 5, .01)

for factor in range(1, 4):
    s1.amplitude = factor
    plt.plot(r, s1(r), color=str(0.25 * factor), lw=2)

plt.axis([-5, 5, -1, 4])
plt.show()

(png _, svgpdf

../_images/astropy-modeling-functional_models-Gaussian1D-1.png

属性摘要

amplitude 

fwhm 

高斯全宽为半最大值。

input_units 

此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或 None 如果接受任何单位)。

mean 

param_names 

描述此类型模型的参数的名称。

stddev 

方法总结

evaluate \(x,振幅,平均值,标准偏差)

高斯模型函数。

fit_deriv \(x,振幅,平均值,标准偏差)

高斯一维模型函数导数。

属性文档

amplitude = Parameter('amplitude', value=1.0)
fwhm

高斯全宽为半最大值。

input_units
mean = Parameter('mean', value=0.0)
param_names = ('amplitude', 'mean', 'stddev')

描述此类型模型的参数的名称。

此元组中的参数与初始化特定类型的模型时应传入的顺序相同。某些类型的模型,如多项式模型,根据模型的某些其他属性(如阶数)有不同数量的参数。

定义自定义模型类时,此属性的值由 Parameter 在类中定义的body属性。

stddev = Parameter('stddev', value=1.0, bounds=(1.1754943508222875e-38, None))

方法文件

static evaluate(x, amplitude, mean, stddev)[源代码]

高斯模型函数。

static fit_deriv(x, amplitude, mean, stddev)[源代码]

高斯一维模型函数导数。