This shows you the differences between two versions of the page.
| — | linear_fit [2018/09/20 10:27] (current) supergnu created | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | <code c linearfit.c> | ||
| + | / | ||
| + | *Linear fit | ||
| + | * y = ax + b | ||
| + | * a = S[(x - mean(X))*(y - mean(Y))]/ | ||
| + | * b = mean(Y) - a*mean(X) | ||
| + | ************************************************************/ | ||
| + | void linearFit(int *values, int numberOfValues, | ||
| + | { | ||
| + | float mean = 0; | ||
| + | for (int i = 0; i < numberOfValues; | ||
| + | { | ||
| + | mean += values[i]; | ||
| + | } | ||
| + | mean /= (numberOfValues+1); | ||
| + | |||
| + | float numerator = 0; | ||
| + | float demominator = 0; | ||
| + | for (int i = 0; i < numberOfValues; | ||
| + | { | ||
| + | numerator += (values[i] - mean) * (i - numberOfValues/ | ||
| + | denominator += (values[i] - mean) * (values[i] - mean); | ||
| + | } | ||
| + | |||
| + | results[0] = numerator/ | ||
| + | |||
| + | results[1] = numberOfValues/ | ||
| + | } | ||
| + | </ | ||