File: br8.py

package info (click to toggle)
python-bumps 1.0.0b2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,144 kB
  • sloc: python: 23,941; xml: 493; ansic: 373; makefile: 209; sh: 91; javascript: 90
file content (93 lines) | stat: -rwxr-xr-x 1,860 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env python

"""
Bevington & Robinson's model of dual exponential decay

References::
    [5] Bevington & Robinson (1992).
    Data Reduction and Error Analysis for the Physical Sciences,
    Second Edition, McGraw-Hill, Inc., New York.
"""

from numpy import exp, sqrt, vstack, array, asarray


def dual_exponential(t, A, B, C, tauA, tauB):
    """
    Computes dual exponential decay.

        y = A exp(-t/tauA) + B exp(-t/tauB) + C
    """
    t = asarray(t)
    return C + A * exp(-t / tauA) + B * exp(-t / tauB)


# data from Chapter 8 of [5].
data = array(
    [
        [15, 775],
        [30, 479],
        [45, 380],
        [60, 302],
        [75, 185],
        [90, 157],
        [105, 137],
        [120, 119],
        [135, 110],
        [150, 89],
        [165, 74],
        [180, 61],
        [195, 66],
        [210, 68],
        [225, 48],
        [240, 54],
        [255, 51],
        [270, 46],
        [285, 55],
        [300, 29],
        [315, 28],
        [330, 37],
        [345, 49],
        [360, 26],
        [375, 35],
        [390, 29],
        [405, 31],
        [420, 24],
        [435, 25],
        [450, 35],
        [465, 24],
        [480, 30],
        [495, 26],
        [510, 28],
        [525, 21],
        [540, 18],
        [555, 20],
        [570, 27],
        [585, 17],
        [600, 17],
        [615, 14],
        [630, 17],
        [645, 24],
        [660, 11],
        [675, 22],
        [690, 17],
        [705, 12],
        [720, 10],
        [735, 13],
        [750, 16],
        [765, 9],
        [780, 9],
        [795, 14],
        [810, 21],
        [825, 17],
        [840, 13],
        [855, 12],
        [870, 18],
        [885, 10],
    ]
)

# Set uncertainty to sqrt(counts)
data = {"x": data[0], "y": data[1], "dy": sqrt(data[1])}

# coeff = {'A': 1, 'B': 1, 'C': 1, 'tauA': 1, 'tauB': 1}