quadReg property

List<num> quadReg

Calculate quadratic regression of a set of points: Returns a list of form y = ax^2 + bx + c, with quadReg[0] being a, quadReg[1] being b, and quadreg[2] being c.

Implementation

List<num> get quadReg {
  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 Y = Matrix([yy]).transpose();
  var X = Matrix([xcol1, xx, xcol3]).transpose();
  var B = (X.transpose() * X).inverse() * X.transpose() * Y;
  var c = B[0][0];
  var b = B[1][0];
  var a = B[2][0];
  return [a,b,c];
}