通過(guò)vc++調(diào)用

通過(guò)vc++調(diào)用

ID:20474009

大?。?7.00 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-10-12

通過(guò)vc++調(diào)用_第1頁(yè)
通過(guò)vc++調(diào)用_第2頁(yè)
通過(guò)vc++調(diào)用_第3頁(yè)
通過(guò)vc++調(diào)用_第4頁(yè)
通過(guò)vc++調(diào)用_第5頁(yè)
資源描述:

《通過(guò)vc++調(diào)用》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、通過(guò)VC++調(diào)用摘要:MATLAB語(yǔ)言是當(dāng)今國(guó)際上最流行的科學(xué)與工程計(jì)算編程語(yǔ)言,它起源于矩陣運(yùn)算,并已發(fā)展成一種高度集成的計(jì)算機(jī)語(yǔ)言。本文簡(jiǎn)單闡述了Matlab的基本功能和應(yīng)用,引入了有限元的基本概念及有限元分析的一般步驟。通過(guò)matlab與其它高級(jí)語(yǔ)言相比較,指出其在有限元分析應(yīng)用中的優(yōu)勢(shì)以及不足。在此基礎(chǔ)上,提出了Vc++與matlab混合編程。最后用一個(gè)例子演示vc++與matlab混合編程在有限元分析的過(guò)程。關(guān)鍵詞:MATLAB有限元混合編程一、引言matlab是美國(guó)Mathatlab遠(yuǎn)遠(yuǎn)優(yōu)于其它的高級(jí)編程語(yǔ)言,而且編程易學(xué)、直觀(guān),代碼非

2、常符合人們的思維習(xí)慣。另外matlab為用戶(hù)提供了豐富的atlab已在許多工業(yè)部門(mén),設(shè)計(jì)單位和科研機(jī)構(gòu)特別是高校得到廣泛的應(yīng)用。它主要應(yīng)用于自動(dòng)控制系統(tǒng)、數(shù)字信號(hào)處理,時(shí)間系列分析等方面,在工程有限元數(shù)值分析方面應(yīng)用甚少,也鮮見(jiàn)報(bào)道。有限元方法是利用計(jì)算機(jī)求解數(shù)學(xué)物理或工程實(shí)際中的微分方程問(wèn)題,主要是偏微分方程問(wèn)題的一種系統(tǒng)化的數(shù)值計(jì)算方法。有限元法是將物體劃分成有限個(gè)單元,這些單元之間通過(guò)有限個(gè)節(jié)點(diǎn)相互連接,單元看作是不可變得剛體,單元之間的力通過(guò)節(jié)點(diǎn)傳遞,然后利用能量原理建立各單元矩陣,最后組成總剛矩陣,求解線(xiàn)性方正組。二、Matlab在有限元

3、分析中的優(yōu)勢(shì)與不足進(jìn)行有限元分析,若用其他高級(jí)語(yǔ)言開(kāi)發(fā),如c,c++,frotran等,編程的工作量十分浩大,開(kāi)發(fā)周期很長(zhǎng),而利用matlab進(jìn)行有限元設(shè)計(jì)有以下優(yōu)點(diǎn):(1)語(yǔ)言簡(jiǎn)潔緊湊、使用方便靈活、庫(kù)函數(shù)及其豐富,幾乎包括有限元編程中的所有基礎(chǔ)程序。(2)可視化及強(qiáng)大的圖形功能。(3)程序代碼公開(kāi)(4)程序可移植性好。Matlab幾乎可以在各種機(jī)型和操作系統(tǒng)上運(yùn)行,所以在可移植性和可擴(kuò)充性上,matlab遠(yuǎn)優(yōu)越于其他的高級(jí)編程語(yǔ)言。Matlab語(yǔ)言具有強(qiáng)大的數(shù)值計(jì)算能力和視圖能力,其偏微分方程工具箱(PDEToolbox)提供了有限元求解的一個(gè)

4、強(qiáng)大而靈活的環(huán)境,并且有限元X格可做精細(xì)劃分以滿(mǎn)足要求。但是,和其他的高級(jí)語(yǔ)言相比,matlab程序的執(zhí)行速度較慢。VC++是當(dāng)前atlab與VC++進(jìn)行有效的混合編程,不僅能更好地發(fā)揮Matlab強(qiáng)大的功能,還能快速地進(jìn)行軟件開(kāi)發(fā),尤其是當(dāng)軟件開(kāi)發(fā)中需要實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)算法、圖形處理時(shí),更加高效。(1)將Matlab程序編譯成C/C++源文件并嵌入VC++;(2)在C/C++程序中利用Matlabengine調(diào)用Matlab函數(shù);(3)在C/C++程序中直接使用MatlabC/C++MathLibrary;(4)將.m文件編譯成*.dll文件嵌入到

5、VC++的程序中。其中matlab引擎是一組函數(shù),通過(guò)這組函數(shù),用戶(hù)可以在應(yīng)用程序中實(shí)現(xiàn)對(duì)matlab的控制。采用matlab引擎,可以在非matlab為主的應(yīng)用程序中使用matlab功能。Matlab采用mcc命令可以將大部分.m程序編譯成動(dòng)態(tài)連接庫(kù)供matlab調(diào)用;通過(guò)mex命令,可以將C語(yǔ)言程序編寫(xiě)成MATLAB可執(zhí)行程序。這兩種方式中,前一種方式是在vc應(yīng)用程序中調(diào)用matlab,后一種方式是在matlab程序中調(diào)用vc編寫(xiě)的程序。這兩種方式都不能脫離matlab環(huán)境,所有操作都是基于matlab實(shí)現(xiàn)的。與matlab引擎應(yīng)用程序和mat

6、lab可執(zhí)行程序相比,vc調(diào)用matlab數(shù)學(xué)庫(kù)和圖形函數(shù)執(zhí)行速度快,內(nèi)存需求少,可以發(fā)布給沒(méi)有matlab的用戶(hù)使用。但也有其不可避免的缺點(diǎn):(1)用戶(hù)不能夠在基于matlab數(shù)學(xué)庫(kù)和圖形庫(kù)的應(yīng)用程序中使用matlab的函數(shù)eval()和input();(2)不能調(diào)用圖形句柄系統(tǒng)的函數(shù);(3)Matlab中的一些方法在c/c++中得不到支持,如“;”,”[]”.四、通過(guò)在vc++環(huán)境中調(diào)用matlab引擎實(shí)現(xiàn)有限元分析本文采用matlab引擎的工作方式,在vc++6.0開(kāi)發(fā)環(huán)境下,調(diào)用MATLAB引擎函數(shù),繪制求解區(qū)域,進(jìn)行有限元分析,得出結(jié)果的

7、工作,并將結(jié)果保存到MAT文件中。1.準(zhǔn)備工作(1)vc++環(huán)境編譯文件設(shè)置。通過(guò)菜單Tools/Options,進(jìn)入Directorie頁(yè)面。為IncludeFiles和LibraryFiles添加以下路徑D:Matlab6p5externinclude(在Matlab的安裝路徑下)D:Matlab6p5externlibsvc60(在Matlab的安裝路徑下)(2)添加庫(kù)文件:通過(guò)菜單Projects

8、settings,進(jìn)入Link頁(yè)面,添加文件名libmx.lib、libmat.lib、libeng.lib(3)在使用engin

9、e函數(shù)的程序頭文件中包含如下兩個(gè)頭文件:#include"engine.h"#include2.在應(yīng)用程序中添加調(diào)用Mat

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。