Skip to content

Contains a simple "C" function -- polyfit() -- that fits a line or higher-order polynomial to a set of points, using Method of Least Squares regression. Design goals include simplicity and ease of porting.

License

Notifications You must be signed in to change notification settings

henryfo/polyfit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Name

polyfit — "C" function that fits a polynomial to a set of points

Synopsis

#include "polyfit.h"

int polyfit( int pointCount, double *xValues, double *yValues, int coefficientCount, double *coefficientResults );

Description

The polyfit() function regresses a line or a higher-order polynomial to a set of points, using the Method of Least Squares. Its design goals were simplicity and ease of porting, as opposed to run-time efficiency with large data.

Arguments

pointCount — input. The total number of points in the set. For the algorithm to work, this must be greater than or equal to coefficientCount.

xValues — input. Points to an array of the X coordinates of the points. There should be pointCount X coordinates.

yValues — input. Points to an array of the Y coordinates of the points. There should be pointCount Y coordinates.

coefficientCount — input. The number of coefficients to be computed, equal to the degree of the polynomial plus 1. For instance, if fitting a line — a first degree polynomial — then coefficientCount would be 2, and for fitting a parabola — a second degree polynomial — coefficientCount would be 3.

results — input. Points to where the computed coefficients will be stored. There should be space for coefficientCount coefficients. These coefficients are ordered from the highest-order monomial term to the lowest, such that for instance the polynomial:

 5x²   3x - 7

is represented as:

 [ 5, 3, -7 ] 

Return Value

In addition to setting the coefficient results, the polyfit() function returns 0 on success.

FILES

./src/polyfit.c — defines the polyfit() function.

./inc/polyfit.h — declares the polyfit() function's prototype.

MISC

To support unit testing on Linux with gcc, the repo has these additional files:

./src/test.c — exercises polyfit() and provides examples of usage.

./Makefile — allows the make command to build an executable, ./bin/polytest, that tests polyfit().

About

Contains a simple "C" function -- polyfit() -- that fits a line or higher-order polynomial to a set of points, using Method of Least Squares regression. Design goals include simplicity and ease of porting.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published