資源簡介 (共20張PPT)4.2 數值計算高中信息技術 必修1 數據與計算第二課時 求解斐波那契數列第4單元 計算與問題解決學習目標感受數據的圖形化表示。設計解析式或迭代方程,進行數值計算,解決問題。了解數值類算法在實際問題解決時的應用及常用方法。4.2 數值計算項目內容人們對計算機的最初應用大多是數值計算,主要借助計算機運算速度快,精確度高的特點來解決各種數學問題,如函數計算、方程的求解、數列求和等都屬于數值計算。借助計算機程序,可以解決很多數學方法所描繪的數值計算問題。本節我們將圍繞“與數學公式面對面”項目探討在中學數學領域中常見的數學公式與程序設計的有趣結合。項目任務:任務一 繪制數學函數曲線任務二 求解斐波那契數列本節任務4.2 數值計算任務:求解斐波那契數列4.2 數值計算活動1 用WPS求解數列數學家斐波那契在《計算之書》中提出了一個有趣的兔子問題:假設一對兔子每個月可以生一對小兔子,一對兔子出生后第2個月就開始生小兔子。則一對兔子一年內能繁殖成多少對?10年呢?根據描述,兔子的對數如圖所示:任務:求解斐波那契數列4.2 數值計算活動1 用WPS求解數列分析 從第3個月開始,每個月大兔子的對數等于上個月大兔子與小兔子的對數之和(即上個月兔子總對數),每個月小兔子的對數等于上個月大兔子的對數(即上個月兔子總對數)。使用電子表格可以很方便的求解:上機實踐1任務:求解斐波那契數列4.2 數值計算活動1 用WPS求解數列分析 從第3個月開始,每個月大兔子的對數等于上個月大兔子與小兔子的對數之和(即上個月兔子總對數),每個月小兔子的對數等于上個月大兔子的對數(即上個月兔子總對數)。我們發現,當計算到第74個月的時候,由于數據范圍及表示精度的問題,導致結果出錯:任務:求解斐波那契數列4.2 數值計算活動1 用WPS求解數列分析 從第3個月開始,每個月大兔子的對數等于上個月大兔子與小兔子的對數之和(即上個月兔子總對數),每個月小兔子的對數等于上個月大兔子的對數(即上個月兔子總對數)。借助電子表格軟件計算時,只能算到第74個月,而我們需要計算10年即第120個月的兔子數量。下面,我們借助python語言進行求解。知識探究——迭代法第1個月和第2個月的兔子對數之和為第3個月的兔子對數第2個月和第3個月的兔子對數之和為笫4個月的兔子對數……第118個月和第119個月的兔子對數之和為第120個月的兔子對數每個月的兔子對數是前兩個月的兔子對數之和, 又同時作為下一個月兔子對數的加數。這種重復反饋的過程稱為迭代。第n-2個月第n-1個月第n個月第n-1個月第n個月第n+1個月知識探究——迭代法迭代法也稱輾轉法,是用計算機解決問題的一種基本方法。迭代通常是為了接近并到達所需的目標或結果。每一次對過程的重復被稱為一次"迭代”,而每一次迭代得到的結果會被用來作為下一次迭代的初始值。由于在迭代系列中的每個月份兔子對數只跟前兩個月有關,因此在編寫程序時,只需兩個變量f1記錄上上個月的數據,用f2記錄上個月的數據。f1f2F1+f2③①②迭代計算的示意圖任務:求解斐波那契數列4.2 數值計算活動2 用Python求解數列def fib(n):#迭代求Fibonacci數列f2=f1=1for i in range(3,n+1):f1,f2=f2,f1+f2return f2n=int(input('輸入需要計算的月份數:'))print('兔子總對數為:',fib(n))input("運行完畢,請按回車鍵退出...")上機實踐2知識探究——迭代法有三個關鍵步驟:(1)確定迭代變量,如活動2中的fl、f2;(2)建立迭代關系式;(3)對迭代過程進行控制,這是編寫迭代程序必須考慮的問題, 不能讓迭代過程無休止地重復執行下去。利用迭代算法解決問題的步驟拓展練習嘗試用輾轉相除法求解兩個正整數的最大公約數。輾轉相除法:用較大數除以較小數,再用出現的余數(第一余數)去除除數,再用出現的余數(第二余數)去除第一余數,如此反復,直到最后余數是0為止。如果是求兩個數的最大公約數,那么最后的除數就是這兩個數的最大公約數。拓展練習嘗試用輾轉相除法求解兩個正整數的最大公約數。step1: 將兩數中大的那個數放在m中,小的放在n中。 step2: 求出m被n除后的余數r。 step3: 若余數為0則執行步驟(7),否則執行步驟(4)。 step4: 把除數作為新的被除數;把余數作為新的除數。 step5: 求出新的余數r。 step6: 重復步驟(3)到(5)。 step7: 輸出n,n即為最大公約數。拓展練習嘗試用輾轉相除法求解兩個正整數的最大公約數。num1=int(input('請輸入第一個正整數:'))num2=int(input('請輸入第二個正整數:'))m=max(num1,num2)n=min(num1,num2)r=m % nwhile r!=0:m=nn=rr=m % nprint('這兩個數的最大公約數為:',n)input("運行完畢,請按回車鍵退出...")上機實踐3課堂測試選擇題通常是為了接近并達到所需的目標或結果,對過程進行重復,每一次重復得到的結果會被用來作為下一次的初始值。這種用計算機解決問題的一種基本方法是( )。A.迭代法 B.查找法C.分析法 D.排序法課堂小結現代自然科學和工程電子技術的研究過程中,都離不開大規模的數學計算問題。如:數學類課程中的線性方程求解、微分方程求解、概率統計等;實用性和實驗性技術應用中的模擬核試驗、油田開發、飛機設計等。理解斐波那契數列。理解迭代法。拓展知識拓展知識編程求解一元多次方程用牛頓迭代法求解x5+x4+x-3=01.選取x1=0作為方程的初始解(x0應選取在解附近,這個可以通過觀察函數圖像得到);2.新解 ,其中f(x1)= x15+x14+x1-3,f'(x1)=5*x14+4*x13+1;3.如果|x1-x2|<1e-10,則解為x2,否則x1=x2,跳轉到(2)。拓展知識練習:利用牛頓迭代法求解方程x5+x4+x-3=0。def f(x): #定義f(x)函數,計算f(x)=x**5+x**4+x-3 f=x**5+x**4+x-3 return fdef f1(x): #定義f1(x)函數,計算f'(x)= 5*x**4+4*x**3+1 f1=5*(x**4)+4*(x**3)+1 return f1x1=0.5 #x1,x2的初值只要確保|x1-x2|>1e-10就可以x2=1.5 #解系列初值print('迭代過程中的x值:')#根據迭代公式計算while abs(x1-x2)>1e-10: print(x2) x1=x2 x2=x1-f(x1)/f1(x1)print('近似解:',x1) #輸出最后解input("運行完畢,請按回車鍵退出...")運行結果迭代過程中的x值:1.51.21978021978021991.0576440726974761.0048987207330281.00003812464892941.00000000232545361.0近似解:1.0運行完畢,請按回車鍵退出...感謝觀看學無止境 永攀高峰 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫