黃師化
摘要:利用MATLAB_GUI界面編程實現(xiàn)了一元函數(shù)定積分的運算及可視化,只需在操作界面上輸入函數(shù)表達式和積分區(qū)間,即可得出相應的結果,并繪制出函數(shù)圖像和積分區(qū)域,使學生對枯燥的數(shù)值積分有直觀形象的理解。
關鍵詞: MATLAB_GUI;數(shù)值積分;可視化計算
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)31-0115-02
The Application of Matlab _Gui in the Definite Integration
HUANG Shi-hua
(Anqing Normal University, Anqing 246133, China)
Abstract: MATLAB_GUI interface programming is engaged to achieve the calculation and visualization of the definite integral of one variable functions. By typing function expression and the integral interval,the outcomes will include functional image,integral region and the related results, which benefits visual image of understanding on the dull numerical integration.
Key words: MATLAB_GUI; numerical integration; visualization of calculation
高等數(shù)學重要內(nèi)容分為兩大塊:一元與多元微積分學,學生要學好高等數(shù)學,對一元函數(shù)微積分學的掌握是關鍵。 其中,一元函數(shù)定積分學好與否,對于學生更加深入學習并運用數(shù)學知識有重要鋪墊作用。但是,在實際教學過程中,由于函數(shù)內(nèi)容本身的抽象性及定積分計算的復雜性,往往不能對此部分的知識進行很好的詮釋,一方面學生覺得枯燥,難度大,另一方面,課堂上教師要花費大量時間和精力在黑板上計算、繪圖卻收效甚微。MATLAB 是一種集算法開發(fā),數(shù)值計算、數(shù)據(jù)可視化等功能于一體的優(yōu)秀的數(shù)學工具軟件,本文利用其內(nèi)置的幾種數(shù)值求積函數(shù)得出被積函數(shù)在積分區(qū)間的積分值,同時使用其強大的繪圖功能繪制出函數(shù)的圖像,并在圖像上標明積分區(qū)域,使得整個求解過程及計算結果完全可視化。
1 MATLAB _GUI 設計的操作界面及功能[1]
GUI( Graphical User Interfaces) 是圖形用戶界面的簡稱,借助于 MATLAB 軟件出色的符號運算、數(shù)值計算、圖形處理等功能及 GUIDE 編輯器,設計一個美觀、簡潔、明了的圖形操作界面。本界面使用了GUI中三個文本框(edit)控件,分別用來輸入被積函數(shù)、變量區(qū)間、積分區(qū)間,一個列表框(listbox)顯示積分結果。一個下拉列表(popupmenu)控件,用于選擇求積方法,一個坐標軸(axes)控件用于顯示函數(shù)圖像及積分區(qū)域。其他五個為命令按鈕(pushbutton)控件,控制計算和繪圖等功能。
圖1 一元函數(shù)定積分計算的圖形界面
2 一元定積分運算的實現(xiàn)
函數(shù)的積分運算的實現(xiàn)可分為三個模塊:(1)從界面上提取用戶的輸入,并對部分數(shù)據(jù)轉換類型。(2)依據(jù)選擇的方法運算并輸出運算結果到運行界面上。(3)繪函數(shù)圖像及積分區(qū)域。下面給出部分關鍵代碼。
2.1 提取數(shù)據(jù)
提取被積函數(shù)的表達式及其定義域,積分變量、積分區(qū)間等??墒褂胓et函數(shù)來實現(xiàn),例如:提取被積函數(shù)表達式:fun=get(handles.fedit,'string');
提取函數(shù)定義域并轉換成數(shù)值數(shù)據(jù):qujian=str2num(get(handles.fquedit,'string'));
2.2 選擇積分公式計算[2]
此部分代碼定義在“計算”按鈕的callback函數(shù)中。首先從下拉列表框獲取選中的方法:method=get(handles.mpop,'value');
接著調(diào)用相應的數(shù)值積分函數(shù)進行計算:
switch (method)
case 1
res=('梯形公式計算結果:|');
res=strcat(res,num2str(trapz(x,y)));
case 2
res='辛普生公式計算結果:|';
fun1=inline(fun);
[I,n]=quadl(fun1,a,b,1e-10);
res=strcat(res,num2str(I));
case 3
res=strcat(res,'高斯公式計算結果:|');
I=quadgk(@fe,a,b);
res=strcat(res,num2str(I));
end
最后在列表框中顯示計算采用的方法及得到的結果:
set(handles.result,'string',res);
2.3 繪圖部分[3]
此部分代碼定義在“繪圖”按鈕的callback函數(shù)中。
a=qujian(1);b=qujian(2); hold on;
axes(handles.axes1);fplot(fun,[a,b]);
界面運行結果舉例:設被積函數(shù)為f(x)=e-xsin2x,定義域分別如界面中輸入,截圖如下:曲線為函數(shù)圖像,陰影為積分區(qū)域。
圖2 積分區(qū)間為[[π]/2,0]
圖3 積分區(qū)間為[-0.2,[π]/3]
3 結束語
本文探討的通過窗口界面進行的一元函數(shù)定積分的運算,能很大程度的輔助教學,讓學生直觀地了解定積分的求解及幾何意義,更好地理解相應的積分理論知識,提高教學效率和效果。
參考文獻:
[1] 毛濤濤.精通 matlab-gui 設計[M].北京:電子工業(yè)出版社,2008.
[2] 劉衛(wèi)國.matlab 程序設計與應用[M].2版.北京:高等教育出版社,2008.
[3] 梁輝. MATLAB 制作圖形界面的應用[J]. 佳木斯大學學報(自然科學版) ,2003,21(4):402-406.
[4] 于育民,連冬艷. MATLAB-GUI 在數(shù)值積分中的應用[J].南陽理工學院學報(自然科學版) ,2009, 1(6):116-119.
[5] 李開友.函數(shù)積分的計算機求解及結果的可視化實現(xiàn)[J].數(shù)字技術與應用,2011(7).