許月媚 廣東省廣州市南武中學
數(shù)學是計算機科學的理論基礎(chǔ)之一,計算機技術(shù)的出現(xiàn)和發(fā)展最初源于數(shù)學問題求解。由于自然科學領(lǐng)域需要進行大量的數(shù)值計算,而人工計算又存在效率落后、精確度低等不足,往往無法滿足計算要求,因此,就需要借助計算機程序來彌補人工計算的不足,同時解決很多數(shù)學方法所描繪的數(shù)值計算問題。
本課節(jié)選自2019年教科版《必修1 數(shù)據(jù)與計算》第4單元“計算與問題解決”第2節(jié)《數(shù)值計算》,旨在幫助學生在了解算法及其特征的基礎(chǔ)上,學會分析問題,運用數(shù)值類問題求解的常用算法——解析法來解決實際問題。本課為《數(shù)值計算》的第一課時,重在實現(xiàn)學科知識的融通,將數(shù)學函數(shù)解析式求解與計算機模擬相融合,突出計算機在解決問題過程中的地位和作用。通過“解決數(shù)學問題”案例活動,引導學生體驗和探討計算機解決問題的過程。
本課的學習對象為高一年級的學生,他們雖然在數(shù)學、物理課上經(jīng)常運用解析法解決問題,但很少能夠主動利用計算機程序?qū)崿F(xiàn)問題求解。經(jīng)過第2單元“編程計算”的學習,學生基本具備本節(jié)案例學習的知識儲備——程序設(shè)計的三大結(jié)構(gòu)、輸入輸出函數(shù)、列表、自定義函數(shù)、模塊等,但考慮到大多數(shù)學生對程序設(shè)計知識的遺忘率較高,在教學過程中有必要對相關(guān)知識進行鞏固,以提高課堂教學的有效性。
①了解解析法的概念以及計算機繪制函數(shù)圖像的基本原理。②掌握計算機編程解決問題的一般過程,能夠根據(jù)實際問題來抽象問題特征、建立結(jié)構(gòu)模型、合理組織數(shù)據(jù)、設(shè)計算法方案,進而掌握Python繪制圖像的基本方法。③通過數(shù)學問題的求解,逐步理解計算機進行數(shù)值計算的基本流程和方法,并能夠?qū)⑵溥w移至學習和生活場景中的其他問題解決過程中。
學習目標:①設(shè)計解析式進行數(shù)值計算、解決實際問題;②感受數(shù)據(jù)的圖形化表示;③了解解析算法在實際問題解決過程中的應(yīng)用。
導入:計算機的最初用途是用于數(shù)值計算,它運算速度快,精確度高,借助它可以解決許多數(shù)學問題。
提出問題:如何選擇最優(yōu)化草莓支付方案?某草莓采摘園在春節(jié)期間推出了甲、乙兩種優(yōu)惠方案,優(yōu)惠前的草莓定價為50元/kg。甲種優(yōu)惠方案:游客進園需要購買40元的門票(每個家庭購買一張門票),采摘的草莓均按定價的六折賣給采摘游客。乙種優(yōu)惠方案:游客進園不需購買門票,采摘的草莓按定價出售,但超過3kg后,超過的部分按定價的五折賣給采摘的游客。問題一:采摘8kg草莓,選擇哪個方案更優(yōu)惠?問題二:采摘重量在什么范圍時,游客選用甲種優(yōu)惠方案更合算?
設(shè)計意圖:讓學生明確本節(jié)課的學習主題,了解學習目標及內(nèi)容。
問題一求解:已知采摘重量求費用——采摘8kg草莓,選擇哪個方案更優(yōu)惠?
思考1布置:請用數(shù)學方法求解該問題。假設(shè)采摘草莓的重量為x(kg),甲種優(yōu)惠方案采摘所需的總費用為y1(元),乙種優(yōu)惠方案采摘所需的總費用為y2(元),列出y1、y2關(guān)于x的函數(shù)關(guān)系式。
設(shè)計意圖:引導學生思考、設(shè)想,調(diào)動學生已有的知識儲備,對問題進行分析,通過數(shù)學方法解決問題一。
提問:采摘重量不定,如何快速選擇費用方案?
編程解決問題:嘗試用計算機編程去解決,設(shè)計費用計算器。通過流程圖表示計算器的功能設(shè)計(如圖1),結(jié)合數(shù)學方法來設(shè)計解決問題的算法。
圖1 流程圖
提問:我們知道甲種方案是一個分段函數(shù),分段函數(shù)在編程中如何實現(xiàn)?
講解:復習自定義函數(shù);講解分段函數(shù)關(guān)鍵代碼。
任務(wù)1布置:用解析法設(shè)計費用計算器——打開圖2的Python程序文件,補充并調(diào)試運行程序。
圖2 Python程序文件
任務(wù)1參考答案:①float;②50*0.6*x+40;③0<=x<=3;④y=25*x+75;⑤f(x)。
講解:①計算機編程解決問題的一般流程(如圖3)。②解析法:用解析的方法提出問題條件與結(jié)果之間關(guān)系的數(shù)學表達式,并通過表達式的計算來實現(xiàn)問題求解。
圖3 計算機編程解決問題的一般流程
小結(jié):基于解析法的問題解決流程(如圖4)。
圖4 基于解析法的問題解決流程
設(shè)計意圖:針對問題一的求解過程,分析問題環(huán)節(jié)已完成數(shù)學方法解決問題的基礎(chǔ)鋪墊,此部分旨在讓學生完成費用計算器的程序編寫,實現(xiàn)計算機編程解決問題。通過問題引導,讓學生以填空的形式編寫程序,降低難度,能夠消除學生的畏難情緒;通過數(shù)學問題的求解,幫助學生理解解析法的概念與應(yīng)用,著重培養(yǎng)學生的計算思維能力,實現(xiàn)知識建構(gòu)。
問題二求解:比較不同的優(yōu)惠方案——采摘重量在什么范圍時,游客選用甲種優(yōu)惠方案采摘更合算?
思考2布置:數(shù)學上有哪些解決該問題的方法?請選擇其中一種并作簡單描述。
解決問題的方法:①比較法,通過計算解析式得出結(jié)果;②列表法,通過計算能得到選定的x,y數(shù)值;③圖像法,繪制函數(shù)圖像,觀察圖像。
設(shè)計意圖:學生思考,對問題進行分析,通過數(shù)學方法解決問題二。
提問:用哪種方法更適合快速找到區(qū)間范圍?數(shù)學上如何繪制函數(shù)圖像?
講解:①圖像法繪圖步驟:列表—描點—連線。②計算機編程繪制函數(shù)圖像與數(shù)學方法繪制函數(shù)圖像相似:使用numpy模塊列表(numpy模塊講解);使用matplotlib模塊描點、連線(matplotlib模塊講解)。
任務(wù)2布置:編程繪制圖像——打開如圖5所示的Python程序文件,補充并調(diào)試運行程序。
圖5 Python程序文件
設(shè)計意圖:對比解決同一問題的不同方法,可以讓學生感受不同問題解決方法的差異,并學會選擇效率高、效果好的方法。對于問題二求解,圖像法更適合快速找到區(qū)間范圍。數(shù)學繪制函數(shù)圖像的步驟能夠促進學生理解計算機編程繪圖的步驟,讓學生理解Python在程序設(shè)計中的優(yōu)勢,激發(fā)學習的熱情。
任務(wù)2參考答案:①f(i);②np.arange;③50*0.6*x1+40;④plt.plot;⑤plt.show。
知識小測:
(1)計算圓面積的算法描述如下:①輸入圓的半徑r,②計算圓的面積s=pi*r**2,③輸出圓的面積s,④結(jié)束。這個算法是屬于( )?(單選題)
A.枚舉法 B.解析法 C.二分法 D.迭代法
(2)人們對計算機的最初應(yīng)用大多是數(shù)值計算,主要借助計算機運算速度快、精確度高的特點來解決各種數(shù)學問題,如( )等都屬于數(shù)值計算。(多選題)
A.函數(shù)的計算 B.方程的求解C.數(shù)列求和 D.二分查找
(3)嘗試用Python繪制y=x^2-2x+1的圖像(如圖6)。(完善程序)
圖6 Python繪制y=x^2-2x+1的圖像
設(shè)計意圖:知識鞏固,檢查目標達成情況。
知識小測參考答案:(1)B。(2)ABC。(3)①import;②arange;③plot;④show。
引導學生歸納、總結(jié)、梳理本節(jié)課的學習內(nèi)容,進行知識提煉,實現(xiàn)知識建構(gòu),并能夠?qū)⒗眯畔⒓夹g(shù)解決問題的過程遷移到學習和生活場景中的其他問題解決過程中。
本節(jié)課采用“提出問題——分析問題——解決問題——目標達成——知識建構(gòu)”的教學模式,以學生熟悉的數(shù)學問題作為活動主線,通過典型、針對性強的生活案例,將相關(guān)基本概念、解題方法和思路傳授給學生。
教材第2單元已提及計算機解決問題的本質(zhì),即分析解決問題的方法和步驟,用計算機能夠識別的方式表示信息,使其成為計算機能夠處理的數(shù)據(jù)。以新課標為依據(jù),活用教材,本教學設(shè)計圍繞“設(shè)計費用計算器”和“繪制函數(shù)圖像”兩個任務(wù)來開展教學,在任務(wù)一“設(shè)計費用計算器”中,可借助學案導學,引導學生從數(shù)學求解入手,啟發(fā)思維,讓學生逐步形成使用自然語言或流程圖描述算法的思路。任務(wù)一的核心是研究合理的數(shù)學模型和求解算法,任務(wù)二“繪制函數(shù)圖像”是任務(wù)一的延伸,難度也有所增加,程序中numpy模塊和matplotlib模塊的加入以及自定義函數(shù)的運用需要教師做好講解。在教學中筆者也發(fā)現(xiàn),階梯式的任務(wù)設(shè)計有助于激發(fā)學生學習的積極性和求知欲,采用數(shù)學函數(shù)解析式求解與計算機模擬相融合的方式,有利于培養(yǎng)學生的信息意識,并在探究實踐、驗證及解決問題的過程中促進學生的知識遷移,發(fā)展學生的計算思維。