• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2017-04-10 12:05:47張建斌許曉晴
      實驗室研究與探索 2017年1期
      關鍵詞:數(shù)值積分原函數(shù)界面設計

      張建斌, 趙 靜, 許曉晴

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

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

      張建斌, 趙 靜, 許曉晴

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

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

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

      0 引 言

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

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

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

      1 Matlab-GUI積分界面功能

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

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

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

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

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

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

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

      2 Matlab-GUI界面設計

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

      圖1 GUI制作流程圖

      2.1 主界面設計

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

      設計的GUI主界面如圖2所示。

      圖2 GUI主界面

      2.2 界面菜單項設計

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

      Function jifen_Callback(hObject, eventdata, handles)

      pushbutton3_Callback(hObject, eventdata, handles);

      設計界面過程如圖3所示。

      圖3 GUI菜單項設計圖

      2.3 積分界面設計

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

      圖4 GUI積分界面

      積分方法選擇及其相應積分結(jié)果控件實現(xiàn)的核心代碼實現(xiàn)過程為:首先通過輸入一元函數(shù)或二元函數(shù),并給出自變量的取值范圍記為a,b,將函數(shù)表達式及相應參數(shù)值傳遞給積分方法選擇控件,該控件為下拉菜單,通過選擇積分方法,并調(diào)用與該方法對應的程序,最后將運行結(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)包括播放和停止兩個部分,其相應的回調(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)用說明部分設計如圖5所示。

      圖5 GUI設計說明書

      3 實例分析

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

      (1) 對于能夠求出原函數(shù)的被積函數(shù),并且其積分結(jié)果為的解析解的情況。運行所設計的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é)構復雜因此難以求出積分結(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積分界面計算二重積分。當所給函數(shù)是二元函數(shù),積分區(qū)間為體積時,便涉及到二重積分計算問題。這里采用矩形法計算二重積分。設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應用于設計積分界面,設計出了GUI積分界面,為未掌握數(shù)值積分理論知識和不了解Matlab-GUI相關知識的人提供了極大的方便,為他們提供可視化的積分結(jié)果。另外,該界面使得被積函數(shù)不管為哪種積分類型,都能計算出積分結(jié)果。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      [16] 石學軍. 基于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-),男,陜西合陽人,博士,副教授,碩士生導師,主要研究方向:統(tǒng)計學;

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

      TP 317

      A

      1006-7167(2017)01-0127-05

      猜你喜歡
      數(shù)值積分原函數(shù)界面設計
      《京燕兒》APP界面設計
      大眾文藝(2023年22期)2023-12-10 04:27:18
      基于計算前沿面的實時仿真數(shù)值積分并行構造及其數(shù)值模型解耦加速方法
      中醫(yī)養(yǎng)生APP界面設計
      大眾文藝(2022年19期)2022-10-19 08:18:18
      “共享員工”平臺界面設計
      包裝工程(2022年14期)2022-07-28 07:07:00
      幾類間斷點與原函數(shù)存在性的關系辨析
      卷宗(2020年34期)2021-01-29 05:36:24
      快速求解數(shù)值積分的花朵授粉算法
      軟件(2020年7期)2020-12-24 08:01:42
      面向智能手機的UI界面設計
      三角函數(shù)最值的求解類型及策略
      原函數(shù)是非初等函數(shù)的定積分的計算方法
      基于辛普生公式的化工實驗中列表函數(shù)的一種積分方法
      科技資訊(2016年27期)2017-03-01 18:27:09
      青龙| 陆川县| 尚志市| 石阡县| 澄城县| 嵊泗县| 和硕县| 桃源县| 威海市| 博客| 蒙山县| 缙云县| 玛沁县| 长汀县| 习水县| 房产| 高邮市| 罗定市| 西吉县| 通河县| 银川市| 阜新市| 绥宁县| 白朗县| 涞水县| 新干县| 七台河市| 邹平县| 怀集县| 巴中市| 得荣县| 图木舒克市| 德惠市| 阜宁县| 马山县| 荣昌县| 兴山县| 微山县| 万源市| 河南省| 广德县|