MATLAB實用技巧精講之一_第1頁
MATLAB實用技巧精講之一_第2頁
MATLAB實用技巧精講之一_第3頁
MATLAB實用技巧精講之一_第4頁
MATLAB實用技巧精講之一_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)學(xué)物理建模與計算機輔助設(shè)計第一部分:Matlab的學(xué)習(xí)1第一部分內(nèi)容1.Matlab的發(fā)展、功能和應(yīng)用的基本情況介紹2.MATLAB的工作界面3.MATLAB的數(shù)值計算功能4.MATLAB的符號計算功能5.MATLAB的圖形可視化6.MATLAB的程序設(shè)計7.本部分作業(yè)和習(xí)題2MATLAB介紹:與其它語言對比C/C++高級語言編譯型編譯環(huán)境如VC++通用編程Matlab高級語言解釋型運行環(huán)境Matlab面向數(shù)學(xué),工程問題Matlab語言特點語言簡潔緊湊,庫函數(shù)非常豐富運算符豐富具有結(jié)構(gòu)化的控制語句和面向?qū)ο缶幊痰奶匦哉Z法限制不嚴格,程序設(shè)計自由度大程序可移植性好圖形功能強大3MATLAB介紹:初步體驗MATLAB的功能例:已知函數(shù),如何求導(dǎo)及高階導(dǎo)數(shù)?思路:①由分式求導(dǎo)公式,得出②逐次求導(dǎo)則可以得出問題:求導(dǎo)過程很繁雜,容易出錯怎么辦?4MATLAB介紹:初步體驗MATLAB的功能Matlab解決>>x=sym(‘x’);>>diff(‘sin(x)/(x^2+4*x+3)’,4)>>ans=sin(x)/(x^2+4*x+3)+4*cos(x)/(x^2+4*x+3)^2*(2*x+4)-12*sin(x)/(x^2+4*x+3)^3*(2*x+4)^2+12*sin(x)/(x^2+4*x+3)^2-24*cos(x)/(x^2+4*x+3)^4*(2*x+4)^3+48*cos(x)/(x^2+4*x+3)^3*(2*x+4)+24*sin(x)/(x^2+4*x+3)^5*(2*x+4)^4-72*sin(x)/(x^2+4*x+3)^4*(2*x+4)^2+24*sin(x)/(x^2+4*x+3)^35MATLAB介紹:

發(fā)展、功能和應(yīng)用MATLAB由MATrix和

LABoratory

兩詞的詞頭合成。1980年美國的CleveMoler博士首先開發(fā)MATLAB。初衷是解決“線性代數(shù)”課程的矩陣運算問題。最初的MATLAB是用FORTRAN編寫的。1884年Moler與其合作者Little和SteveBangert成立MathWorks公司把MATLAB推向市場。采用C語言編寫MATLAB的內(nèi)核,除原有的數(shù)值計算能力外,還新增了數(shù)據(jù)圖視功能。1993年MathWorks公司推出了4.0版本。1997年5.x版本問世。2000年推出6.0版本,2003年推出6.5版本,最新版本是2004年7月推出的7.0版本。6MATLAB介紹:

發(fā)展、功能和應(yīng)用MATLAB是一種直譯式的高級語言,比其它程序設(shè)計語言容易。MATLAB將易用性與可靠性、通用性與專業(yè)性、一般目的的應(yīng)用與高深的科學(xué)技術(shù)應(yīng)用有機的相合。MATLAB不僅是“矩陣實驗室”,集科學(xué)計算、圖象處理、聲音處理于一身,提供豐富的Windows圖形界面設(shè)計方法。MATLAB是功能強大的高級語言,以超群的風(fēng)格與性能風(fēng)靡全世界,成功應(yīng)用于各工程學(xué)科的研究域。MATLAB在美國是大學(xué)工科學(xué)生必修的計算機語言之一(C,FORTRAN,ASSEMBLER,MATLAB)7MATLAB介紹:

MATLAB能做什么?數(shù)值分析;數(shù)值和符號計算;工程和科學(xué)繪圖;控制系統(tǒng)的設(shè)計和研發(fā);數(shù)字圖像處理;數(shù)字信號處理;通信系統(tǒng)的設(shè)計和仿真;財務(wù)和金融工程。8MATLAB介紹:

體驗強大的表現(xiàn)能力9MATLAB介紹:體驗強大的表現(xiàn)能力用四種方法描述cos(x)*sin(y)圖形10MATLAB介紹:

體驗強大的表現(xiàn)能力利用Matlab進行仿真實驗11MATLAB介紹:

MATLAB相關(guān)資源TheMathWorks公司官方網(wǎng)站產(chǎn)品與全套工具箱手冊下載第三方工具箱下載http://www.M研學(xué)論壇(Matlab,Simulink欄目)/index.html博士家園論壇網(wǎng)站(各類數(shù)學(xué)問題)電腦技能坊Matlab資料/Get/M08A45/index.aspMatlab基礎(chǔ)/machine/matlab/index1/1.htm12MATLAB介紹:

MATLAB的構(gòu)成Matlab由5部分組成1)Matlab工作環(huán)境2)Matlab語言體系3)圖形句柄系統(tǒng)4)Matlab數(shù)學(xué)函數(shù)庫5)Matlab應(yīng)用程序接口(API)13MATLAB的工作界面:工作環(huán)境命令窗口歷史命令菜單欄>>為提示符,在當前提示符后輸入命令按Enter后,Matlab將給出結(jié)果.14MATLAB的工作界面:工作空間在工作空間管理窗口顯示所有目前內(nèi)存中的Matlab變量的變量名,數(shù)學(xué)結(jié)構(gòu),字節(jié)數(shù)以及類型,不同類型分別對應(yīng)不同圖標.雙擊圖標可查看15MATLAB的工作界面:工作環(huán)境16MATLAB的工作界面:調(diào)試編輯器17MATLAB的工作界面:聯(lián)機幫助系統(tǒng)1.聯(lián)機幫助系統(tǒng)2.命令窗口查詢幫助系統(tǒng)3.聯(lián)機演示系統(tǒng)18MATLAB的工作界面:命令窗口常用命令type—可顯示指定M文件的內(nèi)容whos—變量查詢函數(shù),列出在Matlab工作空間中已經(jīng)駐留的變量名清單ans—預(yù)設(shè)計算結(jié)果變量名,輸入后顯示上一次未指定變量名的計算結(jié)果clear—清除所有定義過的變量名clc—清屏clf—清除圖形窗help—顯示當前幫助系統(tǒng)中所有主題help+函數(shù)名—提供該函數(shù)的使用方法lookfor+函數(shù)名—查找一個不知確切名稱的函數(shù)19MATLAB的數(shù)值計算功能1Matlab的數(shù)據(jù)類型2向量及其運算3矩陣及其運算4多項式運算5結(jié)果保存與再用6Matlab矢量化20MATLAB的數(shù)值計算功能:數(shù)據(jù)類型Matlab數(shù)據(jù)類型主要包括數(shù)字11.23.1415926字符串Ihavemanygoodfriends!矩陣單元型數(shù)組結(jié)構(gòu)型變量不同類型數(shù)據(jù)組合在一起,用指針傳遞數(shù)據(jù)Matlab不要求事先聲明要使用的變量Matlab不需要指定變量類型[1234]1'abcd'21MATLAB的數(shù)值計算功能:數(shù)據(jù)類型變量命名規(guī)則由一個字母開頭,后面可以為字母,數(shù)字,下劃線,但不能使用標點區(qū)分大小寫

Abc≠ABc變量名長度不超過31個字符,31個字符之后將被忽略有效MYvar12,MY_Var12和MyVar12_錯誤的變量名12MyVar,_MyVar12變量的作用域未加說明時,默認一切變量為局部變量,本M文件內(nèi)有效關(guān)鍵字global定義全局變量,可以在多個M文件間有效.(非必須)作為好的風(fēng)格,全局變量常用大寫字母表示22MATLAB的數(shù)值計算功能:數(shù)據(jù)類型Matlab預(yù)定義一些常量常量名常量值常量名常量值i,j虛數(shù)單位,i2=-1Realmin最小正浮點數(shù),2-1022pi圓周率Realmax最大正浮點數(shù),21023eps機器零閾值Inf無窮大,如1/0NaN不是一個數(shù),如0/023MATLAB的數(shù)值計算功能:數(shù)據(jù)類型>>pians=3.14159265358979>>1/0Warning:Dividebyzeroans=

Inf>>0/0Warning:Dividebyzeroans=

NaN24MATLAB的數(shù)值計算功能:數(shù)據(jù)類型Matlab中,應(yīng)避免變量與常量同名.若已重名,通過clear+常量名恢復(fù)例:>>pi=1pi=1>>clearpi>>pians=3.1415926535897925MATLAB的數(shù)值計算功能:數(shù)據(jù)類型數(shù)字變量運算>>258*369ans=95202%這里ans指當前計算結(jié)果>>x=258*369x=95202%計算結(jié)果賦給變量x>>x=258*369;>>%用分號;結(jié)束一行,中間結(jié)果不顯示>>x>>x=95202%輸入變量名,則可查詢此變量26MATLAB的數(shù)值計算功能:數(shù)據(jù)類型數(shù)值計算的基本運算符號加法+減法-乘法*除法/乘方^開方sqrt數(shù)值計算的基本運算符號的優(yōu)先級^和sqrt>*和/>+和-27MATLAB的數(shù)值計算功能:數(shù)據(jù)類型數(shù)值計算的顯示格式缺省情況下,整數(shù)輸出為整數(shù),實數(shù)輸出為小數(shù)點后4位浮點數(shù)MATLAB中數(shù)據(jù)采用IEEE浮點標準規(guī)定的長型格式存儲,數(shù)值的有效范圍為10-308~10308。MATLAB的輸入輸出格式完全繼承了C語言的風(fēng)格和規(guī)則。28MATLAB的數(shù)值計算功能:數(shù)據(jù)類型數(shù)字輸入輸出格式:Matlab數(shù)據(jù)存儲和運算總是以雙精度進行的根據(jù)類型顯示不同形式:format命令控制顯示格式>>x=sqrt(2)x=1.4142>>formatlong>>xx=1.4142135623731029MATLAB的數(shù)值計算功能:數(shù)據(jù)類型數(shù)值計算的顯示格式控制

指令含義舉例說明format

通常保證小數(shù)點后四位有效,最多不314.159被顯示為314.1590

超過7位,對于大于1000的實數(shù),用53141.59被顯示為3.1416e+003formatshort

位有效數(shù)字的科學(xué)記數(shù)形式顯示

formatlong

15位數(shù)字表示

3.14159265358979formatshorte

5位科學(xué)記數(shù)表示3.1416e+00formatlonge

15位科學(xué)記數(shù)表示3.14159265358979

e+0030MATLAB的數(shù)值計算功能:數(shù)據(jù)類型作業(yè)1.請指出如下5個變量名中,哪些是合法的?abcd-2xyz_33chana變量ABCDefgh2.在MATLAB指令窗口中運行指令(-32)^(1/5)后,會得到-2么?的全部方根有幾個,并且寫出全部方根的M腳本文件。3.在當前MATLAB過程中已經(jīng)被執(zhí)行過的指令如何被重新調(diào)回再次運行?在以前MATLAB過程中被執(zhí)行過的指令如何被調(diào)回再運行?31MATLAB的數(shù)值計算功能:向量及其運算向量的生成的三種方式1直接輸入向量>>a=[123456789]>>b=[1;2;3;4;5;6;7;8;9]用空格或逗號生成行向量,用分號生成列向量2利用冒號表達式基本形式x=x1:step:xn>>a=1:2:11a=13579113線性等分向量生成基本格式y(tǒng)=linspace(x1,x2,n)>>y=linspace(1,100,6)y=1.000020.800040.600080.2000100.000032MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算1.向量與數(shù)的四則運算向量與數(shù)的加法和減法>>vec1=80:-9:10vec1=8071625344352617>>vec1+101ans=18117216315414513612711833MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算1.向量與數(shù)的四則運算向量與數(shù)的乘法和除法>>vec2=linspace(10,100,9)vec2=10.000021.250032.500043.750055.000066.250077.500088.7500100.0000>>vec2/100ans=0.10000.21250.32500.43750.55000.66250.77500.88751.0000>>vec2*2ans=20.000042.500065.000087.5000110.0000132.5000155.0000177.5000200.000034MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算2.向量與向量之間的加減運算向量與向量的加法(減法)運算:向量中的每個元素與另一個向量相應(yīng)的元素的加法(減法)運算。>>vec1=linspace(200,500,7)vec1=200250300350400450500>>vec2=linspace(900,600,7)vec2=900850800750700650600>>vec3=vec1+vec2vec3=110011001100110011001100110035MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算向量點積:兩個向量在其中一個向量方向上的投影的乘積向量點積實現(xiàn)方法dot(a,b)向量點積函數(shù),返回a和b的數(shù)量點積,a和b須同維>>a=[1,2,3];b=[3,4,5];>>dot(a,b)ans=26AB另一種實現(xiàn)點積方法:>>sum(a.*b)ans=2636MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算向量叉積向量叉積的實現(xiàn)c=cross(a,b)返回向量a和b的叉積,a和b維度必須同為3>>a=[1,2,3];b=[3,4,5];>>c=cross(a,b)c=-24-2ABC37MATLAB的數(shù)值計算功能:向量及其運算向量的基本運算向量混合積向量積的實現(xiàn)>>dot(a,cross(b,c))ans=24>>cross(a,dot(b,c))???Errorusing==>crossAandBmustbesamesize.BCA38MATLAB的數(shù)值計算功能:向量及其運算作業(yè)1.令A(yù)=[1,2,3],B=[3,1,4],C=[9,-1,4](1)求A和B的點積;

(2)求B和C的叉積;

(3)求A、B、C的混合積。2.首先生成一個1×10的隨機數(shù)組A,然后將它的第5個元素和第8個元素取出,并對它們進行四則運算39MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的生成方式直接輸入小矩陣例:表示矩陣a=>>a=[123;456;789]a=1234567891.矩陣大小可不預(yù)先定義2.行元素用空格或逗號格開行之間用分號或回車符分開3.輸入矩陣要以"[]"為標識40MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的生成方式創(chuàng)建M文件輸入大矩陣M文件是一種可以在MATLAB環(huán)境下運行的文本文件,可以分為命令式文件和函數(shù)式文件。這里用到的是命令式文件,可以方便地創(chuàng)建大矩陣。例:編制一個名為example.m的M文件,內(nèi)容如下%example.mexm=[456468873257955216785448881365465688980215]>>example41MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的基本數(shù)學(xué)運算矩陣的基本數(shù)學(xué)運算包括:與矩陣的四則運算與常數(shù)的運算逆運算行列式運算冪運算指數(shù)運算對數(shù)運算開方運算42MATLAB的數(shù)值計算功能:矩陣及其運算矩陣與矩陣的四則運算矩陣與矩陣的加減運算,運算符號為+和-,要求兩個矩陣同階>>a=[123;234;345];>>b=[111;222;333];>>c=a+bc=23445667843MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的四則運算矩陣的乘法運算,運算符號為*,要求兩個矩陣有相鄰公共維,即若A為i×j階,B必須為j×k階時A和B才能相乘>>e=[b,[555]']e=111522253335>>f=a*ef=14141430202020452626266044MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的四則運算矩陣的除法運算,分為左除\和右除/運算。對兩種除法的直觀理解左除"\":X=A\B是方程式A*X=B的解右除“/”:X=B/A是方程式X*A=B的解通常用矩陣的除法求解方程組的解對方程組Ax=b,其中A是一個n×m階矩陣,則當n=m且A非奇異時,方程成為恰定方程當n>m時,方程稱為超定方程(方程數(shù)多于變量數(shù))當n<m時,方程稱為欠定方程(方程數(shù)少于變量數(shù))45MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的四則運算矩陣的除法運算例:求解線性方程組Ax=b,A=[5128;658;9610],b=[7;11;7];>>A=[5128;658;9610];>>b=[7;11;7];>>x=A\bx=-4.7073-1.24395.682946MATLAB的數(shù)值計算功能:矩陣及其運算矩陣與常數(shù)的運算常數(shù)與矩陣的運算是常數(shù)與矩陣各元素之間的運算。需要注意的是進行除法運算的時候常數(shù)通常只能做除數(shù)。矩陣的逆運算矩陣的逆運算用命令inv計算>>a=[21-3-1;3107;-124-2;10-15];>>inv(a)ans=-0.04710.5882-0.2706-0.94120.3882-0.35290.48240.7647-0.22350.2941-0.0353-0.4706-0.0353-0.05880.04710.294147MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的行列式運算矩陣的行列式運算用命令det計算>>a1=det(a)a1=-85>>a2=det(inv(a))a2=-0.0118>>a1*a2ans=1.000048MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的冪運算矩陣的冪運算和數(shù)字的冪運算的形式相同,即用算符^來表示。>>a=[1,2,3;4,5,6;7,8,9]a=123456789>>a^3ans=468576684106213051548165620342412>>a.^3ans=18276412521634351272949MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的基本函數(shù)運算矩陣的函數(shù)運算是矩陣運算中最為實用部分,主要包括特征值的計算、奇異值的計算、條件數(shù)、各類范數(shù)、矩陣的秩和跡的計算、矩陣的空間運算等。矩陣的特征值和特征向量:E=eig(A)

%命令生成由矩陣A的特征值所組成的一個列向量。[x,y]=eigs(A)

%命令生成兩個矩陣,其中x是以矩陣A的特征向量作為列向量組成的矩陣,y是由矩陣A的特征值作為主對角線元素構(gòu)成的對角矩陣。例:計算矩陣A的特征值和特征向量50MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的基本函數(shù)運算矩陣的特征值和特征向量>>A=[73-2;34-1;-2-13];>>[x,y]=eig(A)x=0.5774-0.0988-0.8105-0.57740.6525-0.49080.57740.75130.3197y=2.00000002.39440009.6056注:特征值對應(yīng)的列向量是其對應(yīng)的特征向量。51MATLAB的數(shù)值計算功能:矩陣及其運算矩陣的基本函數(shù)運算矩陣的秩和跡的計算矩陣的秩的求解可由函數(shù)rank實現(xiàn)矩陣的跡的求解可由函數(shù)trace實現(xiàn)例:求矩陣的秩和跡>>e=[1123;2234;3345;44812];>>rank(e)ans=2>>trace(e)ans=1952MATLAB的數(shù)值計算功能:矩陣及其運算一些特殊矩陣的生成全0矩陣>>zeros(m,n);%生成m*n階的全0陣單位矩陣>>eye(m,n);%生成m*n階的單位陣全1矩陣>>ones(m,n);%生成m*n階的全1陣隨機矩陣>>rand(n);%生成n*n階(0,1)區(qū)間均勻分布的隨機陣>>rand(m,n);%生成m*n階(0,1)區(qū)間均勻分布的隨機陣>>randn(m,n);%生成m*n階正態(tài)分布的隨機陣,均值為1,

方差為0,標準差為153MATLAB的數(shù)值計算功能:矩陣及其運算矩陣元素的定位和獲取取出矩陣中某一個元素>>a(i,j)取出矩陣某幾行(列)元素>>a(x1:x2,:)>>a(:,y1:y2)>>a(x1:x2,y1:y2)54MATLAB的數(shù)值計算功能:矩陣及其運算矩陣對角抽取diag(m)diag(m,k)diag(v,k)a=0.95010.89130.82140.92180.23110.76210.44470.73820.60680.45650.61540.17630.48600.01850.79190.4057diag(a,3)=[0.9218]diag(a,2)=[0.82140.7382]’diag(a,1)=[0.89130.44470.1763]’diag(a,0)=[0.95010.76210.61540.1763]’diag(a,-1)=[0.23110.45650.7919]’diag(a,-2)=[0.60680.0185]’diag(a,-3)=[0.4860]’V=[1234567];diag(V,2)ans=00100000000020000000003000000000400000000050000000006000000000700

溫馨提示

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

評論

0/150

提交評論