randFromArray([-1, 1]) * randRange(10, 80) / 20 randRange(-5, 5) function(x) { return SLOPE * x + INTERCEPT } ((SLOPE < 0 ? -1 : 1) * 11 - INTERCEPT) / SLOPE ((SLOPE < 0 ? 1 : -1) * 11 - INTERCEPT) / SLOPE function(e,a,r){return a>e?a:e>r?r:e} random() + 0.5 (BOTTOM < -11) ? -11 : BOTTOM (TOP > 11) ? 11 : TOP sortNumbers(function(){var e=(RIGHT-LEFT)/20;return _.map(shuffle(_.range(-8,9),9),function(a){return a*e})}()) function(e){for(var a=0;a<e.length;++a)for(var r=a+1;r<e.length;++r)_.isEqual(e[a],e[r])&&(e.splice(r,1),--r);return e} atan2(SLOPE, 1) + PI / 2 [] UNIQARRAYS(_.map(XS,function(e,a){var r,n=_.reduce(TOTALOFFSET,function(e,a){return e+a},0),t=function(e,a){return random()*(a-e)+e};return r=2>a||a>6?t(OFFSET/2,OFFSET):0>n?t(-OFFSET-n,OFFSET):t(-OFFSET,OFFSET-n),TOTALOFFSET.push(r),[BOUND(round(e+cos(ANG)*r),-9,9),BOUND(round(FUNC(e)+sin(ANG)*r),-9,9)]})) function(){var e=POINTS.length,a=_.reduce(POINTS,function(e,a){return e+a[0]},0)/e,r=pow(a,2),n=_.reduce(POINTS,function(e,a){return e+a[1]},0)/e,t=pow(n,2),s=_.reduce(POINTS,function(e,a){return e+pow(a[0],2)},0),i=_.reduce(POINTS,function(e,a){return e+pow(a[1],2)},0),o=_.reduce(POINTS,function(e,a){return e+a[0]*a[1]},0),l=o-e*a*n,c=(n*s-a*o)/(s-e*r),u=l/(s-e*r),p=e/(e-1),h=p*pow(s/e-r,.5),g=p*pow(i/e-t,.5),d=(_.map(POINTS,function(e){return e[0]}),l/((e-1)*h*g));return[u,c,d]}() {} function(e,a){var r=_.first(POINTS),n=_.last(POINTS),t=1/REALSLOPE+REALSLOPE;lowx=(1/REALSLOPE*r[0]+r[1]-REALINTERCEPT)/t,highx=(1/REALSLOPE*n[0]+n[1]-REALINTERCEPT)/t;var s=function(e){return-1/REALSLOPE*(e-r[0])+r[1]},i=function(e){return-1/REALSLOPE*(e-n[0])+n[1]};lowIntersectx=(1/REALSLOPE*r[0]+r[1]-a)/(e+1/REALSLOPE),highIntersectx=(1/REALSLOPE*n[0]+n[1]-a)/(e+1/REALSLOPE);var o=sqrt(pow(s(lowx)-s(lowIntersectx),2)+pow(lowx-lowIntersectx,2)),l=sqrt(pow(i(highx)-i(highIntersectx),2)+pow(highx-highIntersectx,2)),c=_.map(POINTS,function(r){var n=r[0],t=r[1],s=e*n+a;return t>=s?1:-1}),u=sortNumbers(c),p=u.slice(0).reverse();return!_.isEqual(c,u)&&!_.isEqual(c,p)&&_.include(c,1)&&_.include(c,-1)&&1.3*OFFSET>o&&1.3*OFFSET>l}

Ajusta una recta a los datos, o señala que ninguna recta se acomoda bien a los datos.

graphInit({range:11,scale:20,axisArrows:"<->",tickStep:1,labelStep:1,gridOpacity:.05,axisOpacity:.2,tickOpacity:.4,labelOpacity:.5}),addMouseLayer(),_.each(POINTS,function(e){circle(e,.2,{fill:"black"})}),graph.pointA=addMovablePoint({coord:[-5,5],snapX:.5,snapY:.5,normalStyle:{stroke:KhanUtil.BLUE,fill:KhanUtil.BLUE}}),graph.pointB=addMovablePoint({coord:[5,5],snapX:.5,snapY:.5,normalStyle:{stroke:KhanUtil.BLUE,fill:KhanUtil.BLUE}}),graph.bestFitLine=addMovableLineSegment({pointA:graph.pointA,pointZ:graph.pointB,fixed:!0,extendLine:!0}),graph.pointA.onMove=function(e,a){return e!=graph.pointB.coord[0]||a!=graph.pointB.coord[1]},graph.pointB.onMove=function(e,a){return e!=graph.pointA.coord[0]||a!=graph.pointA.coord[1]},graph.pointA.toFront(),graph.pointB.toFront();var shown=!1;graph.showLine=function(){graph.pointA.visibleShape.show(),graph.pointA.mouseTarget.show(),graph.pointB.visibleShape.show(),graph.pointB.mouseTarget.show(),graph.bestFitLine.show()},graph.hideLine=function(){graph.pointA.visibleShape.hide(),graph.pointA.mouseTarget.hide(),graph.pointB.visibleShape.hide(),graph.pointB.mouseTarget.hide(),graph.bestFitLine.hide()},graph.showSolution=function(){if(!shown){shown=!0;var e=function(e){return REALSLOPE*e+REALINTERCEPT};$("html, body").animate({scrollTop:$(".question").offset().top},{duration:500,easing:"swing",complete:function(){line([-11,e(-11)],[11,e(11)],{stroke:ORANGE,opacity:0}).animate({opacity:1},750)}})}},GRAPH=graph
Mueve la recta en la gráfica para ajustarla a los datos si es que es apropiada.
[GRAPH.pointA.coord,GRAPH.pointB.coord,$("input[name='linear']:checked").attr("id")]
if(_.isEqual(guess,[[-5,5],[5,5],"exists"]))return"";if("exists"!==guess[2])return!1;var e=(guess[1][1]-guess[0][1])/(guess[1][0]-guess[0][0]),a=e*-guess[0][0]+guess[0][1];return VALIDATOR(e,a)
GRAPH.pointA.setCoord(guess[0]),GRAPH.pointB.setCoord(guess[1]),GRAPH.bestFitLine.transform(!0)
$("#"+guess[2]).attr("checked","checked")

Una recta de mejor ajuste es una recta que se aproxima a los puntos en la gráfica.

Hay tres criterios principales para aplicar cuando se quiere encontrar una recta de mejor ajuste.

Primero, asegúrate de que tu línea pasa a través de los puntos y de que no se encuentra completamente por encima o por debajo de los puntos.

init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-5,-4],[5,-3],{stroke:BLUE}),label([0,4],$._("Mal"),"center",!1).css("color","red").css("font-size","20px")
init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-5,-2.5],[5,-1.5],{stroke:BLUE}),label([0,4],$._("Bien"),"center",!1).css("color","orange").css("font-size","20px")

Luego, asegúrate de que tu línea pasa por encima de unos puntos y por debajo de otros pero de forma alternada, y no que simplemente pase por encima de algunos puntos y por debajo del resto.

init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-5,-2.5],[5,-1.5],{stroke:BLUE}),label([0,4],$._("Bien"),"center",!1).css("color","orange").css("font-size","20px")
init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-5,-3.5],[3,5],{stroke:BLUE}),label([0,4],$._("Mejor"),"center",!1).css("color","#8EEB00").css("font-size","20px")

Finalmente, asegúrate de que la recta pase entre todos los puntos, de manera que esté cerca de todos los puntos.

init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-5,-3.5],[3,5],{stroke:BLUE}),label([0,4],$._("Mejor"),"center",!1).css("color","#9FEE00").css("font-size","20px")
init({range:[[-5,5],[-5,5]],scale:[20,20]}),circle([-2,-3],.2,{fill:"black"}),circle([0,-1],.2,{fill:"black"}),circle([-1,1],.2,{fill:"black"}),circle([1,1],.2,{fill:"black"}),circle([0,2],.2,{fill:"black"}),line([-4,-5],[3,5],{stroke:BLUE}),label([0,4],$._("Bien"),"center",!1).css("color","#00C322").css("font-size","20px")

Hay varias rectas que satisfacen esto. Haz click aquí para mostrar una de ellas.

0 0 11 {}
Mueve la recta en la gráfica para ajustarla a los datos si es que es apropiada.
[GRAPH.pointA.coord,GRAPH.pointB.coord,$("input[name='nonlinear']:checked").attr("id")]
return _.isEqual(guess,[[-5,5],[5,5],"exists"])?"":"notexists"===guess[2]
GRAPH.pointA.setCoord(guess[0]),GRAPH.pointB.setCoord(guess[1]),GRAPH.bestFitLine.transform(!0)
$("#"+guess[2]).attr("checked","checked")

¿Los datos aparentan tener una relación lineal?

Estos datos son en su mayoría al azar, entonces no hay ninguna línea que se ajuste bien a los datos.

randRange(-3, 3) randRange(-25, 25) / 10 randRange(-30, 30) / 10 function(e,a,r){for(var n=[],t=(e+a)/2,s=randRange(2*abs(r)-8,8-2*abs(r)),i=[];a>e;)i.push(e++);i=shuffle(i);for(var o=randRange(4,5),l=0;l<i.length;l++){var c=(i[l]-t)*r+s+2*random()-1;if(abs(c)<10&&(n.push([i[l],round(c)]),n.length===o))break}return n} GETPOINTS(-10, BREAK - 1, SLOPE1) GETPOINTS(BREAK + 1, 10, SLOPE2) [].concat(POINTS1).concat(POINTS2)
Mueve la recta en la gráfica para ajustarla a los datos si es que es apropiada.
[GRAPH.pointA.coord,GRAPH.pointB.coord,$("input[name='nonlinear']:checked").attr("id")]
return _.isEqual(guess,[[-5,5],[5,5],"exists"])?"":"notexists"===guess[2]
GRAPH.pointA.setCoord(guess[0]),GRAPH.pointB.setCoord(guess[1]),GRAPH.bestFitLine.transform(!0)
$("#"+guess[2]).attr("checked","checked")

¿Los datos aparentan tener una relación lineal?

Estos datos corresponden a dos tendencias lineales que están separadas, de manera que ninguna recta se ajusta bien a los datos.

function(){var e=shuffle([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]),a=randRange(9,12),r=randRange(4,10),n=randRange(-10,10)/10,t=randRange(-8,8);t>2?r*=-1:t>-2&&(r*=randFromArray([-1,1]));for(var s=[],i=0;i<e.length;i++){var o=e[i],l=round(o*o/r+n*o+t+2*random()-1);if(abs(l)<10&&(s.push([o,l]),s.length===a))break}return s} GETPOINTS() [].concat(POINTS1)
Mueve la recta en la gráfica para ajustarla a los datos si es que es apropiada.
[GRAPH.pointA.coord,GRAPH.pointB.coord,$("input[name='nonlinear']:checked").attr("id")]
return _.isEqual(guess,[[-5,5],[5,5],"exists"])?"":"notexists"===guess[2]
GRAPH.pointA.setCoord(guess[0]),GRAPH.pointB.setCoord(guess[1]),GRAPH.bestFitLine.transform(!0)
$("#"+guess[2]).attr("checked","checked")

¿Los datos aparentan tener una relación lineal?

Estos datos no forman una tendencia lineal, de manera que no hay una sola recta que se ajuste bien a los datos.