quarReg property
Calculate quartic regression of a set of points: Returns a list of form y =
ax^4 + bx^3 + cx^2 + dx + e, with cubicReg[0]
being a, cubicReg[1]
being b,
cubicReg[2]
being c, cubicReg[3]
being d, and cubicReg[4]
being e.
Implementation
List<num> get quarReg {
var yy = <double>[];
var xx = <double>[];
for (var numb in y) {
yy.add(numb.toDouble());
}
for (var numb in x) {
xx.add(numb.toDouble());
}
var xcol1 = List<double>.filled(xx.length, 1.0);
var xcol3 = List<double>.filled(xx.length, 0);
for (var i = 0; i < xx.length; i++) {
xcol3[i] = pow(xx[i], 2).toDouble();
}
var xcol4 = List<double>.filled(xx.length, 0);
for (var i = 0; i <xx.length; i++) {
xcol4[i] = pow(xx[i],3).toDouble();
}
var xcol5 = List<double>.filled(xx.length, 0);
for (var i = 0; i <xx.length; i++) {
xcol5[i] = pow(xx[i],4).toDouble();
}
var Y = Matrix([yy]).transpose();
var X = Matrix([xcol1, xx, xcol3, xcol4, xcol5]).transpose();
var B = (X.transpose() * X).inverse() * X.transpose() * Y;
var e = B[0][0];
var d = B[1][0];
var c = B[2][0];
var b = B[3][0];
var a = B[4][0];
return [a,b,c,d,e];
}