高一數(shù)學(xué) 1.3.2《算法案例》秦九邵算法 課件(新人教A版必修3)
,歡迎進(jìn)入數(shù)學(xué)課堂,1.3算法案例,第二課時(shí),問(wèn)題提出,1.輾轉(zhuǎn)相除法和更相減損術(shù),是求兩個(gè)正整數(shù)的最大公約數(shù)的優(yōu)秀算法,我們將算法轉(zhuǎn)化為程序后,就可以由計(jì)算機(jī)來(lái)執(zhí)行運(yùn)算,實(shí)現(xiàn)了古代數(shù)學(xué)與現(xiàn)代信息技術(shù)的完美結(jié)合.,2.對(duì)于求n次多項(xiàng)式的值,在我國(guó)古代數(shù)學(xué)中有一個(gè)優(yōu)秀算法,即秦九韶算法,我們將對(duì)這個(gè)算法作些了解和探究.,秦九韶算法,問(wèn)題1設(shè)計(jì)求多項(xiàng)式f(x)=2x5-5x4-4x3+3x2-6x+7當(dāng)x=5時(shí)的值的算法,并寫(xiě)出程序.,x=5f=2x5-5x4-4x3+3x2-6x+7PRINTfEND,程序,點(diǎn)評(píng):上述算法一共做了15次乘法運(yùn)算,5次加法運(yùn)算.優(yōu)點(diǎn)是簡(jiǎn)單,易懂;缺點(diǎn)是不通用,不能解決任意多項(xiàng)多求值問(wèn)題,而且計(jì)算效率不高.,知識(shí)探究(一):秦九韶算法的基本思想,思考2:在上述問(wèn)題中,若先計(jì)算x2的值,然后依次計(jì)算x2x,(x2x)x,(x2x)x)x的值,這樣每次都可以利用上一次計(jì)算的結(jié)果,那么一共做了多少次乘法運(yùn)算和多少次加法運(yùn)算?,9次乘法運(yùn)算,5次加法運(yùn)算.,第二種做法與第一種做法相比,乘法的運(yùn)算次數(shù)減少了,因而能提高運(yùn)算效率.而且對(duì)于計(jì)算機(jī)來(lái)說(shuō),做一次乘法所需的運(yùn)算時(shí)間比做一次加法要長(zhǎng)得多,因此第二種做法能更快地得到結(jié)果.,思考3:能否探索更好的算法,來(lái)解決任意多項(xiàng)式的求值問(wèn)題?,f(x)=2x5-5x4-4x3+3x2-6x+7=(2x4-5x3-4x2+3x-6)x+7=(2x3-5x2-4x+3)x-6)x+7=(2x2-5x-4)x+3)x-6)x+7=(2x-5)x-4)x+3)x-6)x+7,v0=2v1=v0 x-5=25-5=5v2=v1x-4=55-4=21v3=v2x+3=215+3=108v4=v3x-6=1085-6=534v5=v4x+7=5345+7=2677,所以,當(dāng)x=5時(shí),多項(xiàng)式的值是2677.,這種求多項(xiàng)式值的方法就叫秦九韶算法.,5次乘法運(yùn)算,5次加法運(yùn)算.,思考4:利用最后一種算法求多項(xiàng)式f(x)=anxn+an-1xn-1+a1x+a0的值,這個(gè)多項(xiàng)式應(yīng)寫(xiě)成哪種形式?,f(x)=anxn+an-1xn-1+a1x+a0=(anxn-1+an-1xn-2+a2x+a1)x+a0=(anxn-2+an-1xn-3+a2)x+a1)x+a0=(anx+an-1)x+an-2)x+a1)x+a0.,思考4:對(duì)于f(x)=(anx+an-1)x+an-2)x+a1)x+a0,由內(nèi)向外逐層計(jì)算一次多項(xiàng)式的值,其算法步驟如何?,第一步,計(jì)算v1=anx+an-1.,第二步,計(jì)算v2=v1x+an-2.,第三步,計(jì)算v3=v2x+an-3.,第n步,計(jì)算vn=vn-1x+a0.,思考5:上述求多項(xiàng)式f(x)=anxn+an-1xn-1+a1x+a0的值的方法稱為秦九韶算法,利用該算法求f(x0)的值,一共需要多少次乘法運(yùn)算,多少次加法運(yùn)算?,思考6:在秦九韶算法中,記v0=an,那么第k步的算式是什么?,vk=vk-1x+an-k(k=1,2,n),n次乘法運(yùn)算,n次加法運(yùn)算,知識(shí)探究(二):秦九韶算法的程序設(shè)計(jì),思考1:用秦九韶算法求多項(xiàng)式的值,可以用什么邏輯結(jié)構(gòu)來(lái)構(gòu)造算法?其算法步驟如何設(shè)計(jì)?,第一步,輸入多項(xiàng)式的次數(shù)n,最高次項(xiàng)的系數(shù)an和x的值.,第二步,令v=an,i=n-1.,第三步,輸入i次項(xiàng)的系數(shù)ai.,第四步,v=vx+ai,i=i-1.,第五步,判斷i0是否成立.若是,則返回第二步;否則,輸出多項(xiàng)式的值v.,思考2:該算法的程序框圖如何表示?,思考3:該程序框圖對(duì)應(yīng)的程序如何表述?,INPUT“n=”;n,INPUT“an=”;a,INPUT“x=”;x,v=an,i=n-1,WHILEi>=0,INPUT“ai=”;b,v=v*x+b,i=i-1,WEND,PRINTy,END,理論遷移,例1已知一個(gè)5次多項(xiàng)式為用秦九韶算法求f(5)的值.,f(x)=(5x+2)x+3.5)x-2.6)x+1.7)x-0.8.,v1=55+2=27;,v2=275+3.5=138.5;,v3=138.55-2.6=689.9;,v4=689.95+1.7=3451.2;,v5=3451.25-0.8=17255.2.,所以f(5)=17255.2.,變式:例2已知一個(gè)5次多項(xiàng)式為用秦九韶算法求當(dāng)x=5時(shí),V1,V3的值及求f(5)的值做多少次乘法運(yùn)算.,解:f(x)=(5x+0)x+3.5)x+0)x+1.7)x-0.8.,v1=55+0=25;,v2=255+3.5=128.5;,v3=128.55+0=642.5;,v4=642.55+1.7=3214.2;,v5=3214.25-0.8=16070.8.,所以v1=25,v3=642.5,f(5)=16070.8.,例3閱讀下列程序,說(shuō)明它解決的實(shí)際問(wèn)題是什么?,INPUT“x=”;an=0y=0WHLEn<5y=y+(n+1)*ann=n+1WENDPRINTyEND,求多項(xiàng)式在x=a時(shí)的值.,小結(jié)作業(yè),評(píng)價(jià)一個(gè)算法好壞的一個(gè)重要標(biāo)志是運(yùn)算的次數(shù),如果一個(gè)算法從理論上需要超出計(jì)算機(jī)允許范圍內(nèi)的運(yùn)算次數(shù),那么這樣的算法就只能是一個(gè)理論算法.在多項(xiàng)式求值的各種算法中,秦九韶算法是一個(gè)優(yōu)秀算法.,作業(yè):P45練習(xí):2.P48習(xí)題1.3A組:2.,同學(xué)們,來(lái)學(xué)校和回家的路上要注意安全,同學(xué)們,來(lái)學(xué)校和回家的路上要注意安全,