F average(arr) R sum(arr) / Float(arr.len) F poly_regression(x, y) V xm = average(x) V ym = average(y) V x2m = average(x.map(i -> i * i)) V x3m = average(x.map(i -> i ^ 3)) V x4m = average(x.map(i -> i ^ 4)) V xym = average(zip(x, y).map((i, j) -> i * j)) V x2ym = average(zip(x, y).map((i, j) -> i * i * j)) V sxx = x2m - xm * xm V sxy = xym - xm * ym V sxx2 = x3m - xm * x2m V sx2x2 = x4m - x2m * x2m V sx2y = x2ym - x2m * ym V b = (sxy * sx2x2 - sx2y * sxx2) / (sxx * sx2x2 - sxx2 * sxx2) V c = (sx2y * sxx - sxy * sxx2) / (sxx * sx2x2 - sxx2 * sxx2) V a = ym - b * xm - c * x2m F abc(xx) R (@a + @b * xx) + (@c * xx * xx) print("y = #. + #.x + #.x^2\n".format(a, b, c)) print(‘ Input Approximation’) print(‘ x y y1’) L(i) 0 .< x.len print(‘#2 #3 #3.1’.format(x[i], y[i], abc(i))) V x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] V y = [1, 6, 17, 34, 57, 86, 121, 162, 209, 262, 321] poly_regression(x, y)