lorentzian_diff

Stoner.analysis.fitting.models.generic.lorentzian_diff(x, A, sigma, mu)[source]

Implement a differential form of a Lorentzian peak.

Parameters
  • x (array) – x data

  • A (flaot) – Peak amplitude

  • sigma (float) – peak wideth

  • mu (float) – peak location in x

Returns
:math:`frac{A sigma left(2 mu - 2 xright)}{pi left(sigma^{2} +

left(- mu + xright)^{2}right)^{2}}`

Example

"""Test langevin fitting."""
from copy import copy

from numpy import linspace, ones_like
from numpy.random import normal

from Stoner import Data
from Stoner.analysis.fitting.models.generic import (
    Lorentzian_diff,
    lorentzian_diff,
)

x = linspace(-1.0, 1.0, 101)
params = [1, 0.1, -0.25]
y = lorentzian_diff(x, *params) + normal(size=len(x), scale=0.5)
dy = ones_like(x) * 5e-3
d = Data(x, y, dy, setas="xye", column_headers=["Time", "Signal", "dM"])

d.curve_fit(lorentzian_diff, p0=copy(params), result=True, header="curve_fit")

d.setas = "xye"

d.lmfit(Lorentzian_diff, result=True, header="lmfit", prefix="lmfit")


d.setas = "xyeyy"
d.plot(fmt=["r+", "b-", "g-"])

d.annotate_fit(
    lorentzian_diff,
    x=0.6,
    y=0.2,
    fontdict={"size": "x-small", "color": "blue"},
    mode="eng",
)
d.annotate_fit(
    Lorentzian_diff,
    x=0.05,
    y=0.2,
    fontdict={"size": "x-small", "color": "green"},
    prefix="lmfit",
    mode="eng",
)
d.title = "Differential Lorentzian Fit"