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/ | ||
+ | } | ||
+ | </ |