建模培訓matlab使用_第1頁
建模培訓matlab使用_第2頁
建模培訓matlab使用_第3頁
建模培訓matlab使用_第4頁
建模培訓matlab使用_第5頁
已閱讀5頁,還剩115頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

建模培訓matlab使用第1頁,課件共120頁,創作于2023年2月數學軟件:Matlab、Mathematica、Maple。統計:spss、sas等運籌:lingo等一、簡介:第2頁,課件共120頁,創作于2023年2月MATLAB介紹MATLAB意為“矩陣實驗室”,源自MatrixLaboratory,它是一種科學計算軟件。

matlab語言是由美國的CleverMoler博士于1980年。開發的設計者的初衷是為解決“線性代數”課程的矩陣運算問題。

目前MATLAB已經成為國際上最流行的軟件之一,除了可提供傳統的交互式的編程方法之外,還能提供豐富可靠的矩陣運算、圖形繪制、數據處理、圖像處理和Windows編程工具等。因而出現了各種以MATLAB為基礎的工具箱,應用于自動控制、圖像信號處理、生物醫學工程、語音處理、信號分析、時序分析與建模、優化設計等廣泛的領域,表現出了一般高級語言難以比擬的優勢。

美國Mathwork軟件公司推出的Matlab軟件就是為了給人們提供一個方便的數值計算平臺而設計的。第3頁,課件共120頁,創作于2023年2月它將一個優秀軟件的易用性與可靠性、通用性與專業性、一般目的的應用與高深的科學技術應用有機的相結合。MATLAB是一種直譯式的高級語言,比其它程序設計語言容易。MATLAB已經不僅僅是一個“矩陣實驗室”了,它集科學計算、圖象處理、聲音處理于一身,并提供了豐富的Windows圖形界面設計方法。第4頁,課件共120頁,創作于2023年2月MATLAB在美國已經作為大學工科學生必修的計算機語言之一(C,FORTRAN,ASSEMBLER,MATLAB)。近年來,MATLAB語言已在我國推廣使用,現在已應用于各學科研究部門和許多高等院校。第5頁,課件共120頁,創作于2023年2月許多學科,在MATLAB中都有專用工具箱,現已有30多個工具箱,但MATLAB語言的擴展開發還遠遠沒有結束,各學科的相互促進,將使得MATLAB更加強大第6頁,課件共120頁,創作于2023年2月豐富的MATLAB工具箱MATLAB主工具箱符號數學工具箱SIMULINK仿真工具箱控制系統工具箱信號處理工具箱圖象處理工具箱通訊工具箱系統辨識工具箱神經元網絡工具箱金融工具箱第7頁,課件共120頁,創作于2023年2月在使用中Matlab的優點有如下幾點:1.易學,編程方便,快捷.2.豐富的數學函數使得數值問題的求解變得很容易。在使用中Matlab的缺點在于:

運行速度,尤其是圖形的處理速度較為緩慢。第8頁,課件共120頁,創作于2023年2月1、試繪制參數方程的三維曲線(m1)2、試繪制出二元函數(m2)3、給定函數,試給出(m3)演示:第9頁,課件共120頁,創作于2023年2月1進入與運行方式1、窗口與界面2、運行方式

1)命令行方式

2)M文件方式二、基本操作第10頁,課件共120頁,創作于2023年2月啟動MATLAB后,將進入MATLAB集成環境。MATLAB集成環境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空間窗口(Workspace)、命令歷史窗口(CommandHistory)、當前目錄窗口(CurrentDirectory)。第11頁,課件共120頁,創作于2023年2月

當MATLAB安裝完畢并首次啟動時,展現在屏幕上的界面為MATLAB的默認界面,如右圖所示。第12頁,課件共120頁,創作于2023年2月1、變量1)變量的命名:

1變量的名字必須以字母開頭。

2之后可以是任意字母、數字或下劃線(—),變量中不能包含有標點符號。

3變量名稱區分字母的大小寫,如time,TIME,Time。

2、變量與函數第13頁,課件共120頁,創作于2023年2月

eps—計算機浮點運算誤差限,在pc機上,若某個量的絕對值小于eps,則可以認為這個量為0。pi—圓周率的近似值3.1415926

inf或Inf—表示正無大,定義為1/0NaN—不定數,不定式。它產生于0×,0/0,/

等運算

i,j—虛數單位

ans—對于未賦值運算結果,自動賦給ans2)特殊變量第14頁,課件共120頁,創作于2023年2月2常用的數學運算符+—*(乘).*(點乘)/(左除)./(點除)\(右除)^(冪)注:在運算式中,MATLAB通常不需要考慮空格;多條命令可以放在一行中,它們之間需要用分號隔開;逗號告訴MATLAB顯示結果,而分號則禁止結果顯示。第15頁,課件共120頁,創作于2023年2月3.數字的輸出格式MATLAB的輸出格式可由format命令控制,但要注意的是format命令只是影響在屏幕上的顯示,而MATLAB的數據存儲和運算總是以雙精度進行的。

Formatshort:5位定點格式,如1.4142

Formatlong:15位定點格式,如.41421356237310

Formatshorte

:5位浮點,如1.4142e+000

Formatlonge

:15位浮點,如1.414213562373095e+000

Formathex

:十六進制數,如3ff6a09e667f3bcd

Formatrat

:分數之比,如1393/985

Format+:若為正數則顯示+,若為負數則顯示-,若為0則顯示空第16頁,課件共120頁,創作于2023年2月4MATLAB的工作空間命令1、MATLAB的工作空間包含了一組可以在命令窗口中調整(調用)的參數who:顯示當前工作空間中所有變量的一個簡單列表 whos:則列出變量的大小、數據格式等詳細信息clear:清除工作空間中所有的變量clear變量名:清除指定的變量clc:清除命令窗口的內容

2、退出工作空間quit

或exithelp命令,在命令窗口中顯示第17頁,課件共120頁,創作于2023年2月名稱含義名稱含義sin正弦log1010為底的對數cos余弦log自然對數tan正切min最小值cot余切max最大值asin反正弦mean平均值acos反余弦fix向0取整atan反正切rem求余數expe為底的指數sqrt平方根log22為底的對數abs絕對值5、常用數學函數第18頁,課件共120頁,創作于2023年2月6M文件1)M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據調用方式的不同分為兩類:命令文件(ScriptFile)(或腳本文件)和函數文件(FunctionFile)。第19頁,課件共120頁,創作于2023年2月2)M文件的建立與打開

M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。

1)建立新的M文件為建立新的M文件,啟動MATLAB文本編輯器有3種方法:

(1)菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項,再選擇M-file命令,屏幕上將出現MATLAB文本編輯器窗口。

(2)命令操作。在MATLAB命令窗口輸入命令edit,啟動MATLAB文本編輯器后,輸入M文件的內容并存盤。

(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動MATLAB文本編輯器后,輸入M文件的內容并存盤。第20頁,課件共120頁,創作于2023年2月3)打開已有的M文件打開已有的M文件,也有3種方法:

(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進行編輯修改,編輯完成后,將M文件存盤。

(2)命令操作。在MATLAB命令窗口輸入命令:edit

文件名,則打開指定的M文件。

(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。第21頁,課件共120頁,創作于2023年2月7函數文件

1)函數文件的基本結構函數文件由function語句引導,其基本結構為:

function輸出形參表=函數名(輸入形參表)

注釋說明部分函數體語句其中以function開頭的一行為引導行,表示該M文件是一個函數文件。函數名的命名規則與變量名相同。輸入形參為函數的輸入參數,輸出形參為函數的輸出參數。當輸出形參多于一個時,則應該用方括號括起來。第22頁,課件共120頁,創作于2023年2月2)函數調用函數調用的一般格式是:

[輸出實參表]=函數名(輸入實參表)

要注意的是,函數調用時各實參出現的定義時形參的順序、個數一致,否則會出錯。函數調用時,先將實參傳遞給相應的形參,從而實現參數傳遞,然后再執行函數的功能。第23頁,課件共120頁,創作于2023年2月例編寫函數文件求半徑為r的圓的面積和周長。函數文件如下:(fcircle.m)function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長s=pi*r*r;p=2*pi*r;窗口調用:[s,p]=fcircle(6)第24頁,課件共120頁,創作于2023年2月程序2:例:,計算f(1)首先建立一個M函數:functionY=fun1(x)Y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);在指令窗口運行以下指令:Z=fun1(1)第25頁,課件共120頁,創作于2023年2月1、x=[a,b,c,d,e,f]或x=[abcdef]2、x=first:last3、x=first:increment:last4、linspace(first,last,n)三數組與矩陣運算1、數組的建立例:x=[123458718]y=1:7z=3:2:9u=linspace(2,9,11)第26頁,課件共120頁,創作于2023年2月空陣[]—matlab允許輸入空陣,當一項操作無結果時,返回空陣。rand——隨機矩陣eye——單位矩陣

eye(N)

生成N*N的單位陣

eye(M,N)

生成M*N的單位陣。zeros——全部元素都為0的矩陣

zeros(N)

生成N*N的全零陣

zeros(M,N)

生成M*N的全零陣。ones——全部元素都為1的矩陣

ones(N)

生成N*N的全一陣

ones(M,N)

生成M*N的全一陣。2、特殊矩陣的生成第27頁,課件共120頁,創作于2023年2月例:a=[]b=zeros(4,5)c=ones(4,5)d=eye(4,5)e=eye(4,4)第28頁,課件共120頁,創作于2023年2月3.矩陣的幾種基本變換操作1.

通過在矩陣變量后加’的方法來表示轉置運算:a=[10,2,12;34,2,4;98,34,6];a'2.

矩陣求逆:inv(a)3.矩陣的特征值:norm(a)4.矩陣的范數:norm(a,1)norm(a,inf)[u,v]=eig(a)5.矩陣的行列式:det(a)第29頁,課件共120頁,創作于2023年2月4MATLAB運算

1)基本算術運算

MATLAB的基本算術運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。

注意,運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。第30頁,課件共120頁,創作于2023年2月(1)矩陣加減運算

假定有兩個矩陣A和B,則可以由A+B和A-B實現矩陣的加減運算。運算規則是:若A和B矩陣的維數相同,則可以執行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。(2)矩陣乘法

假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。第31頁,課件共120頁,創作于2023年2月(3)矩陣除法

在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。

對于含有標量的運算,兩種除法運算的結果相同,如3/4和4\3有相同的值,都等于0.75。第32頁,課件共120頁,創作于2023年2月(4)矩陣的乘方

一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。

2.點運算

在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數相同。第33頁,課件共120頁,創作于2023年2月a=[1,2,3;4,5,6;7,8,9]b=[-1,0,1;1,-1,0;0,1,1]c=a.*ba=123456789b=-1011-10011c=-1034-50089x=[1,2,3;4,5,6]y=[-2,1,3;-1,1,4]z1=x./yz2=y.\xx=123456y=-213-114z1=-0.521-451.5z2=-0.521-451.5第34頁,課件共120頁,創作于2023年2月例:當時,求的值.X=0.1:0.3:1;Y=sin(x).*cos(x)命令:第35頁,課件共120頁,創作于2023年2月一、二維繪圖1

)plot——最基本的二維圖形指令plot的功能:plot命令自動打開一個圖形窗口Figure用直線連接相鄰兩數據點來繪制圖形根據圖形坐標大小自動縮擴坐標軸,將數據標尺及單位標注自動加到兩個坐標軸上,可自定坐標軸,可把x,y軸用對數坐標表示

四matlab語言的繪圖功能第36頁,課件共120頁,創作于2023年2月如果已經存在一個圖形窗口,plot命令則清除當前圖形,繪制新圖形可單窗口單曲線繪圖;可單窗口多曲線繪圖;可單窗口多曲線分圖繪圖;可多窗口繪圖可任意設定曲線顏色和線型可給圖形加坐標網線和圖形加注功能第37頁,課件共120頁,創作于2023年2月plot的調用格式plot(x,y)——基本格式,以y(x)的函數關系作出直角坐標圖。plot(x1,y1,x2,y2,…,xn,yn)——多條曲線繪圖格式。plot(x,y,’s’)——字符串s設定曲線顏色和繪圖方式,使用顏色字符串的前1~3個字母,如yellow—yel表示等。或plot(x1,y1,’s1’,x2,y2,’s2’,…)第38頁,課件共120頁,創作于2023年2月S的標準設定值如下:

字母顏色標點線型

y黃色·點線

m粉紅○圈線

c亮藍××線

r大紅++字線

g綠色-實線

b藍色星形線

w白色:虛線

k黑色-·(--)點劃線第39頁,課件共120頁,創作于2023年2月x=0:0.001:10;%0到10的1000個點的x座標y=sin(x);%對應的y座標plot(x,y);%繪圖1.單窗口單曲線繪圖第40頁,課件共120頁,創作于2023年2月2.單窗口多曲線繪圖(m11)例:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)yy1y2第41頁,課件共120頁,創作于2023年2月3.單窗口多曲線分圖繪圖subplot——子圖分割命令調用格式:

subplot(m,n,p)行列繪圖序號

該函數將當前圖形窗口分成m×n個繪圖區,即每行n個,共m行,區號按行優先編號,且選定第p個區為當前活動區,按從左至右,從上至下排列。在每一個繪圖區允許以不同的坐標系單獨繪制圖形。第42頁,課件共120頁,創作于2023年2月例分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。程序如下:(m12)x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');subplot(2,2,2);stairs(x,y,'b');subplot(2,2,3);stem(x,y,'k');subplot(2,2,4);fill(x,y,'y');第43頁,課件共120頁,創作于2023年2月4.圖形加注功能將標題、坐標軸標記、網格線及文字注釋加注到圖形上,這些函數為:1)有關圖形標注函數的調用格式為:title(圖形名稱)xlabel(x軸說明)ylabel(y軸說明)text(x,y,圖形說明)legend(圖例1,圖例2,…)

第44頁,課件共120頁,創作于2023年2月例在0≤x≤2區間內,繪制曲線y1=2e-0.5x和y2=cos(4πx),并給圖形添加圖形標注。程序如下(m14)x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加圖形標題xlabel('VariableX');%加X軸說明ylabel('VariableY');%加Y軸說明text(0.8,1.5,‘曲線y1=2e^{-0.5x}’);%在指定位置添加圖形說明text(2.5,1.1,'曲線y2=cos(4{\pi}x)');legend(‘y1’,‘y2’)%加圖例第45頁,課件共120頁,創作于2023年2月2).坐標控制axis函數的調用格式為:axis([xminxmaxyminymaxzminzmax])axis函數功能豐富,常用的格式還有:axisequal:縱、橫坐標軸采用等長刻度。axissquare:產生正方形坐標系(缺省為矩形)。axisauto:使用缺省設置。axisoff:取消坐標軸。axison:顯示坐標軸。第46頁,課件共120頁,創作于2023年2月給坐標加網格線用grid命令來控制。gridon/off命令控制是畫還是不畫網格線,不帶參數的grid命令在兩種狀態之間進行切換。給坐標加邊框用box命令來控制。boxon/off命令控制是加還是不加邊框線,不帶參數的box命令在兩種狀態之間進行切換。圖形保持用hold命令來控制。holdon/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數的hold命令在兩種狀態之間進行切換。第47頁,課件共120頁,創作于2023年2月例:(m15)t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲線');legend('正弦','余弦')xlabel('時間t'),ylabel('正弦、余弦')gridonaxissquare第48頁,課件共120頁,創作于2023年2月例采用圖形保持,在同一坐標內繪制曲線y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。程序如下(m16):x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);plot(x,y1)holdony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);holdoff第49頁,課件共120頁,創作于2023年2月5.ezplot(f)—符號函數(顯函數、隱函數和參數方程)的簡易繪圖函數MATLAB提供了一個ezplot函數繪制隱函數圖形,下面介紹其用法。(1)對于函數,ezplot函數的調用格式為:ezplot(‘f’):在默認區間-2π<x<2π和-2π<y<2π繪制f(x,y)=0的圖形。ezplot(‘f’,[xmin,xmax,ymin,ymax]):在區間xmin<x<xmax和ymin<y<ymax繪制f(x,y)=0的圖形。ezplot(‘f’,[a,b]):在區間a<x<b和a<y<b繪制f(x,y)=0的圖形。第50頁,課件共120頁,創作于2023年2月(2)對于參數方程x=x(t)和y=y(t),ezplot函數的調用格式為:ezplot(‘x’,‘y’):在默認區間0<t<2π繪制x=x(t)和y=y(t)的圖形。ezplot(‘x’,‘y’,[tmin,tmax]):在區間tmin<t<tmax繪制x=x(t)和y=y(t)的圖形。第51頁,課件共120頁,創作于2023年2月subplot(2,2,1);ezplot('x^2+y^2-9');axisequal;subplot(2,2,2);ezplot('x^3+y^3-5*x*y+1/5')subplot(2,2,3);ezplot('cos(tan(pi*x))',[0,1])subplot(2,2,4);ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])例隱函數繪圖應用舉例。(m17)第52頁,課件共120頁,創作于2023年2月6polar函數用來繪制極坐標圖,其調用格式為:

polar(theta,rho,選項)其中theta為極坐標極角,rho為極坐標矢徑,選項的內容與plot函數相似。例繪制r=sin(t)cos(t)的極坐標圖,并標記數據點。程序如下:(m19)t=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,'-*');第53頁,課件共120頁,創作于2023年2月7.特殊二維繪圖函數bar––––繪制直方圖stairs––––繪制階梯圖

stem––––繪制火柴桿圖

comet––––繪制彗星曲線

errorbar––––繪制誤差棒圖

area––––區域圖

pie––––餅圖

scatter––––離散點圖第54頁,課件共120頁,創作于2023年2月二維統計分析圖在MATLAB中,二維統計分析圖形很多,常見的有條形圖、階梯圖、桿圖和填充圖等,所采用的函數分別是:bar(x,y,選項)stairs(x,y,選項)stem(x,y,選項)fill(x1,y1,選項1,x2,y2,選項2,…)第55頁,課件共120頁,創作于2023年2月例:分別以條形圖、階梯圖、桿圖和填充圖形式繪制曲線y=2sin(x)。程序如下:(m20)x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');title('stairs(x,y,''b'')');axis([0,7,-2,2]);subplot(2,2,3);stem(x,y,'k');title('stem(x,y,''k'')');axis([0,7,-2,2]);subplot(2,2,4);fill(x,y,'y');title('fill(x,y,''y'')');axis([0,7,-2,2]);第56頁,課件共120頁,創作于2023年2月MATLAB提供的統計分析繪圖函數還有很多,例如,用來表示各元素占總和的百分比的餅圖、例繪制圖形:(1)某企業全年各季度的產值(單位:萬元)分別為:2347,1827,2043,3025,試用餅圖作統計分析。程序如下:(m21)pie([2347,1827,2043,3025]);title('餅圖');legend('一季度','二季度','三季度','四季度');第57頁,課件共120頁,創作于2023年2月二、三維繪圖三維繪圖的主要功能:繪制三維線圖繪制等高線圖繪制偽彩色圖繪制三維網線圖繪制三維曲面圖、柱面圖和球面圖繪制三維多面體并填充顏色第58頁,課件共120頁,創作于2023年2月(一)三維線圖plot3——基本的三維圖形指令plot3函數與plot函數用法十分相似,其調用格式為:plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n)

其中每一組x,y,z組成一組曲線的坐標參數,選項的定義和plot函數相同。第59頁,課件共120頁,創作于2023年2月二維圖形的所有基本特性對三維圖形全都適用。定義三維坐標軸大小

axis([xminxmaxyminymaxzminzmax])gridon(off)繪制三維網格

text(x,y,z,‘string’)三維圖形標注子圖和多窗口也可以用到三維圖形中第60頁,課件共120頁,創作于2023年2月t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Linein3-DSpace');xlabel('X');ylabel('Y');zlabel('Z');gridon;例:繪制三維曲線(m22)第61頁,課件共120頁,創作于2023年2月例:繪制三維線圖t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),‘r:’)(m23)第62頁,課件共120頁,創作于2023年2月三維曲面1.產生三維數據在MATLAB中,利用meshgrid函數產生平面區域內的網格坐標矩陣。其格式為:

x=a:d1:b;y=c:d2:d;1.[X,Y]=meshgrid(x,y);2.[X,Y]=meshgrid(x);meshgrid的作用是產生一個以向量x為行、向量y為列的矩陣。第63頁,課件共120頁,創作于2023年2月x=[234];y=[345];[X,Y]=meshgrid(x,y);例:第64頁,課件共120頁,創作于2023年2月繪制三維曲面的函數surf函數和mesh函數的調用格式為:mesh(x,y,z,c)surf(x,y,z,c)一般情況下,x,y,z是維數相同的矩陣。x,y是網格坐標矩陣,z是網格點上的高度矩陣,c用于指定在不同高度下的顏色范圍第65頁,課件共120頁,創作于2023年2月例繪制三維曲面圖z=sin(x+sin(y))-x/10。程序如下:(m25)[x,y]=meshgrid(0:0.25:4*pi);z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([04*pi04*pi-2.51]);第66頁,課件共120頁,創作于2023年2月注:meshc是帶等高線的三維網格曲面函數

meshz帶底座的三維網格曲面函數。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。第67頁,課件共120頁,創作于2023年2月例在xy平面內選擇區域[-8,8]×[-8,8],繪制4種三維曲面圖。程序如下:(m26)[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);title(‘’);mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3);meshz(x,y,z);title('meshz(x,y,z)')subplot(2,2,4);surf(x,y,z);title('surf(x,y,z)')第68頁,課件共120頁,創作于2023年2月5.4.3其他三維圖形在介紹二維圖形時,曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現,使用的函數分別是bar3、stem3、pie3和fill3。bar3函數繪制三維條形圖,常用格式為:bar3(y)bar3(x,y)第69頁,課件共120頁,創作于2023年2月stem3函數繪制離散序列數據的三維桿圖,常用格式為:stem3(z)stem3(x,y,z)pie3函數繪制三維餅圖,常用格式為:pie3(x)fill3函數等效于三維函數fill,可在三維空間內繪制出填充過的多邊形,常用格式為:fill3(x,y,z,c)第70頁,課件共120頁,創作于2023年2月符號運算符功能函數名==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge&邏輯與and|邏輯或or~邏輯非not1)關系、邏輯關系運算五、Matlab程序設計第71頁,課件共120頁,創作于2023年2月2)數據的輸入、輸出

1.數據的輸入從鍵盤輸入數據,則可以使用input函數來進行,該函數的調用格式為:

A=input(提示信息,選項);其中提示信息為一個字符串,用于提示用戶輸入什么樣的數據。第72頁,課件共120頁,創作于2023年2月如果在input函數調用時采用‘s’選項,則允許用戶輸入一個字符串。例如,想輸入一個人的姓名,可采用命令:

xm=input('What'syourname?','s');2.數據的輸出

MATLAB提供的命令窗口輸出函數主要有disp函數,其調用格式為:

disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。第73頁,課件共120頁,創作于2023年2月

例輸入x,y的值,并將它們的值互換后輸出。程序如下:(m4)x=input(‘Inputxplease:');y=input(‘Inputyplease:');z=x;x=y;y=z;disp(x);disp(y);第74頁,課件共120頁,創作于2023年2月3)選擇結構1.if語句在MATLAB中,if語句有3種格式。

(1)單分支if語句:

if

條件

語句組

end當條件成立時,則執行語句組,執行完之后繼續執行if語句的后繼語句,若條件不成立,則直接執行if語句的后繼語句。第75頁,課件共120頁,創作于2023年2月(2)雙分支if語句:

if

條件

語句組1

else

語句組2

end

當條件成立時,執行語句組1,否則執行語句組2,語句組1或語句組2執行后,再執行if語句的后繼語句。第76頁,課件共120頁,創作于2023年2月例計算分段函數的值。(m5)程序如下:x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy第77頁,課件共120頁,創作于2023年2月(3)多分支if語句:if條件1

語句組1elseif條件2

語句組2……elseif條件m

語句組melse

語句組nend語句用于實現多分支選擇結構。第78頁,課件共120頁,創作于2023年2月例:學生的成績管理,用來演示if-else-end分支結構的應用。%劃分區域:滿分(100),優秀(90-99),良好(80-89),及格(60-79),不及格(<60)。(m6)N=input('輸入分數:');ifN>=90&N<=100S='優秀'; %列為'優秀'等級elseifN>=80&N<90S='良好'; %列為'良好'等級elseifN>=60&N<80S='及格';%列為'及格'等級elseS='不及格';%列為'不及格'等級enddisp(S)第79頁,課件共120頁,創作于2023年2月2.switch語句

switch語句根據表達式的取值不同,分別執行不同的語句,其語句格式為:

switch表達式

case表達式1

語句組1case表達式2

語句組2……case表達式m

語句組motherwise

語句組nend當表達式的值等于某個case語句后的條件時,程序將轉移到該語句中執行當任意一個分支的語句執行完后,直接執行switch語句的下一句。第80頁,課件共120頁,創作于2023年2月

程序如下:result=input(‘請輸入分數');n=fix(result/10);switchncase{9,10}disp(‘優秀’);case8disp(‘良好’);case{6,7}disp(‘及格’);otherwisedisp(‘不及格’);end第81頁,課件共120頁,創作于2023年2月2)循環結構1.for語句for語句的格式為:for循環變量=表達式1:表達式2:表達式3

循環體語句end其中表達式1的值為循環變量的初值,表達式2的值為步長,表達式3的值為循環變量的終值。步長為1時,表達式2可以省略。第82頁,課件共120頁,創作于2023年2月2.while語句

while語句的一般格式為:

while

條件循環體語句

end

其執行過程為:若條件成立,則執行循環體語句,執行后再判斷條件是否成立,如果不成立則跳出循環。第83頁,課件共120頁,創作于2023年2月例:用while循環求1~100間整數的和程序如下:(m9)sum=0;i=1;whilei<=100sum=sum+i;i=i+1;endsum

sum=5050

第84頁,課件共120頁,創作于2023年2月五Matlab符號運算1符號對象2符號微積分3符號方程求解第85頁,課件共120頁,創作于2023年2月1符號對象1.1建立符號對象1.建立符號變量和符號常量MATLAB提供了兩個建立符號對象的函數:sym和syms,兩個函數的用法不同。(1)sym函數sym函數用來建立單個符號量,一般調用格式為:

符號量名=sym('符號字符串')如:x=sym(‘x’)第86頁,課件共120頁,創作于2023年2月(2)syms函數MATLAB提供了另一個函數syms,一次可以定義多個符號變量。syms函數的一般調用格式為:syms符號變量名1符號變量名2…符號變量名n注:變量間用空格而不要用逗號分隔。如:symsxyz第87頁,課件共120頁,創作于2023年2月例1:f=2*x^2+3*x-5;g=x^2+x-7;>>symsx>>f=2*x^2+3*x-5;g=x^2+x-7;>>h=f+gans=h=3*x^2+4*x-12例2:f=cos(x);g=sin(2*x);>>symsx>>f=cos(x);g=sin(2*x);>>f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)第88頁,課件共120頁,創作于2023年2月2.符號表達式的因式分解與展開MATLAB提供了符號表達式的因式分解與展開的函數,函數的調用格式為:factor(f):對符號表達式s分解因式。expand(f):對符號表達式s進行展開。collect(f):對符號表達式s合并同類項。collect(f,v):對符號表達式s按變量v合并同類項。第89頁,課件共120頁,創作于2023年2月例:分解symsx;y=x^3+3*x^2-13*x-15;factor(y)ans=(x+5)*(x-3)*(x+1)例:展開symsx;y=(x-3)^2;expand(y)ans=x^2-6*x+9第90頁,課件共120頁,創作于2023年2月4.符號表達式的化簡MATLAB提供的對符號表達式化簡的函數有:simplify(f):應用函數規則對s進行化簡。simple(f):調用MATLAB的其他函數對表達式進行綜合化簡,并顯示化簡過程。symsxf=(x^2-3*x-10)/(x+2);simplify(f)例:化簡(m31)第91頁,課件共120頁,創作于2023年2月2.2符號導數diff函數用于對符號表達式求導數。該函數的一般調用格式為:diff(f):沒有指定變量和導數階數,默認變量對符號表達式f求一階導數。diff(f,'v',n):以v為自變量,對符號表達式f求n階導數。第92頁,課件共120頁,創作于2023年2月例:求函數的二階導數(m9)symsx;f=3*x^3+5*x+1;diff(f,2)解:Matlab命令(m32)例:求函數關于x的偏導數(m10)解:Matlab命令(m33)symsxy;z=x^2*sin(2*y);B=diff(z,x)pretty(B)第93頁,課件共120頁,創作于2023年2月2.3符號積分符號積分由函數int來實現。該函數的一般調用格式為:int(f):沒有指定積分變量和積分階數時,系統默認變量對被積函數或符號表達式f求不定積分。int(f,v):以v為自變量,對被積函數或符號表達式f求不定積分。int(f,v,a,b):求定積分運算。a,b分別表示定積分的下限和上限。該函數求被積函數在區間[a,b]上的定積分。第94頁,課件共120頁,創作于2023年2月symsx;y=1/(sin(x)^2*cos(x)^2);pretty(int(y))計算解:Matlab命令(m34)symsxz;y=x/(1+z^2);pretty(int(y,z))計算解:Matlab命令(m35)第95頁,課件共120頁,創作于2023年2月計算二重不定積分symsxy;A=int(int(x^2+y^2+1,y,x,x+1),x,0,1);symsx;y=1/(3+2*x+x^2);pretty(int(y,x,0,1))計算解:Matlab命令(m36)解:Matlab命令(m37)第96頁,課件共120頁,創作于2023年2月4符號方程求解4.1符號代數方程求解在MATLAB中,求解用符號表達式表示的代數方程可由函數solve實現,其調用格式為:solve(f):求解符號表達式f的代數方程,求解變量為默認變量。solve(f,v):求解符號表達式f的代數方程,求解變量為v。solve(f1,f2,…,fn,v1,v2,…,vn):求解符號表達式f1,f2,…,fn組成的代數方程組,求解變量分別v1,v2,…,vn。第97頁,課件共120頁,創作于2023年2月例:解方程組(m38)

程序:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1','x','y','z')z=5/6,y=-1/2,x=2/3第98頁,課件共120頁,創作于2023年2月4.2符號常微分方程求解在MATLAB中,用大寫字母D表示導數。例如,Dy表示y‘,D2y表示y’‘,Dy(0)=5表示y’(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y‘’‘+y’‘+y’-x+5=0。第99頁,課件共120頁,創作于2023年2月符號常微分方程求解可以通過函數dsolve來實現,其調用格式為:

dsolve(e,c,v)該函數求解常微分方程e在初值條件c下的特解。參數v描述方程中的自變量,省略時按缺省原則處理,dsolve在求常微分方程組時的調用格式為:

dsolve(e1,e2,…,en,c1,…,cn,v1,…,vn)該函數求解常微分方程組e1,…,en在初值條件c1,…,cn下的特解,若不給出初值條件,則求方程組的通解,v1,…,vn給出求解變量。第100頁,課件共120頁,創作于2023年2月求該方程的解(m44)y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')解:exp(-x)*cos(x)+exp(-x)*sin(x)ezplot(y)——方程解y(t)的時間曲線圖程序:第101頁,課件共120頁,創作于2023年2月第102頁,課件共120頁,創作于2023年2月例:兩個線性一階方程

[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g')f=C1*exp(3*x)*sin(4*x)+C2*exp(3*x)*cos(4*x)g=-C2*exp(3*x)*sin(4*x)+C1*exp(3*x)*cos(4*x)程序:m54解:第103頁,課件共120頁,創作于2023年2月非線性方程數值求解單變量非線性方程求解

在MATLAB中提供了一個fzero函數,可以用來求單變量非線性方程的根。該函數的調用格式為:

z=fzero('fname',x0,tol,trace)其中fname是待求根的函數文件名,x0為搜索的起點。一個函數可能有多個根,但fzero函數只給出離x0最近的那個根。tol控制結果的相對精度,缺省時取tol=eps,trace指定迭代信息是否在運算中顯示,為1時顯示,為0時不顯示,缺省時取trace=0。六、數值方程解第104頁,課件共120頁,創作于2023年2月求f(x)=x-10x+2=0在x0=0.5附近的根。

步驟如下:(1)建立函數文件funx.m。

functionfx=funx(x)fx=x-10.^x+2;(2)調用fzero函數求根。m53

z=fzero('funx',0.5)z=0.3758第105頁,課件共120頁,創作于2023年2月非線性方程組的求解

對于非線性方程組F(X)=0,用fsolve函數求其數值解。函數的調用格式為:

X=fsolve('fun',X0,option)其中X為返回的解,fun是用于定義需求解的非線性方程組的函數文件名,X0是求根過程的初值,

option為最優化工具箱的選項設定。最優化工具箱提供了20多個選項。第106頁,課件共120頁,創作于2023年2月求下列非線性方程組在(0.5,0.5)附近的數值解。

(1)建立函數文件myfun.m。functionq=myfun(p)x=p(1);y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q(2)=y-0.6*cos(x)+0.3*sin(y);

(2)在給定的初值x0=0.5,y0=0.5下,調用fsolve函數求方程的根。m52x=fsolve('myfun',[0.5,0.5]')x=0.63540.3734第107頁,課件共120頁,創作于2023年2月2常微分方程初值問題的數值解法龍格-庫塔法的實現基于龍格-庫塔法,MATLAB提供了求常微分方程數值解的函數,一般調用格式為:

[t,y]=ode23('fname',tspan,y0)[t,y]=ode45('fname',tspan,y0)其中fname是定義f(t,y)的函數文件名,該函數文件必須返回一個列向量。tspan形式為[t0,tf],表示求解區間。y0是初始狀態列向量。t和y分別給出時間向量和相應的狀態向量。第108頁,課件共120頁,創作于2023年2月設有初值問題,試求其數值解(1)建立函數文件funt.m。functionyp=funt(t,y)yp=(y^2-t-2)/4/(t+1);(2)求解微分方程。m51t0=0;tf=10;y0=2;[t,y]=ode23('funt',[t0,tf],y0);%求數值解t'y'第109頁,課件共120頁,創作于2023年2月設已知某個函數關系y=f(x)在某些離散點上的函數值:

(6.1)x0x1x2x3x4xg(x)

f(x)七、數據插值、擬和

第110頁,課件共120頁,創作于2023年2月插值問題:

根據這些已知數據來構造函數y=f(x)的一種簡單的近似表達式以便于計算點的函數值,或計算函數的一階、二階導數值。oy●●●●

y0

x1

x2

xn

y1

yn

x0y=f(x)g(x)

y2x●oy●●●●

y0

x1

x2

xn

y1

yn

x0y=f(x)g(x)第111頁,課件共120頁,創作于2023年2月1一維數據插值在MATLAB中,一維插值的函數是interp1,其調用格式為:Y1=interp1(X,Y,X1,'method')函數根據X,Y的值,計算函數在X1處的值。X,Y是兩個等長的已知向量,分別描述采樣點和樣本值,X1是一個向量或標量,描述欲插值的點,Y1是一個與X1等長的插值結果。m

溫馨提示

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

評論

0/150

提交評論