Skip to content
Snippets Groups Projects
lorentzian.py 787 B
Newer Older
#!/usr/bin/env python 
# -*- coding: utf-8 -*-

#-----------------------------------------------------------------------------
# Copyright (c) 2013, NeXpy Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING, distributed with this software.
#-----------------------------------------------------------------------------
import numpy as np

function_name = 'Lorentzian'
parameters = ['Integral', 'Gamma', 'Center']

def values(x, p):
    integral, gamma, center = p
    return integral * (gamma/np.pi) / ((x-center)**2 + gamma**2)

def guess(x, y):
    center = (x*y).sum()/y.sum()
    gamma = np.sqrt(np.fabs(((x-center)**2*y).sum()/y.sum()))
    integral = y.max() * np.pi * gamma
    return integral, gamma, center