{{ stepNode.name }}
| {{ 'ml-lesson-number-slides' | message : article.intro.bblockCount}} |
| {{ 'ml-lesson-number-exercises' | message : article.intro.exerciseCount}} |
| {{ 'ml-lesson-time-estimation' | message }} |
Henrik (Diskussion | bidrag) | Karin.hedin@osteraker.se (Diskussion | bidrag) | ||
(11 mellanliggande versioner av 3 användare visas inte) | |||
Rad 2: | Rad 2: | ||
Antal lösningar till en andragradsekvation</translate></hbox> | Antal lösningar till en andragradsekvation</translate></hbox> | ||
<translate><!--T:2--> | <translate><!--T:2--> | ||
− | Lösningarna till en [[Andragradsekvation *Wordlist*|andragradsekvation]] på formen $ax^2+bx+c=0$ kan tolkas [[Grafisk lösning - ekvation *Method*|grafiskt]] som [[Nollställe *Wordlist*| | + | Lösningarna till en [[Andragradsekvation *Wordlist*|andragradsekvation]] på formen $ax^2+bx+c=0$ kan tolkas [[Grafisk lösning - ekvation *Method*|grafiskt]] som [[Nollställe *Wordlist*|nollställen]] till andragradsfunktionen</translate> |
\[ | \[ | ||
− | y=ax^2+bx+c | + | y=ax^2+bx+c. |
\] | \] | ||
<translate><!--T:3--> | <translate><!--T:3--> | ||
− | + | Om funktionen har '''två''' nollställen har ekvationen $ax^2+bx+c=0$ '''två''' lösningar, och har funktionen '''ett''' nollställe har ekvationen '''en''' lösning (även kallad [[Dubbelrot *Wordlist*|dubbelrot]]). Saknar funktionen nollställen har ekvationen [[Icke-reell lösning *Wordlist*|inga reella lösningar]].</translate> | |
<jsxgpre id="Antal_losningar_till_en_andragradsekvation_anim_1"> | <jsxgpre id="Antal_losningar_till_en_andragradsekvation_anim_1"> | ||
Rad 19: | Rad 19: | ||
var p4 = b.point(p2.X() - xdist,0); | var p4 = b.point(p2.X() - xdist,0); | ||
//var p3 = b.point(p1.X(),0,{fixed:false}); | //var p3 = b.point(p1.X(),0,{fixed:false}); | ||
− | var graph = b.board.create('functiongraph', [function(x){ return (p1.Y() - p2.Y())*JXG.Math.pow((x-p2.X())/(p1.X() - p2.X()), 2) + p2.Y();},-3, 22],{strokeWidth:2}); | + | |
+ | function func(x){ | ||
+ | return (p1.Y() - p2.Y())*JXG.Math.pow((x-p2.X())/(p1.X() - p2.X()), 2) + p2.Y(); | ||
+ | } | ||
+ | |||
+ | var graph = b.board.create('functiongraph', [function(x){ return (p1.Y() - p2.Y())*JXG.Math.pow((x-p2.X())/(p1.X() - p2.X()), 2) + p2.Y();},function() { | ||
+ | if(Math.abs(func(p2.X()-3)) > 12){ | ||
+ | return p2.X() - 3; | ||
+ | } | ||
+ | if(Math.abs(func(p2.X()-6)) > 12){ | ||
+ | return p2.X() - 6; | ||
+ | } | ||
+ | return -3; | ||
+ | }, function() { | ||
+ | if(Math.abs(func(p2.X()+3)) > 12){ | ||
+ | return p2.X() + 3; | ||
+ | } | ||
+ | if(Math.abs(func(p2.X()+6)) > 12){ | ||
+ | return p2.X() + 6; | ||
+ | } | ||
+ | return 22; | ||
+ | }],{strokeWidth:2,doAdvancedPlot:false,numberPointsLow:100,numberPointsHigh:100}); | ||
//graph.updateCurve(); | //graph.updateCurve(); | ||
− | var flyttaMig = b.textA(-1.5,0.75,' | + | var flyttaMig = b.textA(-1.5,0.75,'Dra mig!',{anchor:p1}); |
− | Dra mig! | + | var flyttaMig2 = b.textA(0,-1,'Dra mig!',{anchor:p2}); |
− | var flyttaMig2 = b.textA(0,-1,' | ||
− | Dra mig! | ||
− | var calc = b.textA(9,10,' | + | var calc = b.textA(9,10,'Två nollställen',{flag:true, fontsize:1.1}); |
− | Två | ||
$(b.getId(calc)).css({ | $(b.getId(calc)).css({ | ||
Rad 35: | Rad 53: | ||
}); | }); | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Två nollställen'); |
− | Två | ||
//Begränsningar för var punkterna får vara. | //Begränsningar för var punkterna får vara. | ||
Rad 79: | Rad 96: | ||
if (Math.abs(p2.Y()) < 0.25) { | if (Math.abs(p2.Y()) < 0.25) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Ett nollställe'); |
− | |||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
p2.moveTo([p2.X(), 0]); | p2.moveTo([p2.X(), 0]); | ||
Rad 95: | Rad 111: | ||
p2.setAttribute({fillcolor:mlg.blue}); | p2.setAttribute({fillcolor:mlg.blue}); | ||
if (p1.Y() > p2.Y()) { | if (p1.Y() > p2.Y()) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Två nollställen'); |
− | Två | ||
xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | ||
p3.moveTo([p2.X() + xdist, 0]); | p3.moveTo([p2.X() + xdist, 0]); | ||
Rad 103: | Rad 118: | ||
} | } | ||
else { | else { | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Inga nollställen'); |
− | Inga | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
} | } | ||
Rad 111: | Rad 125: | ||
p2.setAttribute({fillcolor:mlg.blue}); | p2.setAttribute({fillcolor:mlg.blue}); | ||
if (p1.Y() < p2.Y()) { | if (p1.Y() < p2.Y()) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Två nollställen'); |
− | Två | ||
xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | ||
p3.moveTo([p2.X() + xdist, 0]); | p3.moveTo([p2.X() + xdist, 0]); | ||
Rad 119: | Rad 132: | ||
} | } | ||
else { | else { | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Inga nollställen'); |
− | Inga | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
} | } | ||
Rad 126: | Rad 138: | ||
else { | else { | ||
p2.setAttribute({fillcolor:mlg.blue}); | p2.setAttribute({fillcolor:mlg.blue}); | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Inga nollställen'); |
− | Inga | ||
} | } | ||
}); | }); | ||
Rad 174: | Rad 185: | ||
if (Math.round(p2.Y()*5)/5 == 0) { | if (Math.round(p2.Y()*5)/5 == 0) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Ett nollställe'); |
− | |||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
} | } | ||
else if (p2.Y() < 0) { | else if (p2.Y() < 0) { | ||
if (p1.Y() > p2.Y()) { | if (p1.Y() > p2.Y()) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Två nollställen'); |
− | Två | ||
xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | ||
p3.moveTo([p2.X() + xdist, 0]); | p3.moveTo([p2.X() + xdist, 0]); | ||
Rad 188: | Rad 197: | ||
} | } | ||
else { | else { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Inga nollställen'); |
− | Inga | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
} | } | ||
Rad 195: | Rad 203: | ||
else if (p2.Y() > 0) { | else if (p2.Y() > 0) { | ||
if (p1.Y() < p2.Y()) { | if (p1.Y() < p2.Y()) { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Två nollställen'); |
− | Två | ||
xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | xdist = Math.sqrt(-p2.Y() * Math.pow(p1.X() - p2.X(), 2) / (p1.Y() - p2.Y())); | ||
p3.moveTo([p2.X() + xdist, 0]); | p3.moveTo([p2.X() + xdist, 0]); | ||
Rad 203: | Rad 210: | ||
} | } | ||
else { | else { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Inga nollställen'); |
− | Inga | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
} | } | ||
} | } | ||
else { | else { | ||
− | b.changeText(calc, ' | + | b.changeText(calc,'Inga nollställen'); |
− | Inga | ||
} | } | ||
}); | }); | ||
Rad 248: | Rad 253: | ||
p4.moveTo([p2.X() - xdist, 0]); | p4.moveTo([p2.X() - xdist, 0]); | ||
b.show([p3,p4]); | b.show([p3,p4]); | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Två nollställen'); |
− | Två | ||
}); | }); | ||
Rad 267: | Rad 271: | ||
p2.moveTo([randX2,0]); | p2.moveTo([randX2,0]); | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Ett nollställe'); |
− | |||
}); | }); | ||
Rad 288: | Rad 291: | ||
p2.moveTo([randX2,randY2]); | p2.moveTo([randX2,randY2]); | ||
b.hide([p3,p4]); | b.hide([p3,p4]); | ||
− | b.changeText(calc, ' | + | b.changeText(calc, 'Inga nollställen'); |
− | Inga | ||
}); | }); | ||
</jsxgpre> | </jsxgpre> | ||
Rad 295: | Rad 297: | ||
<div class='jsx-btn-container'> | <div class='jsx-btn-container'> | ||
<jsxbtn onclick='mlg.cf("antallosningar_1.tvaLosningar")'><translate><!--T:8--> | <jsxbtn onclick='mlg.cf("antallosningar_1.tvaLosningar")'><translate><!--T:8--> | ||
− | Två | + | Två nollställen</translate></jsxbtn> |
<jsxbtn onclick='mlg.cf("antallosningar_1.enLosning")'><translate><!--T:9--> | <jsxbtn onclick='mlg.cf("antallosningar_1.enLosning")'><translate><!--T:9--> | ||
− | + | Ett nollställe</translate></jsxbtn> | |
<jsxbtn onclick='mlg.cf("antallosningar_1.ingenLosning")'><translate><!--T:10--> | <jsxbtn onclick='mlg.cf("antallosningar_1.ingenLosning")'><translate><!--T:10--> | ||
− | Inga | + | Inga nollställen</translate></jsxbtn> |
</div> | </div> | ||
<translate><!--T:11--> | <translate><!--T:11--> | ||
− | Med hjälp av $pq$-formeln kan man avöra antalet lösningar till en andragradsfunktion genom att bestämma tecknet på [[Diskriminant *Wordlist*|diskriminanten]], dvs. det som står under rottecknet i $pq$-formeln. Är diskriminanten positiv har ekvationen '''två''' lösningar. Är den $0$ har ekvationen '''en''' lösning, | + | Med hjälp av [[Pq-formeln *Rules*|$pq$-formeln]] kan man avöra antalet lösningar till en andragradsfunktion genom att bestämma tecknet på [[Diskriminant *Wordlist*|diskriminanten]], dvs. det som står under rottecknet i $pq$-formeln: |
+ | \[ | ||
+ | \left(\dfrac{p}{2}\right)^2-q. | ||
+ | \] | ||
+ | Är diskriminanten positiv har ekvationen '''två''' lösningar. Är den $0$ har ekvationen '''en''' lösning, och är den negativ får man [[Kvadratroten ur ett negativt tal *Why*|kvadratroten ur ett negativt tal]] vilket innebär att det '''saknas''' reella lösningar.</translate> | ||
<PGFTikz> | <PGFTikz> | ||
Rad 355: | Rad 361: | ||
\end{axis} | \end{axis} | ||
\node [font=\tiny,align=center,scale=0.9] at (0.6,-0.3) {<translate><!--T:15--> | \node [font=\tiny,align=center,scale=0.9] at (0.6,-0.3) {<translate><!--T:15--> | ||
− | Diskriminanten\\är | + | Diskriminanten\\är $0$</translate>}; |
\end{scope} | \end{scope} | ||