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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論