Scratch與數(shù)學的整合9
????????????????????????第9課????????一元二次方程
一、探索新知
????? ? 1、只含有一個未知數(shù),且未知數(shù)最高次數(shù)為2的方程叫一元二次方程。形式為ax2+bx+c(a≠0),a是二次項系數(shù),b是一次項系數(shù),c是常數(shù)項,該方程必須是整式方程。有兩個實根,方程的實根個數(shù)取決于方程的次數(shù)(條件是方程的某一項不能有2個未知數(shù),換成二元的也不行)。
????????2、像一元一次方程一樣,Scratch也能解一元二次方程嗎?請大家思考一下。以前我說過方程化簡后等號兩邊都有x時是解不了方程的。而實際上卻有配方法、公式法、因式分解法、直接開平方法。∴我們不妨先了解一下這些方法的步驟。
(1)配方法:
整理:化為ax2+bx+c=0的形式(且a=1)
配方:方程兩邊同時加上c,并化為完全平方式
降次:等號左右兩邊開方
求實根:分解成兩個方程,解出兩個方程的實根(若等號右邊位非負數(shù))
(2)公式法:
整理:化為ax2+bx+c=0的形式
套入共識:將a,b,c代入△
求公式的值:化簡△
求實根(把△中的“±”拆成“+”“-”進一步整理求實根)(若公式的值是非負數(shù))
(3)因式分解法:
整理:化為ax2+bx+c=0的形式
降次:因式分解成(a±x1)(b±x2)=0的形式((其中有一項可以是單項式))
求實根(兩個括號內(nèi)的式子分別與“=0”合在一起求出x1,x2)(必須等號左邊整理后能因式分解,且等號右邊為0)
(4)直接開平方法:
整理:因式分解成(a±bx)2=0的形式(這里的0并非必須是0)
降次:等號兩邊同時開方
求實根:分解成兩個方程,解出兩個方程的實根(等號右邊必須是非負數(shù))
????????首先來看(1)。開始你整理只是把等號左邊的c變?yōu)?c(原方程c<0同理)加減號發(fā)生了改變,用減法積木就可以了,但是如果a≠0怎么辦?a≠0時,整理完方程后b,c等號右邊的數(shù)都同除以a,有人可能會說:“再拿4塊積木,分別是b÷a,c÷a,等號右邊的數(shù)除以a,a÷a?!笨蒩如果是分數(shù)呢?那就是“分數(shù)乘法”的問題了,首先分數(shù)就包含分子、分母,而且分子、分母都要參與運算,這時光a就要補上一些其他的積木了??赡阍倩剡^頭去看,前面只對a,b,c做了詢問并回答吧?開始也改變加減號了吧?無論c等于幾,那都是一個過程,前面的每一步程序都直接影響到后面的程序,而程序又是“一去不復返”的,人家管你怎么樣,一步代碼與過程有矛盾最后編程都得報錯?!啵?)肯定是用不了的。
????????再看(2)根據(jù)前面的了解我們可以得知,就是知道了a,b,c后帶入求根公式△=b2-4ac,再代入(-b±根號△)/2a直接計算就行了。但是與(1)相同的是,整理過程中c還是涉及到變號問題,當方程等號右邊≠c時c還會改變絕對值。不過不管怎樣,整理后等號右邊都是0,直接跳過去這一小部分過程,直接確定整理后的a,b,c的值行不行。由于一元二次方程的形式是ax2+bx+c=0(a≠0,而且是整式方程),這樣就首先確保了a,b,c可以直接確定。而Scratch中運算模塊里有四則運算、開平方功能,這樣我們就能繼續(xù)解了。
????????接著再看(3)。我們發(fā)現(xiàn)到,第一步整理就需要因式分解,不是所有的代數(shù)式都能因式分解,只有原方程所有項全整理完后,等號左邊能因式分解且同時等號右邊為0時才能用這個方法的,否則你就解不出來。也就是說因式分解法它不是萬能的,況且Scratch具有局限性,功能沒有人知道的廣泛,連你人都不可能解出來,程序怎么可能實現(xiàn)???∴(3)也肯定用不了。
????????最后看(4)?,F(xiàn)在你會發(fā)現(xiàn)到,直接開平方法與其他方法不同:它是整理成(a±bx)2=0的形式。(a±b)2的結果是什么啊?a2±2ab+c2。樣子好像和那個配方法差不多,可配方法也實現(xiàn)不了Scratch編程啊?不過不用擔心,我們這里實際的本質是“直接開方”,所謂“直接”就是我一次性把他解決了,那怎樣才能一次性解決?只有(a±bx)2=0。∴(4)也是沒有問題的。
二、想想議議
????????現(xiàn)在我們知道了一元二次方程的解法,以及那些方法能用Scratch實現(xiàn),哪些不能用Scratch實現(xiàn)。那如果不解一元二次方程,我還能知道兩個未知數(shù)到底等于多少嗎?同時又能得出什么結論?這就是一元二次方程根與系數(shù)的關系的問題了。
????????通過前面的內(nèi)容,我們可以推出x1+x2=(-b+根號b2-4ac)/2a+(-b-根號b2-4ac)/2a=-(2b/2a)=-b/a,即一元二次方程兩根之和=-b/a,同理x1·x2=[(-b+根號b2-4ac)/2a]·[(-b-根號)/2a],整理并化簡得x1·x2=c/a,即一元二次方程兩根之積為c/a。
三、流程圖
????????1、但是光知道公式法、直接開平方法解一元二次方程能用Scratch實現(xiàn)還不夠,你總得有個理由吧?在編程中,過程就是最好的證明。

????????2、我們先來看一下公式法:如圖1所示:∵公式法就是通過算求根公式求解,△=b2-4ac吧?里面包含字符a,b,c,就說明第一步一定是要加入a,b,c。我們又知道,一元二次方程二次項系數(shù)不能為0,否則就沒有意義,也就沒有必要再往下執(zhí)行了,∴第二步判斷a≠0?如果a≠0則第三步代入△=b2-4ac。但要注意的是:這并不是最終答案,最終答案是要讓程序解出x1,x2。小心這里有個陷阱:我有必要繼續(xù)代入(-b±根號△)/2a繼續(xù)執(zhí)行程序嗎?其實根本不需要,∵它是個判別式:當△<0時,方程無實根,我可以提前結束這個腳本;當△=0時,兩方程有一個相等的實根,代入(-b±根號△)/2a中得-b/2a;當△>0時,方程有兩個不等的實根,這是我就要把“±”拆開求x1,x2具體的實根了。最后程序結束。

????????3、我們再來看直接開平方法。如圖2所示:∵直接開平方法的原方程形式是(a±bx)2=0,而且它還是第一步就等號兩邊開方降次,∴第一步輸入a,b,等號右邊的數(shù),與公式法一樣,要對a≠0?進行判斷,但直接開平方法還要對等號右邊的數(shù)≥0?進行判斷,同時為真才能繼續(xù)執(zhí)行程序,∵負數(shù)沒有平方根。因此兩判斷同時為真時執(zhí)行第三步,添加變量a,b,c從而讓程序解出方程的實根。第四步,原方程降次到(a±bx)2=±根號c后,“拆成”a+bx1=根號c和a±bx=-根號c分別變形為x1=(根號c-a)/b和x2=(-根號c-a)/2a,這樣就可以執(zhí)行第五步,求出x1,x2各自的結果,也就是程序最后的方程實根。此時程序結束。
四、變量信息
????????a、b、c、x1、x2、d、原方程的實根、原方程降次后的值、△、x1+x2、x1x2、根與系數(shù)的關系1、根與系數(shù)的關系2
五、代碼示例
????????1、我們先看看如何讓Scratch實現(xiàn)用公式法解一元二次方程:
? ? ? ? (0)——(2):首先需要詢問并回答原方程的二次項系數(shù)。
當綠旗被點擊????(0)
?詢問請輸入a????(1)
將a設為回答????(2)
????? ? (3)——(6):當a=0時,∵方程無意義會導致程序報錯,∴要對a的值進行判斷,不報錯程序才會一直進行。
如果a=0那么????(3)
說:“二次項系數(shù)不為0,原方程無意義。”?2秒????(4)
等待1秒????(5)
停止這個腳本????(6)
????? ? (7)——(12):程序怎么繼續(xù)運行?當然是把原方程其余要知道的一次項系數(shù)、常數(shù)項也要讓程序知道啦? ,即目標為實現(xiàn)變量b,c。
詢問請輸入b????(7)
將b設為回答????(8)
詢問請輸入c????(9)
將c設為回答????(10)
等待1秒????(11)
將△設為b2-4ac????(12)
????? ?(13)——(26):?接下來利用判別式對方程的實根進行判斷了。當△<0時讓程序知道方程無實根;當△=0時把x1,x2等量代換成x;當△>0時把方程兩實根拆成x1=(-b-根號4ac)/2a,x2=(-b+根號4ac)/2a。
如果△=0那么????(13)
說:“△=0,原方程有兩個相等的實根”2秒????(14)
等待1秒????(15)
將原方程的實根設為-b/2a????(16)
說:“連接原方程的實根為和原方程的實根”????(17)
否則????(18)
如果△>0????(19)
說:“△>0,原方程有兩個不相等的實根”2秒????(20)
等待1秒????(21)
將x1設為(-b2-4ac)/2a????(22)
將x2設為(-b2+4ac)/2a????(23)
說:“連接連接原方程的實根為x1=x1和x2=和x2”????(24)
否則????(25)
說:“△<0,原方程無實根”????(26)
????????2、接下來再看看如何讓Scratch實現(xiàn)用直接開平方法接一元二次方程。
當綠旗被點擊
????????和公式法一樣,直接開平方法也是要讓程序知道要執(zhí)行變量a,b,由于等號右邊的數(shù)等于0不是絕對的,∴我們用d來代替它。
詢問請輸入a
將a設為回答
詢問請輸入b
將b設為回答
詢問請輸入d
將d設為回答
????????接下來這部分,與公式法相同于直接開平方法也要判斷a是否大于0,同理開了負數(shù)平方根也會報錯,∴還要判斷d是否為負數(shù)。
如果a=0不成立與d<0不成立那么
將x1設為(d2-a2)÷b
將x2設為(d2+a2)÷b
說:“連接連接原方程的實根為x1=和x1,x2=和x2”
????????3、為了方便,在實現(xiàn)求根與系數(shù)的關系的時候,先從上面兩種程序中選一個來實現(xiàn),這樣就不用太多思考了,前提是不能有任何變量顯示NaN(意為數(shù)據(jù)無效)或空著。

當綠旗被點擊
如果x1=0不成立與x2=0不成立那么
將根與系數(shù)的關系1設為-b/a
將根與系數(shù)的關系2設為c/a
說:“連接連接連接根與系數(shù)的關系是x1+x2=和根與系數(shù)的關系1和,和x1x2=根與系數(shù)的關系2”
六、知識擴展
????????除了實數(shù)之外,還有比實數(shù)更大的數(shù)系:復數(shù)系。實數(shù)與虛數(shù)統(tǒng)稱為負數(shù),虛數(shù)可以理解為不存在的數(shù),其中i是虛數(shù)單位,a是實部,b是虛部,形式為a+bi?!遙i表示b與i相乘,且符合實數(shù)中的單項式乘單項式的運算法則,又i2=-1可進一步推出i=±i,∴如果我們把一元二次方程的實數(shù)根看成b的一個整體,那么有一元二次方程的復數(shù)解:[(-b±根號4ac)/2a]i。我們發(fā)現(xiàn)到他恰好比一元二次方程的實數(shù)根多了一個i,∴我們要用Scratch實現(xiàn)求一元二次方程的復數(shù)解的話,只要在(-b±根號4ac)/2a的基礎上再拿出來一個乘法積木,里面填上“-1”就可以了(前提是要有“復數(shù)解”變量、前面有“將“復數(shù)解設為-1”的代碼),另外還要注意-1應該在最里面。