blob: cbc8966e636fe6b4adadd2c0abc4f0a5aa0b1863 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <curveFitting.h>
void setup(){
Serial.begin(9600);
while(!Serial);
Serial.println("Starting");
char buf[100];
int xpower = 3;
int order = 3;
snprintf(buf, 100, "Fitting curve of order %i to data of power %i...\n", order, xpower);
Serial.print(buf);
double x[26];
double t[26];
for (int i = 0; i < sizeof(x)/sizeof(double); i++){
t[i] = i;
x[i] = pow(i, xpower);
}
double coeffs[order+1];
int ret = fitCurve(order, sizeof(x)/sizeof(double), t, x, sizeof(coeffs)/sizeof(double), coeffs);
if (ret == 0){ //Returned value is 0 if no error
uint8_t c = 'a';
Serial.println("Coefficients are");
for (int i = 0; i < sizeof(coeffs)/sizeof(double); i++){
snprintf(buf, 100, "%c=",c++);
Serial.print(buf);
Serial.print(coeffs[i]);
Serial.print('\t');
}
}
}
void loop(){
}
|