999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab-GUI的數(shù)值積分界面設(shè)計

2017-04-10 12:05:47張建斌許曉晴
實驗室研究與探索 2017年1期
關(guān)鍵詞:可視化界面用戶

張建斌, 趙 靜, 許曉晴

(長安大學(xué) 經(jīng)濟(jì)與管理學(xué)院, 西安 710064)

基于Matlab-GUI的數(shù)值積分界面設(shè)計

張建斌, 趙 靜, 許曉晴

(長安大學(xué) 經(jīng)濟(jì)與管理學(xué)院, 西安 710064)

為了解決原函數(shù)完全未知、原函數(shù)已知但其形式復(fù)雜、原函數(shù)已知且存在解析解3種情況下的復(fù)雜積分計算問題,提出了關(guān)于數(shù)值積分界面的設(shè)計。將Matlab中可開發(fā)的GUI工具結(jié)合數(shù)值積分計算中的典型算法構(gòu)造開放式的用戶界面,設(shè)計出數(shù)值積分求解器并實現(xiàn)數(shù)值積分可視化功能;同時通過采用自定義方式設(shè)置積分區(qū)間等分?jǐn)?shù)的思路,提高了梯形、辛普森、復(fù)合梯形、高斯-勒讓德數(shù)和自適應(yīng)5種積分方法的計算精度。最后,用所設(shè)計的數(shù)值積分GUI界面對3種類型復(fù)雜積分函數(shù)進(jìn)行驗證和求解,結(jié)果表明,該設(shè)計能在同一界面同時實現(xiàn)用5種積分方法按用戶任意設(shè)定的精度進(jìn)行積分求解并能將計算結(jié)果可視化,因此該界面具有適應(yīng)性強(qiáng)、使用方便、界面友好、操作簡潔的優(yōu)點。

數(shù)值積分; 圖形用戶界面; Matlab; 積分求解器; 可視化

0 引 言

Matlab是一個基于矩陣運算,有強(qiáng)大的數(shù)據(jù)處理能力的工具箱。它既能進(jìn)行科學(xué)計算,又能開發(fā)出所需的圖形界面。Matlab-GUI是指圖形用戶界面,用戶可以根據(jù)自己的需要,通過構(gòu)思和編輯GUI,創(chuàng)建方便快捷的窗口,執(zhí)行一些如計算、繪圖和仿真等可視化操作。在當(dāng)今科學(xué)研究和工程實踐過程中,模型建立結(jié)果通常涉及諸如e-x^2等復(fù)雜函數(shù)的積分問題,其原函數(shù)不能用初等函數(shù)表達(dá),從而積分基本定理牛頓-萊布尼茨(Newton-Leibniz)公式[1]

則不能求解出其積分值。而數(shù)值積分理論提供了多種求解被積函數(shù)近似積分值的方法,因此,在實際生活中數(shù)值計算已經(jīng)發(fā)展成為一個重要的研究方法。

Matlab-GUI設(shè)計模塊受到了許多研究者的青睞,在各個領(lǐng)域中都有它的應(yīng)用。利用Matlab-GUI與其他學(xué)科的融合,大大方便了研究者的深入學(xué)習(xí)和 研究。魯曉東[2]利用Visual C++與Matlab-GUI混合編程,提高了軟件交互界面的友好性;張鳴[3]把Matlab-GUI融入到通信原理的課程中,豐富了實驗教學(xué)手段;李彤等[4]把Matlab-GUI應(yīng)用到了材料力學(xué)中,對力學(xué)教學(xué)提供了方便的演示手段;鐘可君等[5]采用Matlab-CUI對光學(xué)實驗進(jìn)行仿真,為光學(xué)理論分析提供了方便;謝麗蓉[6]更是采用Matlab-GUI開發(fā)出了研究異步電機(jī)特性的虛擬平臺。蘭紅等在應(yīng)用Matlab-GUI進(jìn)行圖像處理、飛機(jī)下滑控制、車輛路徑及過程控制等問題的建模與仿真方面進(jìn)行了相關(guān)研究[7-10]。在數(shù)學(xué)方面,有關(guān)GUI可視化功能在求解線性方程組和高等數(shù)學(xué)教學(xué)實驗及圖形用戶界面系統(tǒng)開發(fā)方面的應(yīng)用[11-14],而數(shù)值積分研究理論知識與Matlab-GUI設(shè)計相結(jié)合的討論則相對較少。其中2009年于育民[15]在Matlab-GUI數(shù)值積分中的應(yīng)用一文中寫過相關(guān)內(nèi)容,但是他沒有充分利用Matlab-GUI設(shè)計所涉及到的一些細(xì)節(jié)問題,諸如:沒有個性化的數(shù)值積分界面設(shè)計;沒有導(dǎo)入音樂功能,不能為用戶提供輕松快樂的操作環(huán)境;沒有設(shè)計菜單板塊,不能實現(xiàn)積分結(jié)果的輸出和積分界面退出功能;忽略了GUI中指針功能,沒能實現(xiàn)在有限積分界面中為用戶傳遞更多信息,操作更加便捷的功能;沒有將各種積分方法結(jié)果同時呈現(xiàn)于同一界面,使用戶無法比較不同方法積分結(jié)果的差異程度。本文將集成Matlab系統(tǒng)的ODE suite及自定義的常見數(shù)值積分方法,設(shè)計一個數(shù)值積分求解器。為用戶提供一個簡單、便捷的可視化操作界面。

1 Matlab-GUI積分界面功能

將Matlab-GUI應(yīng)用于設(shè)計積分界面,為沒有深入學(xué)習(xí)過數(shù)值積分理論知識和不了解Matlab-GUI相關(guān)知識的人提供了極大的方便,實現(xiàn)可視化果。主要功能如下:

(1) 個性化的數(shù)值積分界面,能夠吸引用戶的眼球。

(2) 該界面能夠同時求解被積函數(shù)在5種數(shù)值積分方法下任意精度的積分結(jié)果,并能同時比較不同積分方法求解結(jié)果的準(zhǔn)確程度。

(3) 該界面能夠繪制出被積函數(shù)在自變量取值范圍內(nèi)的函數(shù)圖,并在圖中標(biāo)注出積分區(qū)間部分。

(4) 該界面能繪出被積函數(shù)在積分區(qū)間上的函數(shù)圖,并進(jìn)行左矩形積分動畫演示,讓用戶對數(shù)值積分的幾何意義有直觀、形象的理解。

(5) 該界面利用指針功能實現(xiàn)多個GUI界面相結(jié)合的方法,不但節(jié)省了積分界面空間,而且使界面設(shè)計更具有人性化和條理化。

(6) 該界面利用指針導(dǎo)入音樂,并且可以實現(xiàn)隨時播放和停止的功能,為用戶操作提供了輕松愉快的環(huán)境。

2 Matlab-GUI界面設(shè)計

GUI界面的制作包括前臺界面設(shè)計和后臺程序編寫兩部分,其制作過程需要進(jìn)行反復(fù)修改,才能實現(xiàn)相應(yīng)的功能。它的一般制作過程如圖1所示。

圖1 GUI制作流程圖

2.1 主界面設(shè)計

設(shè)計的主要目的是實現(xiàn)Matlab-GUI與數(shù)值積分的結(jié)合,得到相應(yīng)的積分界面。為了使設(shè)計的GUI更加人性化,讓用戶對該設(shè)計的目的有更清晰的了解。專門設(shè)計了個性化的主界面,其設(shè)計思路為:像其他開發(fā)軟件擁有自己個性的主界面一樣,將設(shè)計標(biāo)題嵌入主界面,當(dāng)運行該程序時,伴隨著10 s的優(yōu)美音樂。另外設(shè)置了Start按鈕,單擊它時可跳過音樂直接進(jìn)入積分界面。實現(xiàn)上述功能的核心控件代碼如下:

II=imread(‘啟動頁面.bmp’);

image(II)

colormap gray

set(ha,‘handlevisibility’,‘off’,‘visible’,‘off’);

global p %音樂播放

[y,fs,bits]=wavread(‘啟動音樂.wav’);

p=audioplayer(y,fs);

play(p)

設(shè)計的GUI主界面如圖2所示。

圖2 GUI主界面

2.2 界面菜單項設(shè)計

Matlab-GUI中菜單項設(shè)計包括下拉式菜單編輯和現(xiàn)場菜單編輯兩部分。本文在文件主菜單下設(shè)計了兩個子菜單項,分別為積分和關(guān)閉。用戶可以通過積分界面菜單項實現(xiàn)相應(yīng)的功能。以積分菜單項的設(shè)計為例,其設(shè)計過程如下,首先在兩種菜單編輯下編輯文件主菜單,并正確調(diào)用其相應(yīng)函數(shù)。然后將子菜單項積分的Tag設(shè)置為“jifen”,用于求得函數(shù)的積分,設(shè)置其調(diào)用函數(shù)為:

Function jifen_Callback(hObject, eventdata, handles)

pushbutton3_Callback(hObject, eventdata, handles);

設(shè)計界面過程如圖3所示。

圖3 GUI菜單項設(shè)計圖

2.3 積分界面設(shè)計

積分界面的主要功能為實現(xiàn)求解一元函數(shù)分別在梯形法、Simposon、復(fù)合梯形、高斯-勒讓德和自適應(yīng)數(shù)值積分方法下的積分值,其中精度設(shè)計由等分?jǐn)?shù)n來確定。其中涉及到的求解過程均是根據(jù)理論編寫相應(yīng)代碼,而不是Matlab自帶的求解命令。設(shè)計左矩形動畫演示程序,使用戶清楚理解積分的幾何意義。編輯繪圖區(qū)域,方便用戶得到被積函數(shù)在積分區(qū)間下的函數(shù)圖。同時,利用GUI與GUI之間的調(diào)用功能,設(shè)計說明和注意事項按鈕,為用戶提供了方便使用說明及如何應(yīng)對使用過程中可能出現(xiàn)的問題。最后設(shè)計背景音樂區(qū)域,該區(qū)域設(shè)計了音樂下拉菜單,用戶可以選擇喜歡的音樂,并能夠?qū)崿F(xiàn)隨時播放和停止的功能。其GUI控件布局結(jié)構(gòu)如圖4所示。

圖4 GUI積分界面

積分方法選擇及其相應(yīng)積分結(jié)果控件實現(xiàn)的核心代碼實現(xiàn)過程為:首先通過輸入一元函數(shù)或二元函數(shù),并給出自變量的取值范圍記為a,b,將函數(shù)表達(dá)式及相應(yīng)參數(shù)值傳遞給積分方法選擇控件,該控件為下拉菜單,通過選擇積分方法,并調(diào)用與該方法對應(yīng)的程序,最后將運行結(jié)果顯示在積分結(jié)果區(qū)域。

其中獲得函數(shù)及積分區(qū)間的代碼為:

a=str2num(get(handles.kj3,‘string’));

b1=a(1); b2=a(2); d=0.001;

x=b1:d:b2;

c=get(handles.kj1,‘string’);

f=inline(c,‘x’);

積分方法選擇中主要使用了switch語句,其中的核心代碼為:

switch var

case 1

m=trapr1(f,b1,b2,n);

?

case 4

m = Gauss_Legendre(f,b1,b2,10)

?

case 5

m=SmartSimpson(ff,b1,b2);

?

end

音樂功能區(qū)域?qū)崿F(xiàn)包括播放和停止兩個部分,其相應(yīng)的回調(diào)函數(shù)分別為:

音樂播放按鈕的回調(diào)函數(shù):

function pushbutton7_Callback(hObject, eventdata, handles)

global p

[y,fs,bits]=wavread(‘背景音樂.wav’);

p=audioplayer(y,fs);

play(p);

音樂停止按鈕的回調(diào)函數(shù):

function pushbutton8_Callback(hObject, eventdata, handles)

global p

pause(p);

其中GUI與GUI的調(diào)用說明部分設(shè)計如圖5所示。

圖5 GUI設(shè)計說明書

3 實例分析

Matlab-GUI積分界面主要解決數(shù)值積分理論中如下3種積分問題:求解被積函數(shù)在積分區(qū)間內(nèi)解析解積分問題;求解被積函數(shù)原函數(shù)未知時的積分問題;求解即使被積函數(shù)原函數(shù)已知,但其形式非常復(fù)雜時的積分問題。對于上述問題,運用積分界面分別進(jìn)行求解。

(1) 對于能夠求出原函數(shù)的被積函數(shù),并且其積分結(jié)果為的解析解的情況。運行所設(shè)計的GUI界面,比較5種數(shù)值積分方法的積分結(jié)果。

令y=sin(x),x∈(0,2π),積分區(qū)間為[0,0.5π],n=100時的結(jié)果如圖6所示。

圖6 計算結(jié)果顯示圖

積分的幾何意義為曲邊梯形的面積,隨著所分成的子區(qū)間數(shù)目不斷增加,所求積分的面積和就越來越接近被積函數(shù)在積分區(qū)間上曲邊梯形的面積,其變化的動畫演示過程如圖7所示。

(2) 求解被積函數(shù)原函數(shù)未知情況下的積分結(jié)果。令y=sin(x)/x,x∈(1,10),積分區(qū)間為[2,7],n=100時的數(shù)值積分GUI運行結(jié)果和動畫顯示如圖8所示。5種數(shù)值積分方法的積分結(jié)果如表1所示。

序號積分方法積分結(jié)果1Trapz-0.1507062Simpson-0.1508163CombineTrapz-0.1495044GaussLegendre-0.1508165Smart-0.151072

(3) 求解被積函數(shù)原函數(shù)已知,但原函數(shù)結(jié)構(gòu)復(fù)雜因此難以求出積分結(jié)果的函數(shù)積分值。令y=1/(1+x6),x∈(-5,5),積分區(qū)間為[-2,1],n=7時的結(jié)果顯示。

其原函數(shù)為:

因此很難求出其積分結(jié)果,運用數(shù)值積分GUI運行結(jié)果和動畫顯示如圖9所示。5種數(shù)值積分方法的積分結(jié)果如表2所示。

序號積分方法積分結(jié)果1Trapz1.919272Simpson1.945283CombineTrapz1.943474GaussLegendre1.946095Smart1.94502

(4) Matlab-GUI積分界面計算二重積分。當(dāng)所給函數(shù)是二元函數(shù),積分區(qū)間為體積時,便涉及到二重積分計算問題。這里采用矩形法計算二重積分。設(shè)f(x,y)=sin(x)+x·cos(y),x∈(0,3),y∈(0,3),積分區(qū)間為x∈(1,2),y∈(0,3),其運行結(jié)果如圖10所示。

4 結(jié) 語

將Matlab—GUI應(yīng)用于設(shè)計積分界面,設(shè)計出了GUI積分界面,為未掌握數(shù)值積分理論知識和不了解Matlab-GUI相關(guān)知識的人提供了極大的方便,為他們提供可視化的積分結(jié)果。另外,該界面使得被積函數(shù)不管為哪種積分類型,都能計算出積分結(jié)果。

仍需完善的方面是由于系統(tǒng)對輸入法不兼容,可能導(dǎo)致用戶在使用過程中出現(xiàn)一些輸入法上的問題。該設(shè)計可用于工程模型及高校建模過程中涉及到的積分求解問題。

[1] 陳垚光.精通Matlab GUI設(shè)計(3版)[M].北京:電子工業(yè)出版社,2013.

[2] 魯曉東. Visual C++與Matlab的界面混合編程[J]. 實驗室研究與探索, 2011, 30(7):76-78.

[3] 張 鳴. 基于Matlab GUI的通信原理演示系統(tǒng)設(shè)計[J]. 實驗技術(shù)與管理, 2013(9):111-113.

[4] 李 彤, 項四通, 李吉宗. 基于Matlab的材料力學(xué)圖形用戶界面系統(tǒng)開發(fā)[J]. 實驗室研究與探索, 2010, 29(8):42-44.

[5] 鐘可君, 張海林..基于Matlab GUI設(shè)計的光學(xué)實驗仿真[J]. 實驗室研究與探索, 2010, 29(10):52-53.

[6] 謝麗蓉.基于Matlab GUI異步電動機(jī)人機(jī)界面設(shè)計[J]. 實驗技術(shù)與管理, 2014(8):50-53.

[7] 蘭 紅,田 進(jìn).基于Matlab GUI的圖像處理平臺設(shè)計[J]. 江西理工大學(xué)學(xué)報,2014,35(3):79-84.

[8] 曲東才, 盧建華, 謝孔樹. 飛機(jī)下滑定高控制GUI設(shè)計與仿真實驗[J]. 實驗室研究與探索, 2015, 34(10):111-115.

[9] 楊 娟,郭海湘,楊文霞,等.基于 Matlab 的 GUI 設(shè)計車輛路徑問題的仿真優(yōu)化平臺[J].系統(tǒng)仿真學(xué)報,2012, 24(3):722-727.

[10] 王紅梅, 張厚升, 邢雪寧. 基于 Matlab GUI的過程控制仿真實驗系統(tǒng)設(shè)計[J]. 山東理工大學(xué)學(xué)報(自然科學(xué)版), 2015(6):58-60.

[11] 高紅兵.GUI可視化功能在求解線方程組中應(yīng)用研究[J]. 內(nèi)江科技,2014(11):53-54.

[12] 楊傳勝, 曹金亮. Matlab大學(xué)數(shù)學(xué)實驗[M]. 北京:中國人民大學(xué)出版社, 2014.

[13] 沈 靜, 黃登斌. 基于Matlab的GUI在高等數(shù)學(xué)教學(xué)中的應(yīng)用[J]. 高等繼續(xù)教育學(xué)報, 2012(3):45-46.

[14] 唐世星. 基于Matlab的高等數(shù)學(xué)實驗圖形用戶界面系統(tǒng)開發(fā)[J]. 實驗室研究與探索, 2012, 31(9):202-203.

[15] 于育民,連冬艷.Matlab-GUI在數(shù)值積分中的應(yīng)用[J].南陽理工學(xué)院學(xué)報,2009(6):116-120.

[16] 石學(xué)軍. 基于Matlab GUI軟件制作方法的研究與實現(xiàn)[J]. 信息系統(tǒng)工程, 2015(2):46-46.

The Numerical Integration Design Based on Matlab-GUI

ZHANGJian-bin,ZHAOJing,XUXiao-qing

(School of Economics and Management, Chang’an University, Xi’an 710064, China)

This paper puts forward the problem about the design of numerical integral interface, to solve the complex integral calculation under three situations: first, the function is completely unknown; second, the function is known while its form is complex; third, the function is known and the analytical solutions exist. Combining the GUI tool which can be developed in Matlab with typical algorithm in the calculation of numerical integration, this paper constructs an open users' interface, and designs the numerical integral solver even realize visualization of the numerical integration. At the same time, the thinking of using a custom way to set integral interval equivalent fractions has improved the computational accuracy of five integral methods. Finally, the designed numerical integration GUI interface is used to verify three types of complex integral function. The results show that the design can solve the integration at any set accuracy by using the five methods in the same interface, and visualizes the computed results. Therefore, the designed interface has advantages of strong adaptability, convenience, friendliness and simple operation.

numerical integration; graphical users' interfaces; Matlab; integral solver; visualization

2016-03-14

張建斌(1967-),男,陜西合陽人,博士,副教授,碩士生導(dǎo)師,主要研究方向:統(tǒng)計學(xué);

Tel.:13909208719; E-mail:zhangjb@d.edu.cn

TP 317

A

1006-7167(2017)01-0127-05

猜你喜歡
可視化界面用戶
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
國企黨委前置研究的“四個界面”
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機(jī)交互界面發(fā)展趨勢研究
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 麻豆精品在线播放| 人禽伦免费交视频网页播放| 亚洲另类色| 欧美精品影院| 欧美日韩综合网| 99久久精彩视频| 国产在线视频导航| 97在线公开视频| a毛片基地免费大全| 国产精品七七在线播放| 114级毛片免费观看| 亚洲综合专区| 99久久精品免费看国产免费软件| 免费一级毛片不卡在线播放| 热久久这里是精品6免费观看| 在线五月婷婷| 91视频青青草| 精品人妻无码中字系列| 国产成人久久777777| 午夜视频www| 亚洲人成成无码网WWW| 久久精品嫩草研究院| 国产精品国产三级国产专业不| 1024你懂的国产精品| 久久精品免费国产大片| 巨熟乳波霸若妻中文观看免费| 人妻丰满熟妇av五码区| 久久女人网| 麻豆AV网站免费进入| 色综合天天综合中文网| 自拍偷拍欧美日韩| 热思思久久免费视频| 国产一区二区丝袜高跟鞋| 久久a毛片| 91国内外精品自在线播放| 国产三级成人| 久热中文字幕在线| 亚洲人成网址| 黄色三级网站免费| 久久久久免费精品国产| 中文字幕调教一区二区视频| 国产精品短篇二区| 日本一区高清| 日韩精品一区二区三区中文无码| 国产精品99久久久久久董美香| 99精品国产高清一区二区| 99久久精品免费看国产免费软件| 成人永久免费A∨一级在线播放| 小说区 亚洲 自拍 另类| 中文字幕日韩欧美| 激情六月丁香婷婷四房播| 久夜色精品国产噜噜| 欧美成人手机在线视频| 国产视频一区二区在线观看| 国产又色又爽又黄| 在线看免费无码av天堂的| 精品国产免费观看| 国产精品香蕉在线| 欧美笫一页| 91免费国产高清观看| 亚洲大学生视频在线播放| 日韩第九页| 国产成人a毛片在线| 国产自无码视频在线观看| 国产打屁股免费区网站| 久久精品人妻中文系列| 中文字幕日韩丝袜一区| 欧美性色综合网| 午夜激情婷婷| 精品国产www| 波多野结衣在线se| 国产激爽爽爽大片在线观看| 中文字幕调教一区二区视频| 亚洲人成电影在线播放| 国产美女人喷水在线观看| 色婷婷啪啪| 国产成人精品在线| 天堂中文在线资源| 日韩毛片免费视频| 操国产美女| 国产成人精品优优av| 亚洲日韩精品综合在线一区二区|