化工應(yīng)用數(shù)學(xué)-_第1頁(yè)
化工應(yīng)用數(shù)學(xué)-_第2頁(yè)
化工應(yīng)用數(shù)學(xué)-_第3頁(yè)
化工應(yīng)用數(shù)學(xué)-_第4頁(yè)
化工應(yīng)用數(shù)學(xué)-_第5頁(yè)
已閱讀5頁(yè),還剩132頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE化工應(yīng)用數(shù)學(xué)——MATLAB與Origin在化學(xué)化工中的應(yīng)用湯吉海編南京工業(yè)大學(xué)化學(xué)化工學(xué)院2006年1月目錄PAGEIV目錄第一章緒論 11.1數(shù)學(xué)在化工中的重要作用 11.2數(shù)學(xué)模型 11.2.1數(shù)學(xué)模型 11.2.2建立數(shù)學(xué)模型的一般方法 11.2.3在化工工程中應(yīng)用數(shù)學(xué)的步驟 11.3求解數(shù)學(xué)模型的計(jì)算機(jī)工具 11.3.1求解數(shù)學(xué)模型的計(jì)算機(jī)工具 11.3.2MATLAB簡(jiǎn)介 11.3.3MATALB在化學(xué)化工中的應(yīng)用 1第二章MATLAB基礎(chǔ) 12.1MATLAB的圖形窗口界面 12.2用MATLAB做簡(jiǎn)單數(shù)學(xué)運(yùn)算 12.2.1如何做簡(jiǎn)單運(yùn)算 12.2.2獲取工作空間信息 12.2.3變量名稱限制及特別符號(hào) 12.2.4常見(jiàn)數(shù)學(xué)符號(hào) 12.2.5關(guān)于復(fù)數(shù) 12.3向量及矩陣的處理 12.3.1向量的處理 12.3.2向量的運(yùn)算 12.3.3矩陣的處理 12.4循環(huán)及運(yùn)算元 12.4.1for循環(huán) 12.4.2while循環(huán) 12.4.3if-else-end結(jié)構(gòu) 12.4.4script文件與function文件 12.4.5如何做文字處理 12.4.6關(guān)系運(yùn)算符〔relationoperation〕 12.4.7邏輯運(yùn)算符〔logicaloperator〕 12.5用MATLAB畫(huà)圖 12.5.1如何畫(huà)圖? 12.5.2定義圖示信息 12.5.3繪制特別圖形 12.5.4在同一視窗圖中繪多個(gè)圖 12.5.5在同一圖中繪制多條曲線 12.6MATLAB在化工中的簡(jiǎn)單應(yīng)用實(shí)例 12.6.1向量的應(yīng)用 12.6.2在復(fù)合反應(yīng)系統(tǒng)中的獨(dú)立反應(yīng) 12.6.3利用沉降法求液體粘度 12.6.4連續(xù)釜式反應(yīng)器的制定 1第三章線性方程組的數(shù)值求解 13.1解線性方程組的直接法 13.1.1高斯〔Gauss〕消去法 13.1.2直接三角分解法 13.1.3解三對(duì)角方程組的追趕法 13.2解線性方程組的迭代法 13.2.1雅可比〔Jacobi〕迭代法 13.22高斯-賽德?tīng)枴睪auss-Seidel〕迭代法 13.2.3松弛法 13.3利用MATLAB求解線性方程組 13.3.1求線性方程組的直接解法 13.3.2求線性方程組的其他解法 13.4線性方程組在化工中的應(yīng)用實(shí)例 13.4.1乙醇精餾過(guò)程的物料平衡 13.4.2六板汲取塔 1第四章非線性方程〔組〕的數(shù)值求解 14.1解非線性方程N(yùn)ewton迭代法 14.1.1Newton法 14.1.2弦截法 14.1.3拋物線法〔Muller法〕 14.2非線性方程組的解法 14.2.1Newton-Raphson法 14.2.2Broyden法 14.2.3Wegstein加速收斂法 14.3非線性方程〔組〕的MATLAB求解 14.3.1代數(shù)方程的圖解法 14.3.2多項(xiàng)式型方程的求根 14.3.2多項(xiàng)式型方程的準(zhǔn)解析解法 14.3.3一般非線性方程數(shù)值解 14.3.4Newton-Raphson法求解非線性方程 14.4線性方程組在化工中的應(yīng)用實(shí)例 14.4.1依據(jù)PVT關(guān)系計(jì)算摩爾體積 14.4.2多組分溶液體系的沸點(diǎn) 14.4.3絕熱連續(xù)攪拌釜式反應(yīng)器的轉(zhuǎn)化率 1第五章數(shù)值逼近方法 15.1插值 15.1.1拉格朗日插值 15.1.2分段低次插值 15.1.3三次樣條插值 15.2曲線擬合的最小二乘法 15.2.1線性最小二乘法 15.2.2非線性最小二乘法 15.3數(shù)值積分 15.3.1牛頓-柯特斯(Newton-Cotes)公式 15.2.2復(fù)化求積公式 15.4利用MATLAB進(jìn)行數(shù)值逼近 15.4.1插值 15.4.2曲線擬合 15.4.3數(shù)值積分 15.5數(shù)值逼近在化工中的應(yīng)用實(shí)例 15.4.1蒸氣壓關(guān)系式 15.4.2逆流操作的填料塔的總傳質(zhì)單元數(shù) 15.4.3Lewis法計(jì)算雙組分簡(jiǎn)單精餾塔的理論板數(shù) 1第六章常微分方程〔組〕的數(shù)值求解 16.1解常微分方程初值問(wèn)題的離散化方法 16.2解常微分方程初值問(wèn)題的歐拉法 16.2.1歐拉〔Euler〕方法 16.1.2改善的歐拉方法 16.3解常微分方程初值問(wèn)題的龍格-庫(kù)塔〔Runge-Kutta〕法 16.3.1Runge-Kutta法的基本思想 16.3.2Runge-Kutta法的構(gòu)造 16.3.3變步長(zhǎng)的Runge-Kutta法 16.4線性多步法 16.5常微分方程〔組〕初值問(wèn)題的MATLAB求解 16.6常微分方程組初值問(wèn)題在化工中的應(yīng)用實(shí)例 16.6.1管式反應(yīng)器的計(jì)算的溫度分布 16.6.2固定床反應(yīng)器內(nèi)轉(zhuǎn)化率及溫度沿床層高度的分布 1第七章科技繪圖與數(shù)據(jù)分析軟件Origin 17.1Origin入門(mén) 17.1.1Origin的窗口界面 17.1.2Origin的使用步驟 17.2數(shù)據(jù)工作表格 17.2.1輸入、編輯和儲(chǔ)存工作表格 17.2.2調(diào)整工作表格的基本操作 17.3Worksheet數(shù)據(jù)分析 17.3.1工作表格計(jì)算 17.3.2統(tǒng)計(jì) 17.4數(shù)據(jù)繪圖 17.4.1數(shù)據(jù)繪圖的基本術(shù)語(yǔ) 17.4.2單層二維圖的繪制 17.4.3繪制多層圖形 17.4.4用戶自定義函數(shù)繪圖 17.5數(shù)據(jù)圖的格式化 17.5.1改變數(shù)據(jù)圖型、格式、組的格式 17.5.2坐標(biāo)軸的調(diào)整 17.5.3文字及圖例說(shuō)明 17.6曲線擬合 17.6.1線性擬合 17.6.2非線性擬合 1學(xué)習(xí)題 1一MATLAB學(xué)習(xí)題 1二Origin學(xué)習(xí)題 1參照文獻(xiàn) 1第一章緒論P(yáng)AGE181

第一章緒論1.1數(shù)學(xué)在化工中的重要作用數(shù)學(xué)對(duì)化學(xué)工業(yè)的發(fā)展所起的作用非常龐大,沒(méi)有數(shù)學(xué)就沒(méi)有今天的化學(xué)工業(yè)。PurdueUniversity的DoraiswamiRamkrishna教授和UniversityofHouston的NealR.Amundson教授在AIChEJournal創(chuàng)刊50周年的特輯上的文章“MathematicsinChemicalEngineering:A50YearIntrospection〞〔AIChEJournal,2004Vol.50,No.1:7-23〕對(duì)化工數(shù)學(xué)50年的發(fā)展作了出色的回憶與展望。在文章中,作者具體描述了各種數(shù)學(xué)方法與化學(xué)工程個(gè)分支的互相關(guān)系,如圖1-1所示。從圖中可以看出,各種數(shù)學(xué)方法如線性代數(shù)、張量微積分、幾何和拓?fù)浞椒?、微分方程、離散數(shù)學(xué)、統(tǒng)計(jì)和隨機(jī)方法、邏輯人工智能方法在化工中的連續(xù)介質(zhì)理論、經(jīng)典和量子力學(xué)、傳遞過(guò)程、單元操作、化工過(guò)程工程、化學(xué)反應(yīng)工程與反應(yīng)動(dòng)力學(xué)、介觀理論、過(guò)程控制與辨識(shí)、離散系統(tǒng)分析等各個(gè)分支領(lǐng)域都有聯(lián)系,并且作者猜測(cè)還將對(duì)目前正在興起的納米系統(tǒng)和產(chǎn)品工程等新興研究領(lǐng)域起到推動(dòng)作用。圖1-1MathematicsinChemicalEngineering由美國(guó)5家主要科技協(xié)會(huì)〔AIChE,ACS,CCR,CMA,SOCMA〕、4個(gè)政府辦事處〔DOE,NIST,NSF,EPA〕以及近200家的工業(yè)、高等學(xué)校和政府的科技領(lǐng)先部門(mén)共同發(fā)起的美國(guó)化學(xué)工業(yè)的科技發(fā)展路線圖報(bào)告“TechnologyVision2021:ReportoftheU.S.ChemicalIndustry〞中,其中過(guò)程模型、控制、測(cè)量和優(yōu)化領(lǐng)域作為一個(gè)重要組成部分羅列了計(jì)算技術(shù)在新化學(xué)科學(xué)和工程技術(shù)中開(kāi)發(fā)領(lǐng)域,如圖1-2所示。從圖中可以看出,計(jì)算技術(shù)將在計(jì)算分子科學(xué)、過(guò)程模擬與模型、操作模擬與模型、大尺度集成與智能系統(tǒng)和計(jì)算流體力學(xué)5個(gè)領(lǐng)域發(fā)揮重大作用,這樣,化學(xué)工程師將能夠從分子、設(shè)備、過(guò)程、工廠的微觀到宏觀范圍的多尺度上真實(shí)的描述化工過(guò)程,從而使得化工過(guò)程的開(kāi)發(fā)與制定更加的方便、快捷和準(zhǔn)確。當(dāng)然,工過(guò)程的開(kāi)發(fā)與制定的模式也與現(xiàn)在不同。圖1-2Vision2021選擇的開(kāi)發(fā)領(lǐng)域UniversityofTexas的T.F.Edgar教授等在“Vision2021:ComputationalNeedsoftheChemicalIndustry〞中給出了21世紀(jì)的過(guò)程工程開(kāi)發(fā)與制定模式,如圖1-3所示。該圖描述了科學(xué)理論、實(shí)驗(yàn)和模擬在過(guò)程開(kāi)發(fā)中的互相聯(lián)系。在過(guò)程開(kāi)發(fā)中一般都需要一些實(shí)驗(yàn)〔如實(shí)驗(yàn)室小試、中試等〕,操作可以是連續(xù)的或間歇的。然后使用依據(jù)機(jī)理和適當(dāng)假設(shè)得到的模型對(duì)工廠進(jìn)行制定或優(yōu)化,并通過(guò)實(shí)驗(yàn)數(shù)據(jù)估計(jì)模型參數(shù)來(lái)矯正模型。圖1-321世紀(jì)的過(guò)程工程開(kāi)發(fā)與制定模式當(dāng)然,在科學(xué)研究中,模擬、實(shí)驗(yàn)與理論的關(guān)系也是互相聯(lián)系的,如圖1-4所示。由模擬所得到的結(jié)果,再經(jīng)科學(xué)實(shí)驗(yàn)得到的實(shí)驗(yàn)之互相比較,最后經(jīng)過(guò)理論的驗(yàn)證,便可以得到一個(gè)真正完美的結(jié)論。所以在近代科學(xué)研究中,必需以實(shí)驗(yàn)驗(yàn)證理論,以模擬輔助實(shí)驗(yàn),三者并行,如此便能達(dá)到相輔相成的效果。圖1-4模擬-實(shí)驗(yàn)-理論的關(guān)系1.2數(shù)學(xué)模型采納計(jì)算技術(shù)解決化學(xué)工程問(wèn)題的研究方法可以稱作計(jì)算化學(xué)工程,它包括三個(gè)要素:〔1〕描述真實(shí)體系的可靠的數(shù)學(xué)模型,這是計(jì)算化學(xué)工程的核心。關(guān)于不同的體系、不同的尺度的模擬,需要的模型也不同,例如過(guò)程模擬需要反應(yīng)模型或分開(kāi)模型;分子模擬需要量子力學(xué)、分子力學(xué)或統(tǒng)計(jì)力學(xué)模型;計(jì)算流體力學(xué)則需要流體力學(xué)模型?!?〕高效率的計(jì)算方法。主要是能夠處理非常大的模型的非線性算法?!?〕強(qiáng)大的計(jì)算機(jī)硬件結(jié)構(gòu)。需要能夠適應(yīng)不同時(shí)間尺度和空間尺度的大規(guī)模計(jì)算的超級(jí)并行計(jì)算機(jī)這里我們首先討論建立數(shù)學(xué)模型的基本方法,下節(jié)簡(jiǎn)要介紹實(shí)現(xiàn)計(jì)算方法的計(jì)算工具。1.2.1數(shù)學(xué)模型一切客觀存在的事物及其運(yùn)動(dòng)狀態(tài)統(tǒng)稱為實(shí)體或?qū)ο?、?duì)實(shí)體特征及變化規(guī)律的近似描述或抽象就是模型,用模型描述實(shí)體的過(guò)程稱為建?;蚰P突?。數(shù)學(xué)模型是系統(tǒng)的某種特征的本質(zhì)的數(shù)學(xué)表達(dá)式,即用數(shù)學(xué)式子〔如函數(shù)式、代數(shù)方程、微分方程、微積分方程、差分方程等〕來(lái)描述〔表達(dá)、模擬〕所研究的客觀對(duì)象或系統(tǒng)在某一方面的存在規(guī)律。1.2.2建立數(shù)學(xué)模型的一般方法一個(gè)理想的數(shù)學(xué)模型必需是既能反映系統(tǒng)的全部主要特征,同時(shí)在數(shù)學(xué)上又易于處理。即它滿足以下兩點(diǎn)。〔1〕可靠性:在同意的誤差值圍內(nèi),它能反映出該系統(tǒng)的有關(guān)特性的內(nèi)在聯(lián)系?!?〕適用性:它須易于數(shù)學(xué)處理和計(jì)算、復(fù)雜模型的求解是困難的,同時(shí),復(fù)雜模型也會(huì)因簡(jiǎn)化不當(dāng)而將一些非本質(zhì)的東西帶入模型,使得模型不能真正反映系統(tǒng)的本質(zhì)。因此,模型既要準(zhǔn)確,又要求它簡(jiǎn)單。建立模型的方法大致有兩種:實(shí)驗(yàn)歸納法和理論分析法。最小二乘法就是典型的實(shí)驗(yàn)歸納法。由理論分析建立數(shù)學(xué)模型的步驟有三步:〔1〕通過(guò)對(duì)系統(tǒng)的仔細(xì)觀察分析,依據(jù)問(wèn)題的性質(zhì)和精度的要求,作出合理性假設(shè)、簡(jiǎn)化。抽象出系統(tǒng)的物理模型?!?〕在此基礎(chǔ)上確定輸入、輸出變量和模型參數(shù),建立數(shù)學(xué)模型。一般來(lái)說(shuō),在不降低精度的條件下。模型變量的數(shù)目越少越好。通常可以這樣處理來(lái)減少變量的數(shù)量,將相似變量歸結(jié)為一個(gè)變量;將對(duì)輸出影響小的變量視為常數(shù)。〔3〕因檢驗(yàn)和修正所得模型。檢驗(yàn)?zāi)P偷氖侄问菍⒛P陀?jì)算結(jié)果與實(shí)驗(yàn)結(jié)果做對(duì)比,修正模型時(shí),可從以下幾個(gè)方面合計(jì)模型的缺陷:模型含有無(wú)關(guān)或關(guān)系不大的變量;模型遺漏了重要的有關(guān)變量;模型參數(shù)不準(zhǔn)確;數(shù)學(xué)模型的結(jié)構(gòu)形式有錯(cuò);模型反映系統(tǒng)的準(zhǔn)確度不夠。1.2.3在化工工程中應(yīng)用數(shù)學(xué)的步驟數(shù)學(xué)應(yīng)用的第一步是數(shù)學(xué)建模,即通過(guò)調(diào)查,收集數(shù)據(jù)、資料,觀察和研究其固有的特征和內(nèi)在規(guī)律,抓住問(wèn)題的主要矛盾,提出假設(shè),經(jīng)過(guò)抽象和簡(jiǎn)化,建立反映實(shí)際問(wèn)題的數(shù)量關(guān)系,也就是數(shù)學(xué)模型;然后,再運(yùn)用數(shù)學(xué)的方法和技巧去分析和解決實(shí)際問(wèn)題。這時(shí),對(duì)數(shù)學(xué)模型的研究就相當(dāng)于對(duì)實(shí)際系統(tǒng)的研究,改變各種參數(shù)進(jìn)行計(jì)算,就相當(dāng)子在實(shí)際系統(tǒng)中進(jìn)行各種試驗(yàn)。這種方法被稱為數(shù)學(xué)模擬。由于模擬計(jì)算需在計(jì)算機(jī)上進(jìn)行,因而,也叫計(jì)算機(jī)模擬,或計(jì)算機(jī)仿真。由于這種方法法較常規(guī)實(shí)驗(yàn)研究方法有著無(wú)法比擬的優(yōu)點(diǎn)〔易于實(shí)現(xiàn)、容易操作、速度快、成本低、安全、可做靈敏度分析等〕,因而,受到廣泛重視,并已在化工過(guò)程開(kāi)發(fā)、過(guò)程制定、過(guò)程優(yōu)化、過(guò)程控制等許多方面發(fā)揮重要作用。在其他學(xué)科中的應(yīng)用也非常的廣泛。1.3求解數(shù)學(xué)模型的計(jì)算機(jī)工具1.3.1求解數(shù)學(xué)模型的計(jì)算機(jī)隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,關(guān)于數(shù)學(xué)模型的求解也有了多種方法,一種最便捷的方法是采納針對(duì)特定模型體系的專有商業(yè)軟件沒(méi)這些商業(yè)軟件的實(shí)質(zhì)是數(shù)學(xué)模型和計(jì)算方法的有機(jī)集成。例如在化學(xué)工程領(lǐng)域的一些典型軟件有:〔1〕過(guò)程模擬:ASPENPLUS、PRO/II、CHEMCAD、gPROMS等〔2〕分子模擬:Gaussian、Cerius2、MaterialsStudio、HyperChem、CHEMOFFICE〔3〕計(jì)算流體力學(xué):CFX、FLUENT、StarCD等采納商業(yè)專有軟件的優(yōu)勢(shì)是技術(shù)成熟、系統(tǒng)穩(wěn)定、資料豐富、技術(shù)交流方便。其缺陷也十分缺陷,那就是價(jià)格高,解決對(duì)象為已有的成熟的工程問(wèn)題,缺少新的研究課題的數(shù)學(xué)模型,因此,關(guān)于科學(xué)研究領(lǐng)域,通過(guò)建模、編程解決新的模型問(wèn)題成為必要。編程求解數(shù)學(xué)模型就需要能夠?qū)崿F(xiàn)數(shù)值計(jì)算的計(jì)算機(jī)工具,目前可以分為兩大類:〔1〕程序制定語(yǔ)言。典型的程序制定語(yǔ)言和對(duì)應(yīng)的開(kāi)發(fā)工具有:BASIC〔開(kāi)發(fā)工具有VisualBASIC);PASCAL〔開(kāi)發(fā)工具有Delphi〕;C/C++〔開(kāi)發(fā)工具有VisualC++、C++Builder)、FORTRAN〔開(kāi)發(fā)工具有CompacVisualFortran、IntelVisualFortran)〔2〕數(shù)學(xué)軟件包。典型的數(shù)學(xué)軟件包由用于數(shù)學(xué)演算、符號(hào)計(jì)算和數(shù)值計(jì)算的Mathematica、MathCAD、Maple和MATAB等;用于統(tǒng)計(jì)分析的SAS、SPSS、STATISTCA等。程序制定語(yǔ)言的特點(diǎn)是執(zhí)行效率高、有豐富的數(shù)值計(jì)算源程序或庫(kù)文件,如NumericalRecipes、IMSL庫(kù)以及網(wǎng)絡(luò)資源NetLib。但是對(duì)編程能力的要求高。數(shù)學(xué)軟件包的特點(diǎn)是算法齊全,計(jì)算、圖形可視化和符號(hào)運(yùn)算功能強(qiáng)大,且簡(jiǎn)單易學(xué)、擴(kuò)大性好,也支持與其他高級(jí)語(yǔ)言混合編程。既是專業(yè)數(shù)學(xué)軟件,又是一種編程語(yǔ)言,編程效率高,且代碼公開(kāi)。內(nèi)建豐富的函數(shù)和工具箱。關(guān)于數(shù)值計(jì)算的計(jì)算機(jī)工具的選擇,當(dāng)前已經(jīng)從程序制定語(yǔ)言逐步向使用數(shù)學(xué)軟件包過(guò)渡。1996年,UniversityofTexasatAustin的Kantor和Edgar兩位教授提出傳統(tǒng)計(jì)算機(jī)程序制定不是工業(yè)化學(xué)工程師的重要技能,由于軟件維護(hù)的困難性,許多公司告訴他們的工程師不要開(kāi)發(fā)獨(dú)立的軟件。Dahm教授的調(diào)查說(shuō)明美國(guó)84%的化工系講授程序制定的語(yǔ)言由傳統(tǒng)的FORTRAN、C/C++向更高水平的開(kāi)發(fā)環(huán)境如MAPLE、MATLAB等轉(zhuǎn)變?;瘜W(xué)工程本科生所需要的數(shù)學(xué)應(yīng)用軟件調(diào)查結(jié)果:PLOYMATHMATLABMAPLEMATHCADEZ-SolverSpreadsheetsMathematicaOther37%65%24%37%5%82%13%15%從結(jié)果中可以看出在化工領(lǐng)域中應(yīng)用Spreadsheets和MATLAB的學(xué)校占絕大多數(shù)。Swinnea教授從43份調(diào)查問(wèn)卷中說(shuō)明大部分的化工系講授不只一門(mén)程序制定語(yǔ)言,其分布如下:C/C++FORTRANMATLABExcelVBMATHCADOthe為學(xué)習(xí)化學(xué)工程的同學(xué)來(lái)說(shuō),為了應(yīng)付在工作中可能碰到的更多復(fù)雜問(wèn)題,除了數(shù)學(xué)工具外,還需要掌握其他的軟件,美國(guó)高校的計(jì)算中心一般都提供相當(dāng)數(shù)量的各類軟件供同學(xué)選擇使用。如Colorado大學(xué)化工系本科階段接觸的軟件包括:Office、MATHCAD、MATLAB、MATHEMATICA、Simulink、Polymath、EZ-Solver、HYSYS、ASPEN+、Minitab、ControlStation、Labview、Ladsim、Autocad。UniversityofTexasatAustin化工系課程中所用計(jì)算機(jī)軟件有:物料衡算和能量衡算:EZ-Solver,Polymath熱力學(xué):Mathcad,Polymath等分開(kāi):Aspen過(guò)程控制:Matlab、Excel化學(xué)反應(yīng)工程:Polymath、Octave產(chǎn)品與過(guò)程制定:Aspen、Hysys、Chemcad、Pro/II統(tǒng)計(jì):JMP、SAS、Minitab從中可以看出,不計(jì)Excel、CAD,一個(gè)美國(guó)化學(xué)工專業(yè)的同學(xué)需會(huì)用3個(gè)以上軟件。由于課程學(xué)時(shí)的限制,本課程選擇MATLAB和Origin兩個(gè)軟件作為本課程的教學(xué)用計(jì)算機(jī)工具。1.3.2MATLAB簡(jiǎn)介1978年,美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任CleveMoler教授使用FORTRAN編寫(xiě)了用于一組調(diào)用LINPACK和EISPACK程序庫(kù)的接口,用于矩陣、線性代數(shù)和數(shù)值分析,這就是MATLAB。它是取MATrixLABoratory〔矩陣實(shí)驗(yàn)室〕兩個(gè)單詞的前三個(gè)字符組合而成的。它是一種科學(xué)計(jì)算軟件,專門(mén)以矩陣的形式處理數(shù)據(jù)。1984年,斯坦福大學(xué)的JackLittle使用C重寫(xiě)MATLAB內(nèi)核,軟件兼具數(shù)值分析和數(shù)據(jù)可視化兩大功能,并成立了MathWorks公司,將MATLAB軟件商業(yè)化并推向市場(chǎng)。支持Unix、Linux、Windows多種操作平臺(tái)系統(tǒng)。如今,MATLAB已經(jīng)成為具備計(jì)算機(jī)程序制定語(yǔ)言〔computerprogramminglanguage〕和交互軟件環(huán)境〔aninteractivesoftwareenvironment〕的高效率的計(jì)算機(jī)語(yǔ)言。它將高性能的數(shù)值計(jì)算和可視化集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和制定工作,而且利用MATLAB產(chǎn)品的開(kāi)放式結(jié)構(gòu),可以非常容易地對(duì)MATLAB的功能進(jìn)行擴(kuò)充,從而在不斷深入對(duì)問(wèn)題熟悉的同時(shí),不斷完善MATLAB產(chǎn)品以提升產(chǎn)品自身的競(jìng)爭(zhēng)能力。目前MATLAB產(chǎn)品族廣泛用于數(shù)值分析;數(shù)值和符號(hào)計(jì)算;工程與科學(xué)繪圖;圖形用戶界面制定、控制系統(tǒng)的制定與仿真;數(shù)字圖像處理;數(shù)字信號(hào)處理;通訊系統(tǒng)制定與仿真;財(cái)務(wù)與金融工程等領(lǐng)域。MATLAB產(chǎn)品家族圖1-5MATLAB家族產(chǎn)品框架的框架結(jié)構(gòu)如圖1-5所示。其中MATLAB是MATLAB產(chǎn)品家族的基礎(chǔ),它提供了基本的數(shù)學(xué)算法,例如矩陣運(yùn)算、數(shù)值分析算法,可直接調(diào)用600多個(gè)內(nèi)建MATLAB函數(shù)。MATLAB集成了2D和3D圖形功能,以完成相應(yīng)數(shù)值可視化的工作。并且提供了一種交互式的高級(jí)編程語(yǔ)言——M語(yǔ)言,利用M語(yǔ)言可以通過(guò)編寫(xiě)腳本或者函數(shù)文件實(shí)現(xiàn)用戶自己的算法。圖1-5MATLAB家族產(chǎn)品框架MATLABCompiler是一種編譯工具,它能夠?qū)⒛切├肕ATLAB提供的編程語(yǔ)言——M語(yǔ)言編寫(xiě)的函數(shù)文件編譯生成為函數(shù)庫(kù)、可執(zhí)行文件COM組件等等。這樣就可以擴(kuò)大MATLAB功能,使MATLAB能夠同其他高級(jí)編程語(yǔ)言例如C/C++語(yǔ)言進(jìn)行混合應(yīng)用,取長(zhǎng)補(bǔ)短,以提升程序的運(yùn)行效率,豐富程序開(kāi)的手段。利用M語(yǔ)言還開(kāi)發(fā)了相應(yīng)的MATLAB專業(yè)工具箱函數(shù)供用戶直接使用。這些工具箱應(yīng)用的算法是開(kāi)放的可擴(kuò)大的,用戶不僅可以查看其中的算法,還可以針對(duì)一些算法進(jìn)行修改,甚至同意開(kāi)發(fā)自己的算法擴(kuò)充工具箱的功能。目前MATLAB產(chǎn)品的工具箱有四十多個(gè),分別涵蓋了數(shù)據(jù)獲取、科學(xué)計(jì)算〔如偏微分方程、最優(yōu)化、數(shù)理統(tǒng)計(jì)、樣條函數(shù)、神經(jīng)網(wǎng)絡(luò)等〕、控制系統(tǒng)制定與分析、數(shù)字信號(hào)處理、數(shù)字圖像處理、金融財(cái)務(wù)分析以及生物遺傳工程等專業(yè)領(lǐng)域。Simulink是基于MATLAB的框圖制定環(huán)境,可以用來(lái)對(duì)各種動(dòng)態(tài)系統(tǒng)進(jìn)行建模、分析和仿真,它的建模范圍廣泛,可以針對(duì)任何能夠用數(shù)學(xué)來(lái)描述的系統(tǒng)進(jìn)行建模,例如航空航天動(dòng)力學(xué)系統(tǒng)、衛(wèi)星控制制導(dǎo)系統(tǒng)、通訊系統(tǒng)、船舶及汽車等等,其中了包括連續(xù)、離散,條件執(zhí)行,事件驅(qū)動(dòng),單速率、多速率和混雜系統(tǒng)等等。Simulink提供了利用鼠標(biāo)拖放的方法建立系統(tǒng)框圖模型的圖形界面,而且Simulink還提供了豐富的功能塊以及不同的專業(yè)模塊集合,利用Simulink幾乎可以做到不書(shū)寫(xiě)一行代碼完成整個(gè)動(dòng)態(tài)系統(tǒng)的建模工作。Stateflow是一個(gè)交互式的制定工具,它基于有限狀態(tài)機(jī)的理論,可以用來(lái)對(duì)復(fù)雜的事件驅(qū)動(dòng)系統(tǒng)進(jìn)行建模和仿真。Stateflow與Simulink和MATLAB緊密集成,可以將Stateflow創(chuàng)建的復(fù)雜控制邏輯有效地結(jié)合到Simulink的模型中。在MATLAB產(chǎn)品族中,自動(dòng)化的代碼生成工具主要有Real-TimeWorkshop〔RTW〕和StateflowCoder,這兩種代碼生成工具可以直接將Simulink的模型框圖和Stateflow的狀態(tài)圖轉(zhuǎn)換成高效優(yōu)化的程序代碼。利用RTW生成的代碼簡(jiǎn)潔、可靠、易讀。目前RTW支持生成標(biāo)準(zhǔn)的C語(yǔ)言代碼,并且具備了生成其他語(yǔ)言代碼的能力。整個(gè)代碼的生成、編譯以及相應(yīng)的目標(biāo)下載過(guò)程都是自動(dòng)完成的,用戶需要做得僅僅使用鼠標(biāo)點(diǎn)擊幾個(gè)按鈕即可。MathWorks公司針對(duì)不同的實(shí)時(shí)或非實(shí)時(shí)操作系統(tǒng)平臺(tái),開(kāi)發(fā)了相應(yīng)的目標(biāo)選項(xiàng),配合不同的軟硬件系統(tǒng),可以完成快速控制原型〔RapidControlPrototype〕開(kāi)發(fā)、硬件在回路的實(shí)時(shí)仿真〔Hardware-in-Loop〕、產(chǎn)品代碼生成等工作。另外,MATLAB開(kāi)放性的可擴(kuò)充體系同意用戶開(kāi)發(fā)自定義的系統(tǒng)目標(biāo),利用Real-TimeWorkshopEmbeddedCoder能夠直接將Simulink的模型轉(zhuǎn)變成效率優(yōu)化的產(chǎn)品級(jí)代碼。代碼不僅可以是浮點(diǎn)的,還可以是定點(diǎn)的。MATLAB開(kāi)放的產(chǎn)品體系使MATLAB成為了諸多領(lǐng)域的開(kāi)發(fā)首選軟件,并且,MATLAB還具有300余家第三方合作伙伴,分布在科學(xué)計(jì)算、機(jī)械動(dòng)力、化工、計(jì)算機(jī)通訊、汽車、金融等領(lǐng)域。接口方式包括了聯(lián)合建模、數(shù)據(jù)共享、開(kāi)發(fā)流程銜接等等。MATLAB結(jié)合第三方軟硬件產(chǎn)品組成了在不同領(lǐng)域內(nèi)的完整解決方案,實(shí)現(xiàn)了從算法開(kāi)發(fā)到實(shí)時(shí)仿真再到代碼生成與最終產(chǎn)品實(shí)現(xiàn)的完整過(guò)程。1.3.3MATALB在化學(xué)化工中的應(yīng)用隨著MATLAB的應(yīng)用普及范圍越來(lái)越廣,國(guó)外專家學(xué)者的化工專著中也越來(lái)越多的以MATLAB為計(jì)算平臺(tái),代替FORTRAN。下面就是近年來(lái)出版化工類專著中采納MATLAB軟件作為計(jì)算平臺(tái)的代表。信息來(lái)自MathWorks公司官方網(wǎng)站。://mathworks/support/books/index_by_category.html?category=0〔1〕數(shù)值計(jì)算AlkisConstantinides,navidMostoufi.NumericalMethodsforChemicalEngineeringwithMATLABApplications.PrenticeHall,1999MichaelB.Cutlip&MordechaiShacham.ProblemSolvinginChemicalEngineeringwithNumericalMethods,PrenticeHall,1999〔2〕化工過(guò)程動(dòng)態(tài)模擬和控制W.FredRamirez.ComputationalMethodsforProcessSimulation.Butterworth-Heinemann,1997ColemanBrosilow,BahuJoseph.TechniquesofModel-BasedControl.PrenticeHall,2002FrancisJ.DoyleIII,EdwardP.Gatzke.ProcessControlModules:ASoftwareLaboratoryforControlsDesign.PrenticeHall,2000DaleE.Seborg,ThomasF.Edgar&DuncanA.Mellichamp.ProcessDynamicsandControl,2e.JohnWiley&Sons,Inc.,2004PaoC.Chau.ProcessControl:AFirstCoursewithMATLAB.Cambridge〔3〕化工熱力學(xué)HunKim,Moon-GapKim,Hak-YoungLee,Young-GuYeo&Sung-WooHam.ThermodynamicsinChemicalEngineeringUsingMATLAB.A-JinPublishingCo.,Ltd.,2002〔4〕傳遞過(guò)程與單元操作JamesO.Wilkes.FluidMechanicsforChemicalEngineers.PrenticeHall,1999WilliamJ.

Thomson.IntroductiontoTransportPhenomena.PrenticeHall,2000Jaime

Benitez.PrinciplesandModernApplicationsofMassTransferOperations.JohnWiley&Sons,Inc.,2002〔5〕化學(xué)反應(yīng)工程FoglerHS.ElementsofChemicalReactionEngineering.3e,PrenticeHall,1999AmoL?we.ChemischeReaktionstechnikmitMATLABundSimulink(ChemicalReactionTechniqueswithMATLABandSimulink).Wiley-VCHVerlagGmbH,2001〔6〕吸附平衡和吸附動(dòng)力學(xué)DuongD.Do.AdsorptionAnalysis:EquilibriaandKinetics.Imperial〔7〕化學(xué)計(jì)量學(xué)RichardG.Brereton.Chemometrics:DataAnalysisfortheLaboratoryandChemicalPlant.JohnWiley&Sons,Inc.,2003Foo-timChau,Yi-zengLiang,JunbinGao&Xue-guangShao.Chemometrics:FromBasicstoWaveletTransform.JohnWiley&Sons,Inc.,2004第二章MATLAB基礎(chǔ)

第二章MATLAB基礎(chǔ)2.1MATLAB的圖形窗口界面MATLAB的啟動(dòng)可以單擊桌面的圖標(biāo)“MATLAB7.0”或者從開(kāi)始菜單的“MATLAB7.0”程序組的“MATLABCommandwindowCommandwindow(命令)窗口CommandHistory(命令歷史)窗口CurrentDirectoy(當(dāng)前日錄)瀏覽器Workspace(工作空間)瀏覽器工具欄菜單欄LaunchPad(發(fā)射臺(tái))窗口圖2-1MATLAB的桌面平臺(tái)〔1〕命令窗口如圖2-2所示。其中“>>〞為運(yùn)算提示符,表示MATLAB正處在準(zhǔn)備狀態(tài)。當(dāng)在提示符后輸入一段運(yùn)算式并按“回車〔Enter〕〞鍵后,MATLAB將給出計(jì)算結(jié)果,然后再次進(jìn)入準(zhǔn)備狀態(tài)?!?〕歷史命令窗口如圖2-3所示。在默認(rèn)設(shè)置下,歷史窗口會(huì)保留自安裝起所有命令的歷史紀(jì)錄,并說(shuō)明使用時(shí)間,這方便了使用者的查詢。而且雙擊某一行命令,即在命令窗口中執(zhí)行命令?!?〕當(dāng)前目錄窗口如圖2-4所示,在該窗口中可顯示或改變當(dāng)前目錄,另外還可以顯示當(dāng)前目錄下的文件并提供搜索功能。〔4〕工作空間窗口如圖2-5所示,它是MATLAB的重要組成部分。在該窗口中將顯示所有目前內(nèi)存中的MATLAB變量的變量名、數(shù)學(xué)結(jié)構(gòu)、字節(jié)數(shù)以及類型。并且可以創(chuàng)建或刪除變量以及給變量賦值。其功能還包括將變量數(shù)據(jù)儲(chǔ)存為“.mat〞文件,以及圖形化顯示某個(gè)變量的所有列的數(shù)據(jù)。圖2-6為數(shù)組編輯器〔ArrayEditor〕窗口〔5〕發(fā)射臺(tái)窗口的部分命令如圖2-7所示,這是自MATLAB6.0版本之后才有的功能,用來(lái)說(shuō)明MathWorks公司產(chǎn)品的工具包、演示、幫助系統(tǒng)以及Web信息瀏覽鏈接。圖2-2命令窗口圖2-3歷史窗口圖2-4當(dāng)前目錄窗口圖2-5工作空間窗口圖2-6數(shù)組編輯器窗口圖2-7發(fā)射臺(tái)窗口MATLAB自帶了一個(gè)文本編輯器用于編程程序語(yǔ)言,如圖2-8所示,該編輯器除具有一般文本編輯功能外,還能夠?qū)ψ址恢枚ㄎ?、?duì)MATLAB的編程語(yǔ)法規(guī)則中的關(guān)鍵字等進(jìn)行高亮顯示,方便程序的書(shū)寫(xiě)與調(diào)試。同時(shí)改編輯器也具備了程序調(diào)試器〔Debbuger〕的功能,如設(shè)置斷點(diǎn),跟蹤程序執(zhí)行步驟等功能一應(yīng)俱全。此外,MATLAB提供了非常詳盡和全面的聯(lián)機(jī)幫助,如圖2-9所示,它可以稱得上是一本MATLAB的百科全書(shū)??梢酝ㄟ^(guò)幫助主題〔Contents〕、索引〔Index〕和搜索〔Search〕三種方法定位所需查看的幫助內(nèi)容。圖2-8編輯器〔Editor〕窗口圖2-9聯(lián)機(jī)幫助窗口2.2用MATLAB做簡(jiǎn)單數(shù)學(xué)運(yùn)算2.2.1如何做簡(jiǎn)單運(yùn)算MATLAB的簡(jiǎn)單運(yùn)算符有+、–、×、÷和^,分別用于加、減、乘、除和乘方運(yùn)算,運(yùn)算次序?yàn)椋篰、×、/、+、-。例2-1:五只雞和兩只兔,共有幾條腿?>>chicken=5;>>rabbit=2;>>legs=chicken*2+rabbit*4legs=18例2-2:求?>>exp(-3)*cos(3)/asin(0.5)ans=-0.0941例2-3:求=?>>2^3ans=82.2.2獲取工作空間信息who%顯示變量名稱whos%顯示變量名稱及其大小格式dir%顯示所有文件what%顯示*.m和*.mat文件clc%清除屏幕clear%清除變量clearall%清除所有變量clearab%清除變量a和b2.2.3變量名稱限制及特別符號(hào)1、變量名稱限制〔1〕變量名稱小于等于19個(gè)字符;〔2〕第一個(gè)字符不能為數(shù)字;〔3〕字符大小寫(xiě)表示不同意義;c123〔o〕4c123〔×〕c_123〔o〕c-123〔×〕2、特別符號(hào)%注解;;不顯示執(zhí)行結(jié)果;K連續(xù)。2.2.4常見(jiàn)數(shù)學(xué)符號(hào)1. abs(x)%取絕對(duì)值2. acos(x)%3. acosh(x)%4. angle(x)%復(fù)數(shù)的角度5. asin(x)%6. atan(x)%7. atanh(x)%8. ceil(x)%取最接近且大于原數(shù)的正數(shù)〔無(wú)條件進(jìn)入〕9. floor(x)%取最接近且小于原數(shù)的正數(shù)10.round(x)%四舍五入〔取至整數(shù)為止〕11.fix(x)%無(wú)條件舍去12.conj(x)%共軛復(fù)數(shù)13.cosh(x)%cosine,hyperbolic,function14.exp(x) %exponential:15.real(x) %取實(shí)部,imag(x)取虛部16.log(x) %17.log10(x)%18.rem(x,y)%x÷y的余數(shù)19.sign(x)%取正負(fù)號(hào)20.sin(x)21.sinh(x)22.sqrt(x) %23.tan(x)24.tanh(x)例2-4:求解分析>>a=1;b=2;c=3;>>x1=(-b+sqrt(b^2-4*a*c))/(2*a)x1=-1.0000+1.4142i>>x2=(-b-sqrt(b^2-4*a*c))/(2*a)x2=-1.0000-1.4142i2.2.5關(guān)于復(fù)數(shù)1、內(nèi)定符號(hào)i和j>>x=1+cos(2)*ix=1.0000-0.4161i假設(shè)i之前是數(shù)字則直接接i;假設(shè)不是數(shù)字則要用“*〞號(hào).2、復(fù)數(shù)大小及角度abs(x)angle(x)3、實(shí)部及虛部real(x)imag(x)4、復(fù)數(shù)之共軛復(fù)數(shù)conj(x)5、幫助lookforcomplex%將所有與complex相關(guān)之指令列出helpconj%說(shuō)明conj的用法2.3向量及矩陣的處理2.3.1向量的處理1、向量的格式>>x=[123]x=123>>x=[pi/2sqrt(2)2]x=1.57081.41422.00002、向量的定義方法〔1〕x=[123]%1×3向量〔2〕x=1:1:3orx=1:3%增量為1x=起始值:增量:終值〔3〕0~取十個(gè)點(diǎn)>>x=0:pi/9:pix=00.34910.69811.04721.39631.74532.09442.44352.79253.1416另外一種輸出格式則依據(jù)窗口大小調(diào)整每行的數(shù)值個(gè)數(shù),如:x=Columns1through600.34910.69811.04721.39631.7453Columns7through102.09442.44352.79253.1416>>x=linspace(0,pi,10)x=00.34910.69811.04721.39631.74532.09442.44352.79253.1416注意:x=linspace(起始值,增量,終值)(4)100~102取11個(gè)點(diǎn)>>x=logspace(0,2,11)x=1.00001.58492.51193.98116.309610.000015.848925.118939.810763.0957100.00003、如何取出向量各位置的值>>x=[12sqrt(2)];>>x(3)ans=1.41422.3.2向量的運(yùn)算1、向量的加法>>x=[123];>>a=x+1%向量與數(shù)量的加法a=234>>1-xans=0-1-2>>x=[123];>>y=cos(x)%注意:y為向量y=0.5403-0.4161-0.9900>>x=[123];%向量與向量的加法>>y=[456];>>x+yans=579>>z=[-1-3];>>x+z???Errorusing==>plusMatrixdimensionsmustagree.注意:x+z%向量大小不一致,無(wú)法計(jì)算。2、向量的乘法〔1〕數(shù)量乘向量>>x=[123];>>pi*xans=3.14166.28329.4248〔2〕向量乘向量>>x=[123];>>y=[456];>>x.*yans=410183、向量的除法與乘法相同,其中x./y表示,x.\y表示。除號(hào)“/〞之前的點(diǎn),表示向量?jī)?nèi)各數(shù)值分別做除的計(jì)算。4、向量的合并>>x=[123321];>>y=[45];>>a=[xy]a=12332145>>b=[a(1:2:5)101]b=1321012.3.3矩陣的處理1、矩陣的輸入例2-5:輸入方法1:>>A=[123456789]A=123456789方法2:>>A=[123;456;789]A=1234567892、矩陣的擴(kuò)增,>>A=[123;456;789]A=123456789>>R=[111213]R=111213>>B=[A;R]B=123456789111213>>C=[A;R']???Errorusing==>vertcatAllrowsinthebracketedexpressionmusthavethesamenumberofcolumns.>>a=[12;34];>>a[3,3]=1;%A在〔3,3〕位置的值為1???a[3,3]=1;%A在〔3,3〕位置的值為1|Error:Unbalancedormisusedparenthesesorbrackets.3、如何從矩陣中取值或取出一個(gè)子矩陣>>A=[123;456;789]A=123456789>>X=A(3,2)%X=A(row,column)X=8>>B=A(1:2,1:2)B=1245>>C=A(:,1:2)%C=A(全取,第一行至第二行)C=124578>>D=A(2:3,:)D=456789>>E=A(1:2,[13])E=13464、矩陣轉(zhuǎn)置,,,'單純轉(zhuǎn)置;B.'復(fù)數(shù)轉(zhuǎn)置為共軛矩陣。5、取出矩陣的大小維度[r,c]=size(A),其中r=列數(shù);c=行數(shù)>>A=[12;34;56];>>[r,c]=size(A)r=3c=2n=length(v),顯示向量的長(zhǎng)度或矩陣的行數(shù)。將矩陣轉(zhuǎn)變?yōu)橄蛄康拿钊缦拢?gt;>A=[12;34;56];>>B=A(:)B=135246>>n=length(B)n=6將矩陣的某行、某列消除例2-6:將矩陣的第2列全部取消,變?yōu)?gt;>A=[12;34;56];>>A(2,:)=[]A=12566、矩陣運(yùn)算相關(guān)指令〔1〕det(A) %行列式值〔2〕inv(A) %反矩陣〔3〕eig(A) %特征值〔4〕rank(A) %秩、階數(shù)〔5〕cond(A) %2-norm條件數(shù)〔6〕poly(A) %特征多項(xiàng)式〔7〕polyvalm(v,A) %矩陣多項(xiàng)式求值〔8〕expm(A) %〔9〕[r,c]=size(A)〔10〕n=length(v)〔11〕flipud(a) %上下顛倒〔12〕fliplr(a) %左右顛倒〔13〕rot90(a) %旋轉(zhuǎn)90度(逆時(shí)針)〔14〕reshape(a,m,n) %重定矩陣行列數(shù)〔15〕diag(v) %取對(duì)角線元素所形成的向量7、一些特別矩陣〔1〕eye(n,m) %單位矩陣n×m〔2〕eye(n) %單位矩陣n×n〔3〕ones(n,m) %常數(shù)矩陣n×m全部為1〔4〕ones(n) %常數(shù)矩陣n×n全部為1〔5〕zeros(n,m) %常數(shù)矩陣n×m全部為0〔6〕zeros(n) %常數(shù)矩陣n×n全部為0〔7〕rand(n,m) %隨機(jī)數(shù)所形成n×m的矩陣〔8〕randn(n) %隨機(jī)數(shù)所形成n×n的矩陣2.4循環(huán)及運(yùn)算元2.4.1for循環(huán)格式:fori=array commands end例2-7:>>fori=1:3y(i)=cos(i)endy=0.54035.0000y=0.5403-0.4161y=0.5403-0.4161-0.9900例2-8:>>fori=1:3forj=1:2a(i,j)=i+j;endend>>aa=233445例2-9:計(jì)算1+2+3+4+5+…+10=?>>sum=0;>>fori=1:10;sum=sum+i;end>>disp(sprintf('\n1+2+…+10=%5.0f',sum))1+2+…+10=552.4.2while循環(huán)while循環(huán)格式:whileexpressure%推斷式成立?commands;end例2-10:求1+2+3+…+n>50的n值?>>sum=0;>>n=0;>>whilesum<=50n=n+1;sum=sum+n;end>>disp(sprintf('\n1+2+…+n>50最小之n值=%3.0f,其和=%5.0f',n,sum))1+2+…+n>50最小之n值=10,其和=55例2-11:計(jì)算最小的n=?>>n=1;>>whileprod(1:n)<1e100n=n+1;end>>disp(sprintf('\n最小之n值=%3.0f,n!=%5.3e',n,prod(1:n)))最小之n值=70,n!=1.198e+1002.4.3if-else-end結(jié)構(gòu)格式:ifexpressions1; commands1; elseifexpressions2; commands2; elseifexpressions3;commands3;elsecommands4;end例2-12:函數(shù),畫(huà)出f〔x〕對(duì)x的圖。>>x=linspace(-1,2,100);>>fori=1:length(x)ifx(i)<=0y(i)=x(i)+1;elseifx(i)<=1y(i)=2*x(i)+1;elsey(i)=x(i)^2+2*x(i);endend>>plot(x,y)2.4.4script文件與function文件 Script文件以.m為后綴名,鍵入文件名就可以直接執(zhí)行,變量為全局變量。步驟如下:Step1:file=>new=>M-file;Step2:在Editor內(nèi)編輯一個(gè).m文件;Step3:執(zhí)行。在命令窗口內(nèi)鍵入文件名,或者用file=>runM-file。例2-13:【源程序fibno.m】fibno.m%M-filefibno.mf=[11];I=1;whilef(I)+f(I+1)<1000f(I+2)=f(I)+f(I+1);I=I+1;endplot(f)源程序輸入窗口:結(jié)果:function文件同意變量通過(guò)值傳遞,使用局部變量。為新函數(shù),以.m為后綴名,執(zhí)行時(shí)需要帶入?yún)?shù)值,或配合Script文件方可執(zhí)行。例2-14:【源程序mean.m】%mean.mfunctiony=mean(x)%remarkorcomments[m,n]=size(x);ifm==1m=n;endy=sum(x)/m;使用方法:>>z=1:99;>>y=mean(z)y=502.4.5如何做文字處理>>t='NanjingUniversityofTechnology';>>u=t(9:18)u=University>>u=t(18:-1:9)u=ytisrevinU文字與ASCII之間的關(guān)聯(lián)>>s='abcdefg';>>m=abs(s)m=979899100101102103>>m=m+0m=979899100101102103>>setstr(m)%數(shù)值=〉文字ans=abcdefg>>n=s+'a'-'A'%大寫(xiě)=〉小寫(xiě)n=129130131132133134135>>c=n+'A'-'a'c=9798991001011021032.4.6關(guān)系運(yùn)算符〔relationoperation〕<〔小于〕<=〔小于等于〕>〔大于〕>=〔大于等于〕==〔等于〕~=〔不等于〕1〔真〕0〔假〕例如:>>2>3ans=0>>2<=3ans=1>>2==3ans=0例如:>>a=[1234];>>b=[5672];>>a>bans=0001>>tf=b-(a>2)tf=5661例2-15:計(jì)算,x=-1:1/3:1>>x=-1:1/3:1;>>sin(x)./xWarning:Dividebyzero.ans=0.84150.92760.9816NaN0.98160.92760.8415>>x==0ans=0001000>>x=x+(x==0)*eps;>>sin(x)./xans=0.84150.92760.98161.00000.98160.92760.8415注意:eps內(nèi)定準(zhǔn)確度2.2204e-16。2.4.7邏輯運(yùn)算符〔logicaloperator〕&and|or~not>>a=1:9;>>b=9:-1:1;>>tf=a>4tf=000011111>>tf=~(a>4)tf=111100000>>tf=(a>2)&(a<6)tf=0011100002.5用MATLAB畫(huà)圖2.5.1如何畫(huà)圖?格式:plot(x1,y1,'+r',x2,y2,'--g',…)x1,y1,'+r'第一組圖資料x(chóng)2,y2,'--g'第二組圖資料顏色代號(hào)線條代號(hào)y黃色.實(shí)點(diǎn)m紫色o圓圈c深藍(lán)色xx符號(hào)r紅色+正號(hào)g綠色*星號(hào)b淺藍(lán)色-實(shí)線w白色:點(diǎn)線k黑色-.點(diǎn)虛線--虛線例2-16:繪制cos(x)圖與sin(x)圖于同一圖中。>>x=linspace(0,2*pi,100);>>y1=cos(x);>>y2=sin(x);>>plot(x,y1,'-y',x,y2,'--y')>>plot(x,y1,x,y2)2.5.2定義圖示信息xlabe('')%x軸名ylabe('')%y軸名title('')%圖名grid%網(wǎng)格線gtext('*')%用鼠標(biāo)移到預(yù)標(biāo)示的位置例如:>>x=linspace(0,2*pi,100);>>y=sin(x);>>y=abs(y);>>plot(x,y)2.5.3繪制特別圖形1、如何繪制特別圖形axis([010015])axis([x軸上限x軸下限y軸上限y軸下限])axis('square')調(diào)整圖形由長(zhǎng)方形變成正方形2、一些特別圖形指令polar%極坐標(biāo)圖bar%柱狀圖stairs%梯圖errorbar%誤差圖errorbar(x,y,e)%誤差例如:>>t=0:0.01:2*pi;>>r=sin(2*t).*cos(2*t);>>polar(t,r)%t-角度,r-長(zhǎng)度2.5.4在同一視窗圖中繪多個(gè)圖subplot(m,n,p)%p-第n個(gè)圖,陣列排法,m-橫排數(shù),n-直排數(shù)例如:繪制n乘m圖>>t=linspace(0,2*pi,100);>>y1=sin(t);>>y2=cos(t);>>subplot(3,2,1)>>plot(t,y1)%sin>>subplot(3,2,2)>>plot(t,y2)%cos注意觀察從命令“>>subplot(3,2,1)〞開(kāi)始到“>>plot(t,y2)〞的過(guò)程中圖形的變化,如此可以加深對(duì)該功能的理解。2.5.5在同一圖中繪制多條曲線1、繪多條曲線于同一圖方法1:plot(x1,y1,'w',x2,y2,'y',…)方法2:疊圖plot(x1,y1,'w')holdonplot(x2,y2,'y')holdoff2、繪制3D圖相關(guān)指令:plot3%plotlinesandpointsin3Dcontour,contour3%creatcontnourplotmesh,meshc,meshz%3Dmeshsurfaceplotsurf,surfc,surfl%3Dshadedsurfaceview%3Dgraphviewpointspecification例如:畫(huà)圖>>t=linspace(0,10*pi,100);>>x=cos(t);>>y=sin(t);>>z=t;>>plot3(x,y,z)例2-17:用mesh繪圖,并旋轉(zhuǎn)圖形。1、繪mesh圖>>x=-7.5:0.5:7.5;%取值>>y=x;>>[x,y]=meshgrid(x,y);>>z=sqrt(x.^2+y.^2);%算值>>subplot(2,2,1)>>mesh(x,y,z)%繪圖>>subplot(2,2,2)>>surf(x,y,z)%表面加顏色>>subplot(2,2,3)>>surfl(x,y,z)%顏色光照>>subplot(2,2,4)>>contour(x,y,z)%輪廓線2、圖形旋轉(zhuǎn)view(水平角,仰角)>>view(37.5,90)%內(nèi)定值>>x=-7.5:0.5:7.5;>>y=x;>>[x,y]=meshgrid(x,y);>>z=sqrt(x.^2+y.^2);%算值>>mesh(x,y,z)%繪圖>>view(90,120)使用圖形窗口的“Edit〞菜單下的“CopyFigure〞可以將圖形拷貝出來(lái),如以下圖所示。2.6MATLAB在化工中的簡(jiǎn)單應(yīng)用實(shí)例2.6.1向量的應(yīng)用例2-18:理想氣體已知溫度t、壓力p、摩爾數(shù)n,求體積。當(dāng)實(shí)驗(yàn)數(shù)據(jù)溫度、壓力有很多組時(shí),可以用向量處理。>>t=[100200300400500];%temperatureinK>>p=[23456];%pressureinatm>>n=1;%mol>>r=8.314;%joule/Kmol>>v=n*r*t./pv=415.7000554.2667623.5500665.1200692.83332.6.2在復(fù)合反應(yīng)系統(tǒng)中的獨(dú)立反應(yīng)1、問(wèn)題的提出在以下的液相均相反應(yīng)中,有多少個(gè)獨(dú)立的反應(yīng)數(shù)?并求構(gòu)成1組獨(dú)立反應(yīng)的反應(yīng)式〔方程式號(hào)碼〕。 (1) (2) (3) 4) (5) (6)2、理論分析以上反應(yīng)并非都是獨(dú)立的。確定獨(dú)立反應(yīng)數(shù)有多種方法,矩陣法是其中一種比較簡(jiǎn)單而有效的方法。這種方法是將反應(yīng)式視為代數(shù)方程式,把參加反應(yīng)的物質(zhì)視為變量,化學(xué)反應(yīng)計(jì)量系數(shù)則被看成代數(shù)方程式中的系數(shù)(其中反應(yīng)物的系數(shù)為負(fù),產(chǎn)物的系數(shù)為正)。于是.可以組成一個(gè)系數(shù)矩陣A。矩陣表A示了反應(yīng)系統(tǒng),獨(dú)立的反應(yīng)數(shù)和次矩陣的秩〔rank〕一致。故首先求反應(yīng)系統(tǒng)矩陣的秩確定獨(dú)立反應(yīng)方程數(shù)。然后遍歷任意獨(dú)立反應(yīng)數(shù)的方程式組合,推斷組合反應(yīng)矩陣得秩與全反應(yīng)系統(tǒng)地秩是否相等,假設(shè)相等,則可以構(gòu)成獨(dú)立反應(yīng)方程式,反之,則不能。3、MATLAB執(zhí)行程序%A=[-4-50604-4-32600-40560-60-1002-201100-20-2-1020];a=rank(A);disp(sprintf('\n最高秩=%i',a))disp(sprintf('\n可形成rank=%i的有以下幾組獨(dú)立反應(yīng)方程式',a)),fori=1:length(A')forj=i:length(A')fork=j:length(A')B=[A(i,:);A(j,:);A(k,:)];b=rank(B);ifb==adisp(sprintf('%i%i%i',i,j,k))elseendendendend4、計(jì)算結(jié)果最高秩=3可形成rank=3的有以下幾組獨(dú)立反應(yīng)方程式1241261341361451461562342362452462563453463562.6.3利用沉降法求液體粘度1、問(wèn)題的提出茲取直徑D=0.5mm的鋼球(密度ρs=8.9g/cm3)在油中自由沉降,測(cè)定鋼球的終端速度μt結(jié)果是1.5cm/s。設(shè)油之密度ρf是0.85g/cm3時(shí),試求其粘度μf[c.p.]為多少?2、理論分析依據(jù)鋼球雷諾數(shù)Re(=Dμtρf/μf)之范圍,可由下面各公式分別獲得鋼球自由沉降的終端速度μt。Re≦6(creepingflow,爬流): (1a)6<Re≦500(laminarflow,層流): (1b)500<Re<105(disturbanceflow,湍流): (1c)由(1a)及(1b),可分別求得μf之計(jì)算公式如下:Re≦6: (2a)6<Re≦500: (2b)500<Re<105:無(wú)法求出μf首先,將ρs,ρf,μt及D之值代入公式(2a)求μf,查證是否Re≦6。如果Re≦6,則求其μf。如果不是Re≦6,則應(yīng)用式(2b)計(jì)算μf,并核對(duì)是否6<Re≦500。在此,假設(shè)不是6<Re≦500,表示Re>500,所以不合已知的條件,故無(wú)法決定μf。3、MATLAB問(wèn)題解析首先輸入disp(‘inputthefollowingdata‘),之后,當(dāng)我們要在MATLABCommandWindow中執(zhí)行程序時(shí),就可直接輸入ρs,ρf,μt及D所要的數(shù)據(jù),而且可依據(jù)所需輸入不同組的數(shù)據(jù)。開(kāi)始計(jì)算鋼球雷諾數(shù)Re(=Dμtρf/μf)和液體的粘度uf:因?yàn)镽e有三個(gè)不同的范圍,所以會(huì)有不同的粘度uf。因此,必需先推斷Re是落在什么的范圍內(nèi),如此才知道要代那個(gè)計(jì)算式去求解,所用的方法是If-else-endstructure:一開(kāi)始先列出μf=g(ρs-ρf)D2/18μt時(shí)Re=Dμtρf/μf,然后ifRe≦6,則就打印結(jié)果。else時(shí)Re=Dμtρf/μf,當(dāng)if6<Re≦500,則就打印結(jié)果。最后再不是以上兩個(gè)范圍的話(else),就無(wú)法算出結(jié)果。Ps:最后要有兩個(gè)end,因?yàn)榭偣灿袃蓚€(gè)If-else-endstructure。4、MATLAB執(zhí)行程序%clearclc%disp('inputthefollowingdata')%%定義變量:%ut:終端速度(cm/s);%rho_f:流體密度(g/cm^3);%rho_s:鋼球密度(g/cm^3);%D:鋼球直徑(mm);%Re:鋼球雷諾數(shù)(Reynoldnumber)%uf:粘度(Viscosity)[c.p.]%%Whileloop:讓使用者可自行決定要持續(xù)輸入做運(yùn)算或者是要停止ICHECK=1;whileICHECK==1;ut=input('終端速度(cm/s)=');rho_f=input('流體密度(g/cm^3)=');rho_s=input('鋼球密度(g/cm^3)=');D=input('鋼球直徑(mm)=');g=980;%cm/s^2%%開(kāi)始代入公式計(jì)算:D=D/10;%單位轉(zhuǎn)換uf=[g*(rho_s-rho_f)*(D^2)]/(18*ut);Re=(D*ut*rho_f)/uf;ifRe<=6disp(sprintf('\nReynoldno.=%5.3f,Viscosity=%5.3f[c.p.]',Re,uf))%打印結(jié)果elseuf=(4/225)*[((rho_s-rho_f)^2*g^2)/(ut^3*rho_f)]*(D^3);Re=(D*ut*rho_f)/uf;if(Re>6)&(Re<=500)disp(sprintf('\nReynoldno.=%5.3f,Viscosity=%5.3f[c.p.]',Re,uf))%打印結(jié)果elsedisp('無(wú)法算出結(jié)果')endendICHECK=input('Doyouwanttocontinue?Yes=1;No=0');ICHECK=input('是否持續(xù)=');End5、執(zhí)行結(jié)果clearinputthefollowingdata終端速度(cm/s)=1.5流體密度(g/cm^3)=0.85鋼球密度(g/cm^3)=8.9鋼球直徑(mm)=0.5Reynoldno.=0.087,Viscosity=0.730[c.p.]Doyouwanttocontinue?Yes=1;No=0是否持續(xù)=1終端速度(cm/s)=2.0流體密度(g/cm^3)=0.9鋼球密度(g/cm^3)=7.8鋼球直徑(mm)=1.0Reynoldno.=0.096,Viscosity=1.878[c.p.]Doyouwanttocontinue?Yes=1;No=0是否持續(xù)=1終端速度(cm/s)=10.0流體密度(g/cm^3)=0.8鋼球密度(g/cm^3)=2.6鋼球直徑(mm)=3.0Reynoldno.=2.721,Viscosity=0.882[c.p.]Doyouwanttocontinue?Yes=1;No=0是否持續(xù)=1終端速度(cm/s)=20.0流體密度(g/cm^3)=0.8鋼球密度(g/cm^3)=2.6鋼球直徑(mm)=1.0Reynoldno.=185.108,Viscosity=0.009[c.p.]Doyouwanttocontinue?Yes=1;No=0是否持續(xù)=1終端速度(cm/s)=30.0流體密度(g/cm^3)=0.8鋼球密度(g/cm^3)=2.6鋼球直徑(mm)=1.0無(wú)法算出結(jié)果Doyouwanttocontinue?Yes=1;No=0是否持續(xù)=02.6.4連續(xù)釜式反應(yīng)器的制定1、問(wèn)題的提出使用每個(gè)反應(yīng)釜體積V=1.5L的連續(xù)串聯(lián)完全混合反應(yīng)器,再等溫條件下進(jìn)行以下所示液相反應(yīng):A→R:-rA=kCA2(1)K=0.5l/g-mol-min試求轉(zhuǎn)化率xf=0.8所需的反應(yīng)釜數(shù)、各反應(yīng)釜的出口濃度及轉(zhuǎn)化率。假設(shè)反應(yīng)物A進(jìn)入第一反應(yīng)釜的入口濃度為C0=1.2g-mol/l,流量為υ=0.3l/min。2、理論分析如圖所示,以Ci-1表示反應(yīng)物進(jìn)入第i個(gè)反應(yīng)釜的濃度,以Ci表示出口濃度,以υ表示流量,而各反應(yīng)釜體積一律相等,用V表示。對(duì)第i個(gè)反應(yīng)釜作質(zhì)量衡算可得(2)先合計(jì)穩(wěn)態(tài)狀況,則入口及出口濃度滿足下式(3)如果就Ci解之,則得(4)而第i個(gè)反應(yīng)釜的轉(zhuǎn)化率可以下式表示:(5)3、MATLAB問(wèn)題解析首先輸入已知的數(shù)據(jù):V,υ,Co,k,conv。用C(i)與C(i+1)向量的表示法來(lái)分別

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論