Matlab與化工數(shù)值計(jì)算第一講簡介與基本數(shù)學(xué)運(yùn)算_第1頁
Matlab與化工數(shù)值計(jì)算第一講簡介與基本數(shù)學(xué)運(yùn)算_第2頁
Matlab與化工數(shù)值計(jì)算第一講簡介與基本數(shù)學(xué)運(yùn)算_第3頁
Matlab與化工數(shù)值計(jì)算第一講簡介與基本數(shù)學(xué)運(yùn)算_第4頁
Matlab與化工數(shù)值計(jì)算第一講簡介與基本數(shù)學(xué)運(yùn)算_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)在能源化工中的應(yīng)用

趙文波化工學(xué)院聯(lián)系方式:wenshuixing@126.com公地點(diǎn):化工樓412

課程簡介性質(zhì):指定選修,考查課課時(shí):27理論+21上機(jī)=3學(xué)分上機(jī)地點(diǎn):計(jì)算中心202機(jī)房內(nèi)容:MATLAB7.0,Origin7.5考核:開卷。MATLAB7.0,Matlab與化工數(shù)值計(jì)算

課件在百度云網(wǎng)盤賬號:昆工趙文波密碼:zhaowenbo化學(xué)工程專業(yè)數(shù)學(xué)模型類型非線性方程(組)常微分方程(組)偏微分方程(組)非線性模型,難以獲得解析解,必須采用數(shù)值解法模型的數(shù)值解法是應(yīng)用數(shù)學(xué)的一個(gè)分支,通常稱為計(jì)算數(shù)學(xué)(數(shù)值分析,數(shù)值方法)化學(xué)工程常用軟件MatlabFortranMapleStaticsticaPRO/II(SimSci)AspenPlusChemCADFluent數(shù)學(xué)軟件:化工模擬軟件:本課程的學(xué)習(xí)目的Matlab數(shù)值分析化工數(shù)學(xué)模型

化工專業(yè)知識作為背景,不涉及模型的推導(dǎo),注重模型求解過程的方法與技巧

學(xué)會(huì)Matlab的使用,可以利用Matlab求解較為復(fù)雜的化工數(shù)學(xué)模型

對于數(shù)值分析的內(nèi)容不過多涉及,只注意數(shù)值計(jì)算結(jié)果的準(zhǔn)確性算法+語言=程序?qū)W習(xí)本課程的注意事項(xiàng)學(xué)好本課程的最重要的途徑是多上機(jī)實(shí)踐數(shù)值計(jì)算效率和效果的保證有很多技巧,可以參考數(shù)值方法(數(shù)值分析)方面的教科書Matlab數(shù)值分析與應(yīng)用(第二版),張德豐,國防工業(yè)出版社同濟(jì)大學(xué)計(jì)算數(shù)學(xué)教研室,現(xiàn)代數(shù)值數(shù)學(xué)和計(jì)算,同濟(jì)大學(xué)出版社張志涌,精通Matlab6.5版,北京航空航天大學(xué)出版社黃華江,實(shí)用化工計(jì)算機(jī)模擬,化學(xué)工業(yè)出版社對于數(shù)值計(jì)算的結(jié)果,應(yīng)注意分析結(jié)果的意義Matlab課程基本內(nèi)容

第一講Matlab簡介與基本數(shù)學(xué)運(yùn)算第二講非線性方程組求解與迭代法第三講矩陣操作與線性方程組求解第四講插值、擬合第五講數(shù)值微分、積分第六講常微分方程數(shù)值解Matlab基本知識Matlab簡介Prof.CleveMolerJackLittleMatlab是MatrixLabotary的縮寫,最初是美國新墨西哥大學(xué)Moler教授編寫的LINPACK和EISPACK接口程序1984年,MathWorks公司創(chuàng)建,MATLAB正式推向市場20世紀(jì)90年代以來,MATLAB已成為數(shù)值計(jì)算軟件的佼佼者M(jìn)atlab簡介

MATLAB具有用法簡單、靈活、結(jié)構(gòu)性強(qiáng)、延展性好等優(yōu)點(diǎn),逐漸成為科技計(jì)算、視圖交互系統(tǒng)和程序中的首選語言工具。功能強(qiáng)大的數(shù)值運(yùn)算功能強(qiáng)大的圖形處理能力高級但簡單的程序環(huán)境豐富的工具箱與模塊集易于擴(kuò)充

Matlab窗口介紹命令窗口命令歷史變量空間當(dāng)前路徑變量與常量變量變量的命名方式:變量名由字母、數(shù)字和下劃線組成;變量名中的英文字母大小寫是有區(qū)別的;變量名的最大長度是有規(guī)定的不同版本的系統(tǒng)規(guī)定不同:19個(gè)字符、31或63個(gè)字符等可調(diào)用namelengthmax函數(shù)得到系統(tǒng)規(guī)定長度變量的使用>>xy=1;yx=2; %對變量賦值>>xy %查看變量xy的當(dāng)前數(shù)值xy=1>>whos %詢問當(dāng)前工作窗口中有多少變量

NameSizeBytesClassxy1x18doublearrayyx1x18doublearrayGrandtotalis2elementsusing16bytes>>clearxyyx %刪除變量xy及yx>>whos >>xy %這時(shí)變量xy已經(jīng)不存在了???Undefinedfunctionorvariable'xy'.特殊變量意義ans如果用戶未定義變量名,系統(tǒng)用于計(jì)算結(jié)果存儲的默認(rèn)變量名pi圓周率π(=3.1415926...)inf或Inf無窮大∞值eps浮點(diǎn)運(yùn)算的相對精度2^(-52)realmax最大的正浮點(diǎn)數(shù),2^(1024)-1realmin最小的正浮點(diǎn)數(shù),2^(-1022)NaN或nan不定量nargin函數(shù)輸入?yún)?shù)個(gè)數(shù)nargout函數(shù)輸出參數(shù)個(gè)數(shù)MATLAB系統(tǒng)的特殊變量和常量Matlab數(shù)據(jù)類型MATLAB數(shù)據(jù)類型數(shù)值(標(biāo)量,向量,矩陣)字符串單元數(shù)組(cellarray)結(jié)構(gòu)體(structure)向量的生成和元素的獲得1)直接輸入向量格式上要求向量元素需要用“[]”括起來,元素之間可以用空格、逗號或分號分隔。用空格和逗號分隔生成行向量,用分號生成列向量。2)利用冒號生成向量冒號表達(dá)式的基本形式為:x=x0:step:xn若step=1,則此項(xiàng)輸入可以忽略。3)linspace函數(shù)可以使用linspace函數(shù)生成線性等分向量:y=linspace(x1,x2,n) 生成(1*n)維行向量,y(1)=x1,y(n)=x2生成獲得輸入元素的下標(biāo)。如要獲得a向量第3個(gè)元素的值。輸入a(3)矩陣的生成和元素的獲得1矩陣可以直接輸入。(用分號分隔行)2由向量組合生成。(用[]把兩個(gè)向量合并)3矩陣生成函數(shù)。(如ones函數(shù))生成獲得輸入元素的下標(biāo)。如要獲得a矩陣第3行,第2列的值。輸入a(3,2)字符串類型字符串:包含在一對單引號中的字符集合>>s='hello,MATLAB' %定義字符串變量ss=hello,MATLAB>>whosNameSizeBytesClasss1x1326chararrayGrandtotalis13elementsusing26bytes單元數(shù)組(CellArray)單元數(shù)組是MATLAB數(shù)組的一種特殊數(shù)據(jù)類型,它用于保存不同類型和/或不同大小的數(shù)據(jù)。

三種直接賦值方式

單元下標(biāo)用括號“()”括起來,而單元的內(nèi)容用“{}”括起來,如:>>clearall>>a(1,1)={[12;34]};>>a(1,2)={[01]};>>a(2,1)={'Hello'};>>a(2,2)={2+3i}2.單元下標(biāo)用“{}”括起來,而賦值語句等式右邊的單元內(nèi)容用“[]”括起來:>>a{1,1}=[12;34];>>a{1,2}=[01];>>a{2,1}=’Hello’;%右邊只有一個(gè)元素時(shí)可省略去“[]”>>a{2,2}=2+3i3.直接使用{}>>a={[12;34],[01],’Hello’,2+3i}結(jié)構(gòu)體與C語言類似,MATLAB結(jié)構(gòu)體用于存取相關(guān)的數(shù)據(jù),它由一組稱為域(fields)的成員變量(向量)構(gòu)成,每一個(gè)域可以為不同的MATLAB數(shù)據(jù)類型。>>=’ZhangJun’;>>student.major=’ChemicalEngineering’;>>student.subject=[‘英語’,’政治’,’數(shù)學(xué)’,’化工原理’,’物理化學(xué)’];>>student.entrance_exam=[6268728290];>>student(2).name=’LiXia’;>>student(2).major=’ChemicalEngineering’;>>student(2).subject=[‘英語’,’政治’,’數(shù)學(xué)’,’化工原理’,’物理化學(xué)’];>>student(2).entrance_exam=[6072688588];Matlab簡單運(yùn)算基本算術(shù)運(yùn)算符運(yùn)算符號運(yùn)算符號加+減-矩陣乘*矩陣左除\矩陣右除/冪次方^數(shù)組相乘.*數(shù)組左除.\數(shù)組右除./數(shù)組冪次方.^>>2000^1.8*(10^(-10.2158+1.7925e3/283+1.773e-2*283-1.2631e-5*283^2))^0.2/(20000*0.5^4.8*(0.3471*0.274^(-(1-283/647.13)^0.28574))/0.2323)回車可以得到結(jié)果ans=287.8245Matlab的計(jì)算器功能向量的運(yùn)算1)向量加減與數(shù)加減向量的加減與數(shù)加減的形式與普通標(biāo)量加減相同2)向量的點(diǎn)積、叉積與混合積的實(shí)現(xiàn)點(diǎn)積:向量的點(diǎn)積由函數(shù)dot實(shí)現(xiàn)。dot(a,b)返回向量a和b的數(shù)量點(diǎn)積,其中a,b必須同維。叉積:叉積由cross函數(shù)實(shí)現(xiàn)。向量a,b必須為三維向量混合積:可由以下命令實(shí)現(xiàn),dot(a,cross(b,c))3)向量的加減乘除與點(diǎn)乘,點(diǎn)除例:當(dāng)a=[1:1:3];b=[2:2:6]時(shí),以下命令的運(yùn)行結(jié)果是1)>>a1=2*aa1

=[2:2:6]2)>>a2=a.*ba2=[2:2:18] 3)>>a3=a*b提示出錯(cuò)計(jì)算以下表達(dá)式的值:1)1+3*2^22)(3*2)^23)(3*2)^2;4)(-8)^(1/3)5)[123]*[321]6)[123].*[321]7)[123]^28)[123].^2基本數(shù)學(xué)運(yùn)算符的使用矩陣的運(yùn)算矩陣的加減乘除與點(diǎn)乘,點(diǎn)除例:當(dāng)a=[1,1,3;2,4,8];b=[2,2;3,4;8,3]時(shí),以下命令的運(yùn)行結(jié)果是什么?1)>>a1=2*a 2)>>a2=a.*b 3)>>a3=a*b數(shù)學(xué)函數(shù)(elfun)類型函數(shù)含義三角函數(shù)sin(x)正弦值asin(x)反正弦值cos(x)余弦值acos(x)反余弦值tan(x)正切指數(shù)函數(shù)exp(x)指數(shù)運(yùn)算log(x)自然對數(shù)sqrt(x)求平方根復(fù)數(shù)函數(shù)abs(x)求絕對值imag(x)取出復(fù)數(shù)的虛部real(x)取出復(fù)數(shù)的實(shí)部conj(x)復(fù)數(shù)共軛數(shù)論函數(shù)round(x)四舍五入mod(x,y)求余數(shù)lcm(x,y)整數(shù)x和y的最小公倍數(shù)gcd(x,y)整數(shù)x和y的最大公約數(shù)計(jì)算以下表達(dá)式的值:sin(30)exp([123])log10([101001000])abs(-5)基本數(shù)學(xué)函數(shù)的使用Matlab關(guān)系和邏輯運(yùn)算MATLAB關(guān)系運(yùn)算符運(yùn)算符號運(yùn)算符號大于>小于<等于==不等于~=大于等于>=小于等于<=關(guān)系運(yùn)算符:邏輯、關(guān)系運(yùn)算優(yōu)先級運(yùn)算優(yōu)先級:括號轉(zhuǎn)置,冪一元的加減,邏輯否乘除加減冒號操作符關(guān)系運(yùn)算邏輯運(yùn)算先決與先決否高低腳本文件和函數(shù)文件腳本編輯窗口函數(shù)文件和腳本文件腳本文件

腳本僅僅是一連串可執(zhí)行的MATLAB命令,它具有全局性腳本文件中不能定義函數(shù)函數(shù)文件函數(shù)定義的一般格式:function[y1,y2,…,yn]=FuncName(x1,x2,…,xn)%函數(shù)聲明語句y1=…%(表達(dá)式1)y2=…%(表達(dá)式2)…yn=…%(表達(dá)式n)其中,輸入?yún)?shù)為x1,x2,…,xn,輸出參數(shù)為y1,y2,…,yn。各參數(shù)可以是標(biāo)量、向量或矩陣。函數(shù)文件的編寫與運(yùn)行函數(shù)聲明語句:functionY=function_name(x)編寫表達(dá)式:對x進(jìn)行加減乘除等運(yùn)算,然后賦值給Y。保存在當(dāng)前路徑下,文件名與函數(shù)名要相同。在命令窗口中輸入:文件名(參數(shù)值)。按回車后開始運(yùn)行。Functionout=test(in)out=in^2-3*in-4

編寫一個(gè)函數(shù)文件,其輸出參數(shù)是其輸入?yún)?shù)的10倍。(寫上姓名學(xué)號后上交)課堂作業(yè)函數(shù)的調(diào)用在調(diào)用函數(shù)的主函數(shù)中,直接采用函數(shù)名調(diào)用調(diào)用函數(shù)得到函數(shù)的返回參數(shù)值。functionavg=average(x)%求矢量中各數(shù)值的平均值n=length(x)%該函數(shù)可以得到矢量含多少個(gè)元素。avg=mean(x,n)functiona=mean(u,d)%此為子函數(shù)a=sum(u)/d%sum命令可以求得矢量各元素的和。2.通過函數(shù)句柄調(diào)用調(diào)用函數(shù)本身。Functiona=result(x)a=feval(@zwb,x)%feval命令的意思是獲得zwb這個(gè)函數(shù)在x處的函數(shù)值。functiony=zwb(x)%此為子函數(shù)y=x^3+x^2-3*x-3;內(nèi)聯(lián)函數(shù)(inlinefunction)內(nèi)聯(lián)函數(shù)是Matlab提供的一個(gè)對象,它的表現(xiàn)和函數(shù)文件一樣,但內(nèi)聯(lián)函數(shù)的創(chuàng)建比較容易內(nèi)聯(lián)函數(shù)的創(chuàng)建inline(‘CE’)

y=

inline('x^3-2')例如:y(3)=25inline(‘CE’,arg1,arg2,...)

y=inline('sin(2*pi*f+theta)','f','theta')匿名函數(shù)(anonymousfunction)匿名函數(shù)用于在命令行、函數(shù)文件或腳本文件中創(chuàng)建簡單形式的函數(shù),避免另外定義新的函數(shù)。匿名函數(shù)的定義形式f=@(arglist)expressionf=@(x)x.^2a=f(5)結(jié)果:a=25f=@(x)x.^2;g=@(x)3*x;h=@(x)g(f(x));h(3)結(jié)果:ans=27alpha=0.9;f=@(x)sin(alpha*x);f(pi)結(jié)果:ans=0.3090Matlab流程控制語句for循環(huán)結(jié)構(gòu)fori=1:10x(i)=i;endxfor循環(huán)變量=表達(dá)式1(初值):表達(dá)式2(步長):表達(dá)式3(終值)statements(語句組)end字符串:包含在一對單引號中的字符集合為了得到高效代碼,應(yīng)盡量提高代碼的向量化程度,避免使用循環(huán)結(jié)構(gòu)為了得到高效代碼,在循環(huán)指令之前應(yīng)盡量對數(shù)組進(jìn)行預(yù)定義while循環(huán)結(jié)構(gòu)whilecondition(表達(dá)式)

statements(執(zhí)行語句組)endFibonacci數(shù)組的元素滿足Fibonacci規(guī)則:ak+2=ak+ak+1,(k=1,2,...);且a1=a2=1。求該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=2;whilea(i)<=10000a(i+1)=a(i-1)+a(i);i=i+1;endi,a(i)if-else-end分支結(jié)構(gòu)if語句的一般格式:ifcondition1statements%如果condition1的值為True,則執(zhí)行該語句組elseifcondition2statements%如果condition2的值為True,則執(zhí)行該語句組elsestatements%如果condition1和condition2的都為False,則執(zhí)行該語句組end用for循環(huán)指令尋求Fibonacci數(shù)組中第一個(gè)大于10000的元素n=100;a=1:100;fori=3:na(i)=a(i-1)+a(i-2);ifa(i)>=10000a(i),break;endendi可以用break語句強(qiáng)制終止循環(huán)的運(yùn)行switch-case結(jié)構(gòu)switch-case的一般格式:switchtest_expr%測試表達(dá)式test_expr可以是標(biāo)量或字符串casevaluestatements%當(dāng)test_expr值是value時(shí),執(zhí)行該語句組case{value1,value2,…}statements%當(dāng)test_expr值是value1或value2或…時(shí),執(zhí)行該語句組otherwise,statementsendswitch…case…otherwise語句的能力與if…else…end語句類似,但對多重選擇的情況switch語句使代碼更加易讀。

Matlab繪圖函數(shù)Plot基本調(diào)用格式1)plot(X,Y,'s')X、Y是同維向量時(shí),繪制以X、Y為橫、縱坐標(biāo)的曲線X是向量,Y是有一維與X同維的矩陣時(shí),則繪出多根不同色彩的曲線。曲線數(shù)等于Y的另一維,X作為這些曲線共同的橫坐標(biāo)X是矩陣,Y是向量時(shí),情況與上相同,只是曲線都以Y為共同縱坐標(biāo)X、Y是同維矩陣時(shí),則以X、Y對應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)?!畇’是用來控制線型、色彩、數(shù)據(jù)點(diǎn)型的選項(xiàng)字符串。s可以缺省,此時(shí)曲線按

溫馨提示

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

最新文檔

評論

0/150

提交評論