-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathfit.py
22 lines (17 loc) · 859 Bytes
/
fit.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from wrappers import leastsquareslinefit
# compute_error functions
def sumsquared_error(sequence, segment):
"""Return the sum of squared errors for a least squares line fit of one segment of a sequence"""
x0,y0,x1,y1 = segment
p, error = leastsquareslinefit(sequence,(x0,x1))
return error
# create_segment functions
def regression(sequence, seq_range):
"""Return (x0,y0,x1,y1) of a line fit to a segment of a sequence using linear regression"""
p, error = leastsquareslinefit(sequence,seq_range)
y0 = p[0]*seq_range[0] + p[1]
y1 = p[0]*seq_range[1] + p[1]
return (seq_range[0],y0,seq_range[1],y1)
def interpolate(sequence, seq_range):
"""Return (x0,y0,x1,y1) of a line fit to a segment using a simple interpolation"""
return (seq_range[0], sequence[seq_range[0]], seq_range[1], sequence[seq_range[1]])