Да, спасибо! Тут
http://office.microsoft.com/ru-ru/ex...6.aspx?redir=0 конкретно по модели вычислений.
Добавлено через 1 час 27 минут
Тему открыл значит и закрою. Может кому потом будет интересно.
Вот собсно код. Для ленивых Ctrl+C Ctrl+V в новый чистый Timeline

Код AS3:
/*
* Legend
* y = a + b * x;
* where a = y_average - b * x_average;
* also b = SUMM((x - x_average) * (y - y_average)) / SUMM(pow(x - x_average, 2));
*/
// these two arrays only for testing You have to substitute to yours own data
var y_arr :Array = new Array(6, 7, 9, 15, 21);
var x_arr :Array = new Array(20, 28, 31, 38, 40);
function forecast(x_point :Number, y_arr :Array, x_arr :Array) :Number
{
if(x_arr.length != y_arr.length) throw new Error("The x_arr and y_arr arrays have to have the same lenght");
var a :Number;
var b :Number;
// found x_average and y_average
var x_avr :Number = 0;
var y_avr :Number = 0;
for(var i :int = 0; i < x_arr.length; i++)
{
x_avr += x_arr[i];
y_avr += y_arr[i];
}
x_avr /= x_arr.length;
y_avr /= y_arr.length;
// found b
var summ_numerator :Number = 0;
var summ_denominator :Number = 0;
for(var n :Number = 0; n < x_arr.length; n++)
{
summ_numerator += (x_arr[n] - x_avr) * (y_arr[n] - y_avr);
summ_denominator += Math.pow(x_arr[n] - x_avr, 2);
}
b = summ_numerator / summ_denominator;
// found a
a = y_avr - b * x_avr;
return a + b * x_point;
}
trace("Here is the result :) -> " + forecast(30, y_arr, x_arr));