數(shù)學(xué)建模用法_第1頁
數(shù)學(xué)建模用法_第2頁
數(shù)學(xué)建模用法_第3頁
數(shù)學(xué)建模用法_第4頁
數(shù)學(xué)建模用法_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)學(xué)建模用法第1頁,共97頁,2023年,2月20日,星期六

用計(jì)算機(jī)解決數(shù)值分析問題

三大數(shù)學(xué)軟件Matlab,Maple,Mathematica第2頁,共97頁,2023年,2月20日,星期六

Matlab:MatrixLaboratry矩陣實(shí)驗(yàn)室

在國際上30幾個(gè)數(shù)學(xué)類科技應(yīng)用軟件中,Matlab在數(shù)值計(jì)算方面獨(dú)占鰲頭。

目前,Matlab已經(jīng)成為國際上最流行的科學(xué)與工程計(jì)算的軟件工具,是一種具有廣泛應(yīng)用前景的全新的計(jì)算機(jī)高級(jí)編程語言了,有人稱它為“第四代”計(jì)算機(jī)語言。就影響而言,至今仍然沒有一個(gè)別的計(jì)算軟件可與Matlab匹敵。

Matlab的最新版本2010年,Matlab7.11(R2010b)第一節(jié)Matlab介紹第3頁,共97頁,2023年,2月20日,星期六1.1Matlab的特點(diǎn)與功能

Matlab具有很強(qiáng)的數(shù)值計(jì)算功能Matlab以矩陣作為數(shù)據(jù)操作的基本單位,但無需預(yù)先指定

矩陣維數(shù)(動(dòng)態(tài)定維)按照IEEE的數(shù)值計(jì)算標(biāo)準(zhǔn)進(jìn)行計(jì)算提供十分豐富的數(shù)值計(jì)算函數(shù),方便計(jì)算,提高效率Matlab命令與數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),

容易掌握

Matlab是一個(gè)交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結(jié)果第4頁,共97頁,2023年,2月20日,星期六Matlab符號(hào)計(jì)算功能Matlab和著名的符號(hào)計(jì)算語言Maple相結(jié)合Matlab的編程功能Matlab具有程序結(jié)構(gòu)控制、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)、輸入輸出、面向?qū)ο蟮瘸绦蛘Z言特征,而且簡(jiǎn)單易學(xué)、編程效率高。通過Matlab提供的編程語言進(jìn)行編程完成特定的任務(wù)Matlab的繪圖功能Matlab提供豐富的繪圖命令,

很方便實(shí)現(xiàn)數(shù)據(jù)的可視化第5頁,共97頁,2023年,2月20日,星期六Matlab豐富的工具箱(toolbox)根據(jù)專門領(lǐng)域中的特殊需要而設(shè)計(jì)的各種可選工具箱

Matlab的Simulink動(dòng)態(tài)仿真集成環(huán)境提供建立系統(tǒng)模型、選擇仿真參數(shù)和數(shù)值算法、啟動(dòng)仿真程序?qū)υ撓到y(tǒng)進(jìn)行仿真、設(shè)置不同的輸出方式來觀察仿真結(jié)果等功能SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification……第6頁,共97頁,2023年,2月20日,星期六1.2Matlab的集成環(huán)境Matlab系統(tǒng)的啟動(dòng)雙擊Matlab快捷圖標(biāo)Matlab系統(tǒng)的退出單擊Matlab主窗口的“關(guān)閉”按鈕第7頁,共97頁,2023年,2月20日,星期六Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入命令的歷史記錄命令提示符第8頁,共97頁,2023年,2月20日,星期六Matlab命令窗口(commandwindow)在>>后鍵入命令,并按下enter鍵后,Matlab

就會(huì)解釋執(zhí)行所輸入的命令,并在命令后面給出計(jì)算結(jié)果。默認(rèn)的顯示結(jié)果變量為mandwindow是Matlab的主要交互窗口,用于:輸入命令并顯示除圖形以外的所有執(zhí)行結(jié)果。命令提示符第9頁,共97頁,2023年,2月20日,星期六※命令行的輸入規(guī)則命令行后以分號(hào)(;)結(jié)尾,表示不顯示運(yùn)行結(jié)果。命令行后無符號(hào)或以逗號(hào)(,)結(jié)尾,表示顯示運(yùn)行結(jié)果一個(gè)命令行可以輸入若干條命令,各命令之間以逗號(hào)或分號(hào)分隔如果一個(gè)命令行很長(zhǎng),需要換行時(shí),要加續(xù)行符(三個(gè)小黑點(diǎn)…)標(biāo)點(diǎn)符號(hào)一定要在英文狀態(tài)下輸入。若需要在命令行后加注釋,注釋以%開始。第10頁,共97頁,2023年,2月20日,星期六1.3Matlab幫助幫助命令help

顯示指定命令的簡(jiǎn)短使用說明例:>>

helpeig

lookfor

按指定的關(guān)鍵詞查詢與之相關(guān)的命令例:>>

lookforeig

doc

以網(wǎng)頁形式顯示指定命令的幫助頁例:>>

doceig

第11頁,共97頁,2023年,2月20日,星期六

常用操作命令

clc:清除命令窗口;clf:清除當(dāng)前圖形;clear:清除工作空間的變量和函數(shù).

第12頁,共97頁,2023年,2月20日,星期六第二節(jié)

MATLAB語言基本操作2.1變量和賦值2、變量命名原則:

以字母開頭

后面可以跟字母、數(shù)字和下劃線

長(zhǎng)度不超過63個(gè)字符變量名區(qū)分字母的大小寫,MATLAB提供的標(biāo)準(zhǔn)函數(shù)名以及命令名必須用小寫字母。1、基本變量:矩陣第13頁,共97頁,2023年,2月20日,星期六

在MATLAB工作空間中,還駐留幾個(gè)由系統(tǒng)本身定義的變量。它們有特定的含義,在使用時(shí),應(yīng)盡量避免對(duì)這些變量重新賦值。例如:pi、i、inf 等等。3、預(yù)定義變量預(yù)定義變量含義預(yù)定義變量含義ans計(jì)算結(jié)果的缺省變量名pi圓周率i或j虛數(shù)單位eps機(jī)器零閾值(=2.2204e-016)Inf或Inf無窮大,如1/0nan或NaN不是一個(gè)數(shù),如0/0,∞/∞r(nóng)ealmax最大正實(shí)數(shù)realmin最小正實(shí)數(shù)nargin函數(shù)輸入宗量數(shù)目nargout函數(shù)輸出宗量數(shù)目lasterr最新一次的錯(cuò)誤信息lastwarn最新一次的警告信息第14頁,共97頁,2023年,2月20日,星期六4、變量(矩陣)的建立(1)直接輸入法例如>>A=[123;456;789]

矩陣用方括號(hào)“[]”括起矩陣同一行中的元素之間用空格或逗號(hào)分隔矩陣行與行之間用分號(hào)分開直接輸入法中,分號(hào)可以用回車代替或>>A=[1,2,34,5,67,8,9]第15頁,共97頁,2023年,2月20日,星期六(2)利用MATLAB函數(shù)建立矩陣①幾個(gè)產(chǎn)生特殊矩陣的函數(shù):zeros:產(chǎn)生全0矩陣(零矩陣)。ones:產(chǎn)生全1矩陣(幺矩陣)。eye:產(chǎn)生單位矩陣。rand:產(chǎn)生0~1間均勻分布的隨機(jī)矩陣。randn:產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣。magic:產(chǎn)生魔方陣pascal:產(chǎn)生帕斯卡陣第16頁,共97頁,2023年,2月20日,星期六

②這幾個(gè)函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進(jìn)行說明。其調(diào)用格式是:zeros(m)產(chǎn)生m×m零矩陣zeros(m,n)產(chǎn)生m×n零矩陣zeros(size(A))產(chǎn)生與矩陣A同樣大小的零矩陣

size(A)

列出矩陣A的行數(shù)和列數(shù)第17頁,共97頁,2023年,2月20日,星期六

大矩陣可以由方括號(hào)將小矩陣或向量建立。例:

>>A=[1,2,3;4,5,6;7,8,9];>>B=[1:3]>>C=[A;B](3)通過矩陣擴(kuò)展建立矩陣第18頁,共97頁,2023年,2月20日,星期六x=logspace(a,b,n)創(chuàng)建從10a開始,到10b結(jié)束,有n個(gè)元素的對(duì)數(shù)分隔行向量.

(4)創(chuàng)建行向量直接產(chǎn)生:x=[abcdef]創(chuàng)建包含指定元素的行向量利用冒號(hào)表達(dá)式產(chǎn)生:x=a:h:b

創(chuàng)建從a開始,以h為步長(zhǎng),到b結(jié)束的行向量,缺省時(shí)h=1x=linspace(a,b,n)與a:(b-a)/(n-1):b等價(jià)

創(chuàng)建從a開始,到b結(jié)束,有n個(gè)元素的行向量第19頁,共97頁,2023年,2月20日,星期六(5)創(chuàng)建列向量

直接產(chǎn)生

例c=[1;2;3;4]

產(chǎn)生列向量有兩種方法:

說明:以空格或逗號(hào)分隔的元素指定的是不同列的元素,而以分號(hào)分隔的元素指定了不同行的元素.

轉(zhuǎn)置產(chǎn)生

例b=[1234];c=b’第20頁,共97頁,2023年,2月20日,星期六矩陣單個(gè)元素的提取利用小括弧和元素所在的位置(下標(biāo))A(i,j):矩陣A中的第i行,第j列元素A(i):矩陣A中的第i個(gè)元素,它表示矩陣A中從第一列開始從上到下數(shù),接著在從第二列開始從上到下數(shù),依次下去,直到數(shù)到第i個(gè)。5、元素的提取第21頁,共97頁,2023年,2月20日,星期六例:>>

A=[1,2,3,4;4,5,6,7;5,7,9,0]b1=A(3,2)b2=A(6)結(jié)果:b1=7b2=7

第22頁,共97頁,2023年,2月20日,星期六矩陣多個(gè)元素的提取冒號(hào)運(yùn)算符

A(:)

或A(:,:)提取A的所有元素

A(:,k)提取A的第k列全部元素

A(k,:)提取A的第k行全部元素

A(i:j,m:n)

提取A的第i到第j行和第m到第n列交叉線上的元素組成的子矩陣。

A(k:m)提取A的第k到第m個(gè)元素

A(:,k:m)提取A的第k列到第m列元素

A(i:j,:)

提取A的第i行到第j行元素第23頁,共97頁,2023年,2月20日,星期六(3)直接使用元素編址序號(hào):

x([abcd])表示提取向量x的第a、b、c、d個(gè)元素構(gòu)成一個(gè)新的向量[x(a)x(b)x(c)x(d)].(2)提取一塊元素:

x(a:b:c)表示提取向量x的從第a個(gè)元素開始,以b為步長(zhǎng),到第c個(gè)元素(但不超過c)結(jié)束的這些元素,b可以為負(fù)數(shù),b缺省時(shí)為1.(1)提取一個(gè)元素:

x(i)表示提取向量x的第i個(gè)元素.向量元素的提取第24頁,共97頁,2023年,2月20日,星期六6、Matlab賦值語句的通常形式變量=表達(dá)式表達(dá)式是用運(yùn)算符將有關(guān)運(yùn)算量連接起來的式子,其結(jié)果被賦給賦值號(hào)“=”左邊的變量或表達(dá)式第25頁,共97頁,2023年,2月20日,星期六2.2Matlab常用數(shù)學(xué)函數(shù)sin正弦函數(shù)

asin反正弦函數(shù)

cos余弦函數(shù)

acos反余弦函數(shù)

tan正切函數(shù)

atan反正切函數(shù)

cot余切函數(shù)

acot反余切函數(shù)

sec正割函數(shù)

asec反正割函數(shù)

csc余割函數(shù)

acsc反余割函數(shù)

sinh雙曲正弦函數(shù)

asinh反雙曲正弦函數(shù)

cosh雙曲余弦函數(shù)

acosh反雙曲余弦函數(shù)

tanh雙曲正切函數(shù)

atanh反雙曲正切函數(shù)

coth雙曲余切函數(shù)

acoth反雙曲余切函數(shù)sech雙曲正割函數(shù)

asech反雙曲正割函數(shù)

csch雙曲余割函數(shù)

acsch反雙曲余割函數(shù)

第26頁,共97頁,2023年,2月20日,星期六abs(x)實(shí)數(shù)的絕對(duì)值或復(fù)數(shù)的模sqrt(x)開平方rat(x) 化為分?jǐn)?shù)表示gcd(x,y)最大公因數(shù)lcm(x,y)

最小公倍數(shù)exp(x)自然指數(shù)pow2(x)

2為底的指數(shù)log(x) e為底的對(duì)數(shù)log10(x)10為底的對(duì)數(shù)log2(x)

2為底的對(duì)數(shù)sign(x)

符號(hào)函數(shù)conj(z) 共軛復(fù)數(shù)angle(z)

復(fù)數(shù)z的相角real(z)

復(fù)數(shù)z的實(shí)部imag(z)

復(fù)數(shù)z的虛部round(x)四舍五入取整ceil(x)

朝+∞方向取整floor(x)朝-∞方向取整fix(x)

朝0方向取整rem(x,y)

求x除以y的余數(shù)factor(x) 質(zhì)因數(shù)factorial(x) x!第27頁,共97頁,2023年,2月20日,星期六2.3Matlab運(yùn)算1、算術(shù)運(yùn)算(1)基本算術(shù)運(yùn)算+、-、*(乘)、\(左除)、/(右除)、^(乘方)如:

>>2/3或

>>3\2注意:運(yùn)算是在矩陣意義下進(jìn)行的,單個(gè)數(shù)據(jù)的算術(shù)運(yùn)算只是矩陣運(yùn)算的一種特例。對(duì)于矩陣

A/B:AB-1A\B:A-1B第28頁,共97頁,2023年,2月20日,星期六

兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)位置上的元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維數(shù)相同。

(2)點(diǎn)運(yùn)算.*、./、.\、.^第29頁,共97頁,2023年,2月20日,星期六(2)關(guān)系運(yùn)算符的運(yùn)算法則:2、關(guān)系運(yùn)算(1)MATLAB提供了6種關(guān)系運(yùn)算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。它們的含義不難理解,但要注意其書寫方法與數(shù)學(xué)中的不等式符號(hào)不盡相同。

當(dāng)兩個(gè)比較量都是標(biāo)量時(shí),直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達(dá)式結(jié)果為1,否則為0。第30頁,共97頁,2023年,2月20日,星期六

當(dāng)兩個(gè)維數(shù)相同的矩陣比較時(shí),相同位置上的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行。當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較。第31頁,共97頁,2023年,2月20日,星期六3、邏輯運(yùn)算(1)MATLAB提供了3種邏輯運(yùn)算符:&(與)、|(或)和~(非)。(2)邏輯運(yùn)算符的運(yùn)算法則:

在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1表示,零元素為假,用0表示。

當(dāng)參與邏輯運(yùn)算的是兩個(gè)標(biāo)量a和b,那么,

a&b:a,b全為非零時(shí),結(jié)果為1,否則為0。

a|b:a,b中只要有一個(gè)非零,結(jié)果為1。

~a:當(dāng)a是零時(shí),結(jié)果為1;當(dāng)a非零時(shí),結(jié)果為0。第32頁,共97頁,2023年,2月20日,星期六

當(dāng)兩個(gè)維數(shù)相同的矩陣做邏輯運(yùn)算

時(shí),相同位置上的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行。當(dāng)參與邏輯運(yùn)算的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行。第33頁,共97頁,2023年,2月20日,星期六各運(yùn)算符的優(yōu)先級(jí)算術(shù)>關(guān)系>邏輯第34頁,共97頁,2023年,2月20日,星期六

size(A)

求出矩陣A的行數(shù)和列數(shù)

length(x)返回向量X的長(zhǎng)度1、查看矩陣的大小:2.4矩陣的相關(guān)操作的函數(shù)2、矩陣的轉(zhuǎn)置與共軛轉(zhuǎn)置

共軛轉(zhuǎn)置

.’

轉(zhuǎn)置,矩陣元素不取共軛點(diǎn)與單引號(hào)之間不能有空格!第35頁,共97頁,2023年,2月20日,星期六例如>>A=[12;2i3i]B=A'C=A.'3、刪除矩陣元素A=[123;456;789]A(:,2)=[]結(jié)果:A=134679

注:如要?jiǎng)h除單個(gè)元素不能:A(1,2)=[];可用A(4)=[]不過剩下的元素將排成一組數(shù),而非矩陣。A=[123;456;789]A(4)=[]結(jié)果:A=14758369第36頁,共97頁,2023年,2月20日,星期六4、向量和矩陣的范數(shù)norm(V)或norm(V,2)求向量V(或矩陣V)的2范數(shù)norm(V,1)求向量V(或矩陣V)的1范數(shù)norm(V,inf)求向量V(或矩陣V)的∞范數(shù)5、求方陣A的行列式:det(A)6、求方陣A的逆矩陣:inv(A)7、求矩陣A的跡:trace(A)8、求矩陣A的秩:rank(A)9、求矩陣A的特征值和特征向量:d=eig(A)[V,D]=eig(A)第37頁,共97頁,2023年,2月20日,星期六10、矩陣分解三角分解:[L,U]=lu(A)其中:L是由對(duì)角線元素全為1的下三角陣經(jīng)轉(zhuǎn)化而成,U為上三角陣,滿足A=LU正交分解:[Q,R]=qr(A)其中:Q是正交陣,R為上三角陣,滿足A=QR11、其他常用命令max(A)求A各列最大元素min(A)求A各列的最小值mean(A)求A各列的平均值sum(A)求A各列元素之和prod(A)求A的各列元素之積sort(A)使A各列元素按遞增排序第38頁,共97頁,2023年,2月20日,星期六median(A)求A各列的中位元素std(A)求A各列的標(biāo)準(zhǔn)差var(A)求A各列的方差find(A)找出矩陣A中非零元素所在的下標(biāo)find(條件)找出符合條件的元素所在的位置diag(A)

提取矩陣A的主對(duì)角線上元素,生成一個(gè)列向量diag(A,k)

提取矩陣A第k條對(duì)角線的元素diag(V)以向量V的元素為主對(duì)角線上的元素構(gòu)造的對(duì)角矩陣diag(V,k)以向量V的元素為第k條對(duì)角線上的元素的構(gòu)造的對(duì)角陣第39頁,共97頁,2023年,2月20日,星期六12、向量與多項(xiàng)式例:建立多項(xiàng)式>>p1=[2,5,0,4,1,4];>>p1=[2,5,0,4,1,4];p2=[0,1,0,2,0,4];p1+p2p1-p2求第40頁,共97頁,2023年,2月20日,星期六多項(xiàng)式的乘法

conv(P1,P2)

求多項(xiàng)式P1和P2的乘積多項(xiàng)式的除法

[Q,r]=deconv(P1,P2)

求P1/P2;其中Q為商式,r為余式。

多項(xiàng)式求根roots(P)

P是多項(xiàng)式p(x)的系數(shù)向量,該函數(shù)返回p(x)=0的全部根(含重根,復(fù)根)多項(xiàng)式求函數(shù)值

polyval(P,x)求多項(xiàng)式P在某點(diǎn)或某些點(diǎn)的函數(shù)值;若x為一數(shù)值,則求多項(xiàng)式P在該點(diǎn)處的值;若x為向量或矩陣,則求多項(xiàng)式P在向量或矩陣中的每個(gè)元素處的值第41頁,共97頁,2023年,2月20日,星期六第三節(jié)MATLAB程序設(shè)計(jì)用Matlab語言編寫的程序稱為M文件。M文件根據(jù)調(diào)用方式的不同可以分為兩類:

Script:腳本文件/命令文件

Function:函數(shù)文件M文件以.m為擴(kuò)展名。3.1M文件第42頁,共97頁,2023年,2月20日,星期六M文件的建立、打開、運(yùn)行新建一個(gè)M文件菜單操作(FileNewM-File

)命令按鈕(快捷鍵)打開已有的M文件菜單操作(FileOpen

)命令按鈕(快捷鍵)第43頁,共97頁,2023年,2月20日,星期六運(yùn)行M腳本文件editor編輯窗口(Debugrun)命令按鈕(快捷鍵)第44頁,共97頁,2023年,2月20日,星期六function

[輸出形參列表]=函數(shù)名(輸入形參列表)%注釋說明部分(可選)函數(shù)體語句(必須)第一行為引導(dǎo)行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭)當(dāng)輸出行參只有一個(gè)時(shí),可省略方括號(hào)函數(shù)必須是一個(gè)單獨(dú)的M文件函數(shù)文件名必須與函數(shù)名一致以百分號(hào)開始的語句為注釋語句3.2函數(shù)文件函數(shù)文件的結(jié)構(gòu):由function語句引導(dǎo)第45頁,共97頁,2023年,2月20日,星期六函數(shù)調(diào)用[輸出實(shí)參列表]=函數(shù)名(輸入實(shí)參列表)函數(shù)調(diào)用時(shí),實(shí)參的順序應(yīng)與函數(shù)定義時(shí)的形參的順序一致。第46頁,共97頁,2023年,2月20日,星期六

函數(shù)文件如下:

function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長(zhǎng)

s=pi*r*r;p=2*pi*r;

例編寫函數(shù)文件求半徑為r的圓的面積和周長(zhǎng)。以文件名fcircle.m存入c:\matlab71\work下,然后在MATLAB命令窗口調(diào)用該函數(shù):[s,p]=fcircle(10)第47頁,共97頁,2023年,2月20日,星期六程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成。順序結(jié)構(gòu)按排列順序依次執(zhí)行各條語句,直到程序的最后。這是最簡(jiǎn)單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計(jì)算或處理等。3.3M文件控制結(jié)構(gòu)第48頁,共97頁,2023年,2月20日,星期六選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if語句、switch語句和try語句。選擇結(jié)構(gòu)第49頁,共97頁,2023年,2月20日,星期六if條件語句組1else語句組2end雙分支結(jié)構(gòu)單分支結(jié)構(gòu)if條件語句組endif條件語句第50頁,共97頁,2023年,2月20日,星期六if條件1語句組1elseif條件2語句組2......

elseif條件m語句組melse語句組end多分支結(jié)構(gòu)第51頁,共97頁,2023年,2月20日,星期六根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。switch表達(dá)式case表達(dá)式1語句組1case表達(dá)式2語句組2......case表達(dá)式m語句組motherwise語句組endswitch語句第52頁,共97頁,2023年,2月20日,星期六Matlab首先計(jì)算表達(dá)式的值,然后將它依次與各個(gè)case指令后的檢測(cè)值進(jìn)行比較,當(dāng)比較結(jié)果為真時(shí),就執(zhí)行相應(yīng)的語句組,然后跳出switch結(jié)構(gòu)。

switch后面的表達(dá)式表達(dá)式的值可以是一個(gè)標(biāo)量或字符串。switch語句

otherwise指令可以不出現(xiàn)。如果所有的比較結(jié)果都為假,則執(zhí)行otherwise后面的語句組,然后跳出switch結(jié)構(gòu)。第53頁,共97頁,2023年,2月20日,星期六try語句try語句組1%語句組1若正確則跳出該結(jié)構(gòu)catch語句組2end

try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。第54頁,共97頁,2023年,2月20日,星期六for循環(huán)變量=初值:步長(zhǎng):終值

循環(huán)體end循環(huán)結(jié)構(gòu)注意:for循環(huán)適合循環(huán)次數(shù)確定的情況;

while循環(huán)適合循環(huán)次數(shù)不確定的情況

while循環(huán)容易出現(xiàn)死循環(huán),使用時(shí)一定要注意.若出現(xiàn)死循環(huán),則按鍵盤:Ctrl+C強(qiáng)制結(jié)束程序.while條件

循環(huán)體end提示:與各種編程語言一樣,各種結(jié)構(gòu)之間可以嵌套使用.第55頁,共97頁,2023年,2月20日,星期六

例已知y的表達(dá)式,當(dāng)n=100時(shí),求y的值。程序如下:

y=0;n=100;fori=1:ny=y+1/i/i;endy在實(shí)際MATLAB編程中,為提高程序的執(zhí)行速度,常用向量運(yùn)算來代替循環(huán)操作:n=100;i=1:n;f=1./i.^2;y=sum(f)第56頁,共97頁,2023年,2月20日,星期六第四節(jié)MATLAB繪圖第57頁,共97頁,2023年,2月20日,星期六1、法1:plot(x,y)

x是向量,y是矩陣,若x的長(zhǎng)度與y的行數(shù)相等,則將x與y中的各列相對(duì)應(yīng),繪制多條平面曲線;否則,若x的長(zhǎng)度與y的列數(shù)相等,則將x與y中的各行相對(duì)應(yīng),繪制多條平面曲線。此時(shí)x的長(zhǎng)度必須等于y的行數(shù)或列數(shù)。

x,y都是矩陣,則將x和y的對(duì)應(yīng)列組合,繪制多條平面曲線。此時(shí)x,y必須具有相同的大小。

x,y都是向量,則以x中元素為橫坐標(biāo),y中元素為縱坐標(biāo)作平面曲線。此時(shí)x,y必須具有相同長(zhǎng)度。4.1二維圖形第58頁,共97頁,2023年,2月20日,星期六輸入?yún)?shù)都為向量時(shí),x1和y1,…,xn和yn分別組成一組向量對(duì),每一組向量對(duì)的長(zhǎng)度可以不同。每一向量對(duì)可以繪制出一條曲線,這樣可以在同一坐標(biāo)內(nèi)繪制出多條曲線。

plot(x1,y1,’選項(xiàng)1’,…,xn,yn,’選項(xiàng)n’)當(dāng)輸入?yún)?shù)有矩陣形式時(shí),配對(duì)的x,y按對(duì)應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)第59頁,共97頁,2023年,2月20日,星期六圖形的基本屬性線型點(diǎn)標(biāo)記顏色-

實(shí)線:

虛線-.

點(diǎn)劃線--

間斷線.

點(diǎn)o

小圓圈x

叉子符+

加號(hào)*

星號(hào)s方格d菱形^朝上三角v朝下三角>朝右三角<朝左三角p五角星h六角星y黃色

m棕色

c青色r紅色g綠色b藍(lán)色w白色k黑色help

plot查看第60頁,共97頁,2023年,2月20日,星期六>>x=0:pi/15:2*pi;>>y1=sin(x);y2=cos(x);>>plot(x,y1,'b:+',x,y2,'g-.*')例:藍(lán)色、虛線、離散點(diǎn)用加號(hào)綠色、點(diǎn)劃線線、離散點(diǎn)用星號(hào)第61頁,共97頁,2023年,2月20日,星期六法2、二維曲線的繪制:ezplot

ezplot(f(x,y),[a,b,c,d])繪f(x,y)=0在區(qū)間a<x<b,c<y<d上的圖形

ezplot(f,g,[a,b])繪x=f(t),y=g(t)在區(qū)間a<t<b上的圖形

ezplot(f(x,y),[a,b])繪f(x,y)=0在區(qū)間a<x,y<b上的圖形缺省的繪圖區(qū)間為[-2,2]缺省的繪圖區(qū)間為[0,2]

ezplot(f,[a,b])繪y=f(x)在區(qū)間a<x<b上的圖形缺省的繪圖區(qū)間為[-2,2]第62頁,共97頁,2023年,2月20日,星期六例:ezplot作圖第63頁,共97頁,2023年,2月20日,星期六4.2三維曲線:plot3繪制一條三維曲線:x=x(t),y=y(t),z=z(t),則:plot3的用法與

plot類似plot3(x,y,z,’選項(xiàng)’)plot3(x1,y1,z1,’選項(xiàng)1’,x2,y2,z2,’選項(xiàng)2’…,xn,yn,zn,’選項(xiàng)n’)繪制多條三維曲線:三維曲線的簡(jiǎn)捷繪制:ezplot3缺省的繪圖區(qū)間為[0,2]

ezplot3(x,y,z,[a,b])繪空間曲線x=x(t),y=y(t),z=z(t)在a<t<b上的圖形第64頁,共97頁,2023年,2月20日,星期六4.3三維曲面繪制由函數(shù)z=z(x,y)確定的曲面時(shí),步驟如下:

setp1:x=a:dx:b;y=c:dy:d;[X,Y]=meshgrid(x,y);

setp2:

再計(jì)算函數(shù)z=z(x,y)在各網(wǎng)格點(diǎn)上的值Z=……;注意此處采用點(diǎn)運(yùn)算

setp3:其中,X,Y是網(wǎng)格劃分后得到的網(wǎng)格矩陣若x=y,則可簡(jiǎn)寫為[X,Y]=

meshgrid(x)mesh(X,Y,Z,C)或surf(X,Y,Z,C)或其它繪圖函數(shù)繪制由矩陣X,Y,Z所確定的曲面網(wǎng)格圖(或著色的表面圖),矩陣C用于確定網(wǎng)格顏色,省略時(shí)C=Z。第65頁,共97頁,2023年,2月20日,星期六例:“墨西哥帽子”(

–a<x<a,-a<y<a)第66頁,共97頁,2023年,2月20日,星期六a=8時(shí)的曲面圖形>>x=-8:0.5:8;>>y=-8:0.5:8;>>[X,Y]=meshgrid(x,y);>>r=sqrt(X.^2+Y.^2)+eps;>>Z=sin(r)./r;>>subplot(1,2,1),mesh(X,Y,Z)>>subplot(1,2,2),surf(X,Y,Z)+eps?第67頁,共97頁,2023年,2月20日,星期六mesh與surf的比較第68頁,共97頁,2023年,2月20日,星期六三維曲面的簡(jiǎn)捷繪制:ezmesh、ezsurf

ezmesh(z,[a,b,c,d])

ezmesh(x,y,z,[a,b,c,d])ezsurf

的用法與

ezmesh

相同第69頁,共97頁,2023年,2月20日,星期六標(biāo)題標(biāo)注title(‘text’,‘屬性1’,屬性1的值,‘屬性2’,屬性2的值,...)屬性:linewidth,markersize,fontsize,

fontweight,fontname,…4.4輔助操作(適合二維和三維圖形)坐標(biāo)軸標(biāo)注xlabel、ylabel、zlabel第70頁,共97頁,2023年,2月20日,星期六添加圖例legend在指定位置(x,y)處添加文本text(x,y,string1,string2,...)顯示網(wǎng)格gridon/off畫/不畫網(wǎng)格線grid

在兩種狀態(tài)之間切換axis([xmin,xmax,ymin,ymax,zmin,zmax])作用:控制坐標(biāo)軸的顯示范圍坐標(biāo)軸控制命令:axis第71頁,共97頁,2023年,2月20日,星期六劃分繪圖區(qū)域subplot(m,n,p)將一個(gè)繪圖窗口分割成m*n個(gè)子區(qū)域,并按行從左至右依次編號(hào)。并指定第p個(gè)為圖形的繪圖區(qū)域。>>

x=-pi:pi/10:pi;>>

subplot(2,2,1);plot(x,sin(x));>>

subplot(2,2,2);plot(x,cos(x));>>

subplot(2,2,3);plot(x,x.^2);>>

subplot(2,2,4);plot(x,exp(x));例:第72頁,共97頁,2023年,2月20日,星期六第五節(jié)MATLAB數(shù)值計(jì)算功能1、求解線性方程組Ax=B命令:x=A\BxA=B命令:x=B/A對(duì)Am*nm=n正定矩陣給出唯一解m>n超定矩陣給出最小二乘解m<n不定矩陣只能求最多具有m個(gè)非零元素的基解第73頁,共97頁,2023年,2月20日,星期六2、數(shù)據(jù)的擬合與插值多項(xiàng)式最小二乘法擬合

polyfit(X,Y,n):X,Y為原始數(shù)據(jù),n為擬合的次數(shù)

一維插值y0=interp1(X,Y,X0,‘插值方法’):插值方法可取為:‘nearest’最近點(diǎn)插值

‘linear’線性插值

‘spline’3次樣條插值(推薦使用)

‘pchip’3次Hermite插值

‘cubic’同上第74頁,共97頁,2023年,2月20日,星期六例:假設(shè)已知的數(shù)據(jù)點(diǎn)來自函數(shù)試根據(jù)生成的數(shù)據(jù)進(jìn)行插值,得到較光滑的曲線第75頁,共97頁,2023年,2月20日,星期六x=0:0.12:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);x1=0:0.02:1;y1=interp1(x,y,x1);y2=interp1(x,y,x1,'cubic');y3=interp1(x,y,x1,'spline');y4=interp1(x,y,x1,'nearest');y0=(x1.^2-3*x1+5).*exp(-5*x1).*sin(x1);plot(x1,y1,'r:',x1,y2,'g:',x1,y3,‘m:',x1,y4,'b:',x,y,'mo',x1,y0,'k')第76頁,共97頁,2023年,2月20日,星期六interp1默認(rèn)的linear插值得到的曲線和plot畫出來的曲線一樣粗糙,而’nearest’選項(xiàng)得到的插值效果就更差了。而采用’cubic’和’spline’選項(xiàng)得到的插值更接近與理論值.第77頁,共97頁,2023年,2月20日,星期六3、MATLAB中的數(shù)值積分命令(2)quad:采用自適應(yīng)變步長(zhǎng)的辛普森法,格式為

quad(fun,a,b,tol)其中,fun為被積函數(shù),可以是一個(gè)fun.m的函數(shù)文件名,該函數(shù)一般格式為y=fun(x),或用inline函數(shù)定義a,b為定積分的上下限,tol為用戶指定的誤差限,缺省值為10-6

數(shù)值求解定積分的命令(1)trapz:采用梯形法,精度不高第78頁,共97頁,2023年,2月20日,星期六(3)quadl:采用Lobbato算法,其精度和速度遠(yuǎn)高于quad()函數(shù),故在追求高精度數(shù)值解時(shí)可采用該函數(shù),其調(diào)用格式與quad()完全一致

推薦使用quadl早期matlab版本中有基于8階Newton-Cotes算法的函數(shù)quad8,精度和速度均高于quad(),現(xiàn)在已經(jīng)被quadl替代第79頁,共97頁,2023年,2月20日,星期六例試用quad()和quadl()函數(shù)分別求解定積分法1-1:>>f=inline('cos(15*x)','x');tic,I1=quad(f,0,3*pi/2),toc結(jié)果:I1=6.666665694139176e-002Elapsedtimeis0.177297seconds.可見,這樣的計(jì)算精度并不高,不是很令人滿意,現(xiàn)在設(shè)置精度為10-15,看看結(jié)果如何第80頁,共97頁,2023年,2月20日,星期六法1-2:>>f=inline('cos(15*x)','x');tic,I2=quad(f,0,3*pi/2,1e-15),toc結(jié)果為:Warning:Maximumfunctioncountexceeded;singularitylikely.>Inquadat110I2=-4.119866644515864e-001Elapsedtimeis1.733378seconds.可見,當(dāng)設(shè)置精度為10-15時(shí),該方法失效下面試試quadl,在精度為10-15時(shí),是否會(huì)失效第81頁,共97頁,2023年,2月20日,星期六法2-1:>>f=inline('cos(15*x)','x');tic,I3=quadl(f,0,3*pi/2,1e-15),toc結(jié)果為:I3=6.666666666666668e-002Elapsedtimeis0.830788seconds.可見,當(dāng)設(shè)置精度為10-15時(shí),quadl并未失效當(dāng)設(shè)置精度為10-20時(shí),quadl會(huì)失效嗎第82頁,共97頁,2023年,2月20日,星期六法2-2:>>f=inline('cos(15*x)','x');tic,I4=quadl(f,0,3*pi/2,1e-20),toc結(jié)果為:Warning:Maximumfunctioncountexceeded;singularitylikely.I4=0.4803Elapsedtimeis0.578557.可見,當(dāng)設(shè)置精度為10-20時(shí),quadl失效其實(shí)本題可以用符號(hào)工具箱求出更精確的解法4:>>

symsx;I=vpa(int(cos(15*x),0,3*pi/2),60)結(jié)果:I=.666666666666666666666666666666666666666666666666666666666667e-1第83頁,共97頁,2023年,2月20日,星期六數(shù)值求解二重積分的命令dblquad(fun,x1,x2,y1,y2,tol)求被積函數(shù)fun在矩形區(qū)域[x1,x2]×[y1,y2]的二重積分;其他參數(shù)和quad完全相同例>>f=inline('exp(-x.^2/2).*sin(x.^2+y)','x','y');I=dblquad(f,-2,2,-1,1)遺憾的是,matlab中并沒有提供求下面二重積分的函數(shù)第84頁,共97頁,2023年,2月20日,星期六數(shù)值求解三重積分的命令triplequad(fun,x1,x2,y1,y2,z1.z2.tol,@quadl)在TheMathWorks網(wǎng)站提供了免費(fèi)數(shù)值求解積分的工具箱NIT,可解決matlab數(shù)值求解不了的積分第85頁,共97頁,2023年,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論