function roundToDecimal(num, decimals) {
const factor = Math.pow(10, decimals);
return Math.round(num * factor) / factor;
}
function T(td){
console.log(td);
var sps = [1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5];
var r_sp = [];
for(var k = 0; k < sps.length; k++){
var sp = sps[k];
var t_c1 = [], t_c2 = [];
var s_c1 =0, s_c2 = 0;
var c1,c2;
for(var i = 0; i < td.length; i++){
if(td[i][0] < sp){
t_c1.push(td[i][1]);
s_c1 += td[i][1];
}else{
t_c2.push(td[i][1]);
s_c2 += td[i][1];
}
}
c1 = roundToDecimal(s_c1 / t_c1.length,2);
c2 = roundToDecimal(s_c2 / t_c2.length,2);
var ms = 0;
for(var i = 0; i < t_c1.length; i++){
ms += Math.pow(t_c1[i] - c1, 2);
}
for(var i = 0; i < t_c2.length; i++){
ms += Math.pow(t_c2[i] - c2, 2);
}
//console.log('sp = ', sp, ',c1:', c1, ',c2:', c2, ',ms = ', ms);
ms = roundToDecimal(ms, 2);
r_sp.push([ms,sp,c1,c2]);
}
var min_sp;
for(var k=0;k<r_sp.length;k++){
if(!min_sp){
min_sp = r_sp[k];
continue;
}
if(min_sp[0] > r_sp[k][0]){
min_sp = r_sp[k];
}
}
console.log(min_sp);
var rs = [];
for(var i = 0; i < td.length; i++){
if(td[i][0] < min_sp[1]){
rs[i] = roundToDecimal(td[i][1] - min_sp[2],2);
}else{
rs[i] = roundToDecimal(td[i][1] - min_sp[3],2);
}
}
console.log(rs);
var rl = 0;
for(var i =0;i<rs.length;i++){
rl += Math.pow(rs[i],2);
}
rl = roundToDecimal(rl,2);
console.log(rl);
return rs;
}
var td = [[1,5.56],[2,5.7],[3,5.91],[4,6.4],[5,6.8],[6,7.05],[7,8.9],[8,8.7],[9,9],[10,9.05]];
var rs = T(td);
console.log('------------------------------------------------------------------------');
var td2 = [];
for(var i=0;i<rs.length;i++){
td2.push([(i+1), rs[i]]);
}
var rs2 = T(td2);
console.log('------------------------------------------------------------------------');
var td3 = [];
for(var i=0;i<rs2.length;i++){
td3.push([(i+1), rs2[i]]);
}
var rs3 = T(td3);
console.log('------------------------------------------------------------------------');
var td4 = [];
for(var i=0;i<rs3.length;i++){
td4.push([(i+1), rs3[i]]);
}
var rs4 = T(td4);
console.log('------------------------------------------------------------------------');
var td5 = [];
for(var i=0;i<rs4.length;i++){
td5.push([(i+1), rs4[i]]);
}
var rs5 = T(td5);
console.log('------------------------------------------------------------------------');
var td6 = [];
for(var i=0;i<rs5.length;i++){
td6.push([(i+1), rs5[i]]);
}
var rs6 = T(td6);
console