伏伊格特1d

class astropy.modeling.functional_models.Voigt1D(x_0=0, amplitude_L=1, fwhm_L=0.6366197723675814, fwhm_G=0.6931471805599453, method='humlicek2', **kwargs)[源代码]

基类:astropy.modeling.core.Fittable1DModel

Voigt剖面的一维模型。

参数
x_0 :浮动或 Quantity浮动或

峰顶位置

amplitude_L :浮动或 Quantity浮动或

洛伦兹振幅(相关洛伦兹函数的峰值)-对于归一化轮廓(积分为1),设置振幅_L=2/(np.pi*fwhm_L)

fwhm_L :浮动或 Quantity浮动或

洛伦兹全宽半最大值

fwhm_G :浮动或 Quantity浮动或

半最大高斯全宽

method可选的STR

计算复杂误差函数的算法;‘Humlicek2’之一(默认、快速且通常比 rtol=3.e-5 )或‘Scipy’,也可以选择‘wofz’(需要 scipy ,几乎同样快速和准确)。

其他参数
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 是一个成功优化的问题。

笔记

全部输入或不输入 x ,位置 x_0 以及 fwhm_* 必须一致地使用兼容的单位或作为无单位数字提供。Voigt函数被计算为根据Schreier 2018(MNRAS 479,3068;)之后的Humlicek有理近似(JQSRT 21:309,1979;27:437,1982)计算的复误差函数的实部 hum2zpf16m 从他的cpfX.py模块);或 wofz (实现‘Faddeeva.cc’)。

实例

import numpy as np
from astropy.modeling.models import Voigt1D
import matplotlib.pyplot as plt

plt.figure()
x = np.arange(0, 10, 0.01)
v1 = Voigt1D(x_0=5, amplitude_L=10, fwhm_L=0.5, fwhm_G=0.9)
plt.plot(x, v1(x))
plt.show()

(png _, svgpdf

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

属性摘要

amplitude_L 

fwhm_G 

fwhm_L 

input_units 

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

param_names 

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

sqrt_ln2 

sqrt_ln2pi 

sqrt_pi 

x_0 

方法总结

evaluate (x、xu 0、振幅u L、fwhm u G)

一维Voigt函数缩放到洛伦兹峰值振幅。

fit_deriv (x、xu 0、振幅u L、fwhm u G)

一维Voigt函数对参数的导数。

属性文档

amplitude_L = Parameter('amplitude_L', value=1.0)
fwhm_G = Parameter('fwhm_G', value=0.6931471805599453)
fwhm_L = Parameter('fwhm_L', value=0.6366197723675814)
input_units
param_names = ('x_0', 'amplitude_L', 'fwhm_L', 'fwhm_G')

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

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

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

sqrt_ln2 = 0.8325546111576977
sqrt_ln2pi = 1.475664626635606
sqrt_pi = 1.7724538509055159
x_0 = Parameter('x_0', value=0.0)

方法文件

evaluate(x, x_0, amplitude_L, fwhm_L, fwhm_G)[源代码]

一维Voigt函数缩放到洛伦兹峰值振幅。

fit_deriv(x, x_0, amplitude_L, fwhm_L, fwhm_G)[源代码]

一维Voigt函数对参数的导数。