# Least squares fitting by a constant

1. Mar 22, 2012

### chuy52506

say we have data set {y(t sub i), t sub i} Where i=1 2 3....m.
I know how to fit these into a line of the form ax+b, but how about fitting into a constant??

2. Mar 23, 2012

### chiro

Hey chuy52506 and welcome to the forums.

Think about the fact that you are minimizing the distances between y = c and the data points where we have the sum over (y(a)-c)^2 for all a belonging to the dataset being a minimum.

How much math have you taken? Have you taken any classes on optimization or linear algebra?

3. Mar 23, 2012

### chuy52506

I only have taken an introductory course to linear algebra and no optimization...im sorry im confused, so there is no need to use matrices? and why would (y(a),c) be squared?

4. Mar 23, 2012

### chiro

You have to solve the following equation:

Minimize $\sum (y(n) - c)^2$

You can expand this out in terms of c and you will get a quadratic function of c in terms of f(c) = ac^2 + bc + d and then by differentiating this you need to find the minimum which is given by solving 2ac + b = 0.

5. Mar 23, 2012

### rcgldr

For a polynomial fit, including y=c, the matrices can be eliminated using a polynomial that is the sum of orthognal (for the given data points) polynomials of increasing order. Link to description of algorithm, that includes a c code example at the end.

http://rcgldr.net/misc/opls.rtf

The algorithm uses a recursive definition for the set of polynomials, and then based on this recursive definition combined with the fact the generated polynomials will be orthogonal, it's able to elminate the need for matrices, allowing coefficients to be determined via finite summation series. The algoritm generates 3 sets of constants for the orthogonal polynomials, but the code example explains how generate standard coefficients for a single polynomial, which is what you'd really want.

Note that this algorithm assumes you enter a set of data points {x, y} or a weighted set {w, x, y}. For an unweighted set of data points, just use w = 1. For y = c, just use incrementing numbers for x values, with the y values representing the actual values to be fitted via least squares (in case you want to see if there is a slope using y = bx + c).

Last edited: Mar 23, 2012