閆新生
[摘 要]對于新升本院校的學生來講,學習高等數學除了掌握必要的數學知識外,更重要的是培養數學素質,掌握應用數學知識解決實際問題的能力。本文試圖結合高等數學的教學實踐,探討如何在高等數學教學中適時地引入數值計算,以便提高學生的數學應用能力。
[關鍵詞]高等數學 數值計算 MATLAB 數學應用
[中圖分類號] O13 [文獻標識碼] A [文章編號] 2095-3437(2014)16-0082-03
一、高等數學教學中引入數值計算的必要
本人作為一名多年從事高等數學教學的教師,結合多年的專科教學實踐,以及對我院第一次招收的本科學生的知識結構情況的掌握,感到這些學生中的大部分數學基礎知識和運算技巧都有欠缺,要想掌握嚴密的高等數學理論體系難度較大。另一方面,從應用型本科人才培養目標出發,我們也應當著重培養學生應用數學的能力,尤其是理工科學生,在今后的工作實踐中,隨時都可能遇到數值計算和數據處理問題需要解決。因此,教師在高等數學的教學中,應注意適時地引入數值計算和加強數據處理能力的培養,以便學生畢業后能盡快適應工作崗位的要求。
隨著計算機的日益普及和數學軟件的不斷更新,有關數值計算、數據處理軟件的日益成熟,教會學生掌握數值計算的技能已經變得相當容易。作為一名高等數學教師,教學中應該有意識地引入MATLAB輔助教學,加強學生運用計算機解決數學問題的訓練,培養學生的實踐能力。MATLAB作為一款成熟的數學軟件,具有優秀的數值計算和數據處理能力以及強大的繪圖功能。它無需專門訓練,編程簡單,編程有時就像做數學題一樣。將MATLAB語言引入高等數學教學中,無疑是培養學生數值計算和數據處理能力的一條快速有效的途徑。
二、高等數學教學引入數值計算的具體做法
對于應用型工科專業的學生來說,鑒于教學計劃和學時的限制,不可能作為一門課程專門講解數值計算方面的內容。MATLAB的數學函數庫包含了大量的計算算法,包括基本函數、矩陣運算和復雜算法等。我們的做法是:不增加課時,精講高等數學內容,在高等數學教學的同時,通過介紹MATLAB軟件的基本應用,結合具體教學內容適時地引入MATLAB數值計算,并安排一定時間的上機實驗,既提高了學生學習高等數學的興趣,又讓學生在掌握高等數學知識的同時,培養了利用計算機處理實際問題的能力,可謂一舉兩得。下面介紹MATLAB在幾方面的應用。
(一)極限運算
在介紹兩個重要極限時,對于第二個重要極限,以前總是從數列極限■(1+■)n開始,通過列表觀察數列取值的變化規律。現在借助MATLAB語言,讓學生自己在計算機上觀察,效果更好。程序如下:
x=1:1000;
y=(1+1./x).^x;
plot(x,y)
(二)定積分運算
(1) 對于定積分運算,由于學生不定積分運算技巧的欠缺,掌握起來感到較難,我們的處理方法是,除了教給學生定積分的基本知識外,把定積分的計算交給計算機來完成。
有理函數的定積分計算起來較麻煩,利用MATLAB的符號運算,只要兩條很簡單的命令即可解決。如計算定積分■■.命令結果如下:
syms x
int(x/(x^2-2*x+2)^2,0,2)
運算結果
ans =
1/4*pi+1/2
我們知道,有些函數的定積分是沒法應用牛頓—萊布尼茲公式計算的,這時就要用到定積分的近似計算。MATLAB的數值計算能力在這方面就更加有優勢了。如計算定積分■ex2dx.
梯形法計算,命令結果如下:
x=0:0.01:1;
y=exp(x.*x);
s1=trapz(x,y)
運算結果:
s1 =
1.4627
辛普生法計算,命令結果如下:
x=0:0.01:1;
s2=quad(′exp(x.^2)′,0,1)
s2 =
1.4627
(2) 定積分數值計算的應用
汽車里程表原理。汽車的速度表用來計算汽車輪子轉動的快慢,并把它轉化為汽車前進的速度。那么里程表又是怎么計算行駛里程的呢?這就用到了定積分的實際意義,即通過計算速度曲線從初始時刻到當前時刻之間的曲邊梯形面積而得到行駛的里程。通過該例,既加強了學生對定積分實際意義的理解,也鍛煉了學生運用高等數學知識解釋工程應用的能力。
假設某輛汽車在3小時內行駛的速度函數為:
v(x)=25(2sin2(2x)+■xcos2(■)),x∈[0,3]
求該時間段內汽車行駛的路程。
先畫出速度曲線,命令如下:
x=0:0.01:3;
y=25*(2*(sin(2*x)).^2+5/2*x.*(cos(x/2)).^2);
plot(x,y)
用數值積分計算汽車行駛路程,命令結果如下:
x=0:0.01:3;
y=25*(2*(sin(2*x)).^2+5/2*x.*(cos(x/2)).^2);
s1=sum(y(1:300))*0.01
s2=sum(y(2:301))*0.01
s3=trapz(x,y)
f=inline(′25*(2*(sin(2*x)).^2+5/2*x.*
(cos(x/2)).^2)′,x);
[I,n]=quad(f,0,3)
運行結果為:
s1 = 169.9960 s2 = 170.0444 s3 = 170.0202 I = 170.0213 n = 165
(三)微分方程數值解
雖然我們在教學中教會了學生解幾種典型的微分方程,但生產和科研中所處理的微分方程大多很復雜而且得不出一般解,實際問題的處理中更多的要求數值解。對初值問題,一般是要求得到解在若干個點上滿足規定精確度的近似值,或者得到一個滿足精確度要求的便于計算的表達式。因此,研究常微分方程的數值解是十分必要的。MATLAB有相應的求解函數解決這類問題,而且相當簡單。
如求解初值問題:
■
按照學過的微分方程類型是無法求解的,只能求其數值解。
解: 令 y1=x,y2=y1′
則微分方程變為一階微分方程組:
■
程序如下:
先建立函數文件
function dy=shuzhijie (t,y)
dy=zeros(2,1);
dy(1)=y(2);dy(2)=1000*(1-y(1)^2)*y(2)-y(1);
取t0=0,tf=3000,輸入命令:
[T,Y]=ode15s(′vdp1000′,[0 3000],[2 0]);
plot(T,Y(:,1),′-′)
三、應注意的問題
(一)利用 MATLAB語言處理高等數學問題只能輔助教學,應避免學生過于依賴計算機解題
誠然,利用數學軟件解題速度快、準確。但要知道,如果不明白數學原理,再好的軟件也起不了作用。高等數學的教學目的始終是培養數學思維和數學方法的訓練,教學中第一位的還是要讓學生理解基本概念、掌握基本運算能力、加強實際應用的訓練。只有這樣才談得上運用數學知識解決實際問題,運用數學軟件處理工程實際中遇到的問題。一個實際問題建立不了數學模型怎么能用數學方法求解呢?利用 MATLAB語言解數學題只能起驗證作用,不鼓勵學生動輒就用計算機解題。要讓學生明白再好的軟件也是以準確掌握應用原理為前提的,不然,談不上應用更談不上編程。
(二)教學中注意引入 MATLAB語言的時機
由于利用 MATLAB語言處理高等數學問題只是為了提高學生學習高等數學的興趣,加強數學應用能力的培養,這就決定了教學中不可能占用過多的學時去介紹這方面的知識。教學實踐中我們的做法是結合每章的習題課進行,尤其是結合實際應用類型的習題的求解。先有數學基礎再介紹必要的MATLAB語言知識,然后讓學生建立數學模型,最后運用數學軟件求解。這既加強了章節知識的理解也同時訓練了數學知識的應用和計算應用能力。
(三)注重提高學生解決問題的實踐能力的培養
在引入MATLAB輔助高等數學教學時,教師不能僅限于學生會用計算機解數學題,而應注重數學知識的實際應用能力的培養,尤其對工科專業的學生來說,加強運用數學知識解決工程實際問題更為重要。比如在進行函數與極限教學時,特別要注意零點定理與介值定理結合導數應用中方程近似解的介紹,因為實際應用中的代數方程只能求其近似解。導數應用中,加強微分在近似計算中的應用的訓練。定積分概念的教學中,除了讓學生充分理解定積分的實際意義外,還要真正掌握定積分的元素法,會處理變力沿直線所做的功、水壓力、引力等實際應用問題。在微分方程一章的教學中,更要注意與實際應用問題的結合,因為這一數學分支在數學的應用中尤其活躍。總之,學生學習高等數學的目的,還是為了應用數學知識解決實際問題,這也是應用型本科人才的培養目標所要求的。
[ 參 考 文 獻 ]
[1] 金明阮沈勇編著.MATLAB實用教程(第2版)[M].北京:電子工業出版社,2008.02
[2] 艾冬梅等編著.MATLAB與數學實驗[M].北京:機械工業出版社,2010.04
[3] 同濟大學數學系編高等數學(第六版)[M].北京:高等教育出版社,2007.04
[責任編輯:林志恒]