《MATLAB數(shù)值計算基礎與實例教程 》課件-第1章 數(shù)值計算基礎_第1頁
《MATLAB數(shù)值計算基礎與實例教程 》課件-第1章 數(shù)值計算基礎_第2頁
《MATLAB數(shù)值計算基礎與實例教程 》課件-第1章 數(shù)值計算基礎_第3頁
《MATLAB數(shù)值計算基礎與實例教程 》課件-第1章 數(shù)值計算基礎_第4頁
《MATLAB數(shù)值計算基礎與實例教程 》課件-第1章 數(shù)值計算基礎_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB數(shù)值計算基礎與實例教程機械工業(yè)出版社21世紀高等院校計算機輔助設計規(guī)劃教材第1

章數(shù)值計算基礎1.1數(shù)據(jù)的類型1.2數(shù)組的應用1.3矩陣運算1.4多項式介紹第1章

數(shù)值計算,亦可稱為科學計算(scientificcomputing),成為科學研究的三種基本手段之一。主要由哪幾門學科組成?計算數(shù)學計算機科學其他工程學科第1章1.1數(shù)據(jù)的類型

MATLAB中的15種數(shù)據(jù)的類型,雙精度類型、單精度類型和整數(shù)類型共同組成了基本的數(shù)據(jù)類型。具體如下圖所示:圖1-1MATLAB數(shù)據(jù)類型

1.1.1字符串第1章北京林業(yè)大學信息學院1.1數(shù)據(jù)的類型字符串

存放行向量文本中屏幕上顯示存放字符ASCII碼文本注:每一個字符占用兩個字節(jié)的內(nèi)存

1.1.1字符串第1章1.1數(shù)據(jù)的類型1.字符串的創(chuàng)建

【例1-1】創(chuàng)建字符串>>b='135'b=135>>class(b)ans=char>>size(b)ans=13在進行字符串的創(chuàng)建時,只需將字符串的內(nèi)容用單引號包括起來即可。第1章北京林業(yè)大學信息學院1.1數(shù)據(jù)的類型2.字符串的基本操作(1)字符串拼接:字符串可以利用“[]”運算符進行拼接。(2)字符串操作函數(shù)函

數(shù)說

明char創(chuàng)建字符串,將數(shù)值轉(zhuǎn)變成為字符串double將字符串轉(zhuǎn)變成為Unicode數(shù)值blanks空白字符串的創(chuàng)建(由空格組成)strcmp比較字符串,判斷是否一致findstr在較長的字符串中查尋較短的字符串出現(xiàn)的索引strfind在第一個字符串中查尋第二個字符串出現(xiàn)的索引strjust對齊排列字符串strrep替換字符串中的子串strmatch查詢匹配的字符串表1-1字符串操作函數(shù)第1章1.1數(shù)據(jù)的類型(3)字符串轉(zhuǎn)換函數(shù)

在MATLAB中使用不同的函數(shù)可以允許不同類型的數(shù)據(jù)和字符串類型的數(shù)據(jù)之間進行轉(zhuǎn)換。數(shù)字與字符之間的轉(zhuǎn)換函數(shù)數(shù)值之間的轉(zhuǎn)換函數(shù)num2str,int2str,mat2str,str2double,str2num,sprinf,sscanfhex2num,hex2dec,dec2hex,bin2dec,dec2bin,base2dec,dec2base注意:使用str2num函數(shù),被轉(zhuǎn)換的字符串僅能包含數(shù)字、小數(shù)點、字符“e”或者“d”、數(shù)字的正號或者負號、復數(shù)的虛部字符“i”或者“j”。

1.1.2數(shù)值類型第1章1.1數(shù)據(jù)的類型

在MATLAB數(shù)值計算基礎學習中,數(shù)值類型變量或?qū)ο笾饕糜诿枋龌镜臄?shù)值對象。1.基本數(shù)值類型數(shù)據(jù)類型說

明字節(jié)數(shù)single單精度數(shù)據(jù)類型4double雙精度數(shù)據(jù)類型8sparse稀疏矩陣數(shù)據(jù)類型N/Auint8無符號8位整數(shù)1uint16無符號16位整數(shù)2int8有符號8位整數(shù)1int16有符號16位整數(shù)2int32有符號32位整數(shù)4int64有符號64位整數(shù)8表1-2基本數(shù)值類型第1章1.1數(shù)據(jù)的類型2.整數(shù)類型數(shù)據(jù)運算表1-3整數(shù)類型數(shù)據(jù)的運算函數(shù)函數(shù)解釋函數(shù)解釋bitand數(shù)據(jù)位“與”運算bitor數(shù)據(jù)位“或”運算bitxor數(shù)據(jù)位“異或”運算bitset指定的數(shù)據(jù)位設為1bitget獲取指定的數(shù)據(jù)位數(shù)值bitshift數(shù)據(jù)位移操作bitmax最大浮點整數(shù)數(shù)值bitcmp按指定數(shù)據(jù)位數(shù)求數(shù)據(jù)補碼3.常量可以被賦予新的值,取代原值恢復到原有的值(使用clear命令)4.空數(shù)組創(chuàng)建數(shù)組創(chuàng)建矩陣空數(shù)組用于

1.1.3函數(shù)句柄第1章1.1數(shù)據(jù)的類型函數(shù)句柄(Functionhandle)是MATLAB中的一種數(shù)據(jù)類型。函數(shù)句柄語法

函數(shù)句柄優(yōu)點?可靠性強效率高速度快fhandle=@function_filename

1.1.4布爾運算第1章1.1數(shù)據(jù)的類型布爾運算又稱邏輯(logical)運算關系運算包含?傳統(tǒng)的集合運算專業(yè)的關系運算并集、差集和交集選擇、投影、連接和除法用于測試真假值常見應用:循環(huán)的處理第1章1.1數(shù)據(jù)的類型1.數(shù)據(jù)類型2.布爾運算運算符說明&元素與操作&&具有短路作用的邏輯與操作(僅處理標量)|元素或操作||具有短路作用的邏輯或操作(僅處理標量)~邏輯非操作xor邏輯異或操作all當向量中的元素都是非零元素時,返回真any當向量中的元素存在非零元素時,返回真指可以處理邏輯類型數(shù)據(jù)的運算。表1-4邏輯運算符及其作用一般情況:0表示邏輯類型true

1表示邏輯類型false;logical()函數(shù):非零數(shù)值表示true

0表示false;第1章1.1數(shù)據(jù)的類型優(yōu)先級(從高到低)符號第一級括號()第二級數(shù)組轉(zhuǎn)置(.’),數(shù)組冪(.^),矩陣轉(zhuǎn)置(’),矩陣冪(^)第三級一元加(+),一元減(-),邏輯非(~)第四級數(shù)組乘法(.*),數(shù)組右除(./),數(shù)組左除(.\),矩陣乘法(*),矩陣右除(/),矩陣左除(\)第五級加法(+),減法(-)第六級冒號運算符(:)第七級小于(<),小于等于(<=),大于(>),大于等于(>=)等于(==),不等于(~=)第八級元素與(&)第九級元素或(|)第十級短路邏輯與(&&)第十一級短路邏輯或(||)補充:MATLAB中的運算符優(yōu)先級排序。表1-5運算符優(yōu)先級

1.1.5結(jié)構類型第1章1.1數(shù)據(jù)的類型結(jié)構(structure)類型就是包含一組記錄的數(shù)據(jù)類型。結(jié)構類型的變量多種多樣,可以是一維的、二維的或者多維的數(shù)組。1.創(chuàng)建結(jié)構方法(1)直接賦值法(2)使用struct函數(shù)創(chuàng)建法該方法直接使用結(jié)構的名稱并配合“.”操作符和對應的字段名稱進行結(jié)構的創(chuàng)建。基本語法如下:struct-name=struct(field1,val1,field2,val2,······)struct-name=struct(field1,{val1},field2,{val2},······)

1.1.6元胞數(shù)組第1章北京林業(yè)大學信息學院1.1數(shù)據(jù)的類型

在MATLAB中元胞數(shù)組(cell)是一種特殊的數(shù)據(jù)類型,一般組成元胞數(shù)組的元素可以是任何一種數(shù)據(jù)類型的常數(shù)或常量。元胞數(shù)據(jù)元胞標量、向量、矩陣、N維數(shù)組元胞數(shù)組的元素元素可以具有不同的尺寸和內(nèi)存空間,內(nèi)容也可以完全不同第1章1.1數(shù)據(jù)的類型內(nèi)容元胞數(shù)組對象結(jié)構數(shù)組對象基本元素元胞結(jié)構基本索引全下標方式、單下標方式全下標方式、單下標方式包含的數(shù)據(jù)類型任何數(shù)據(jù)類型任何數(shù)據(jù)類型數(shù)據(jù)的存儲元胞字段訪問元素的方法花括號和索引圓括號、索引和字段名元胞數(shù)組與結(jié)構數(shù)組的特點如表1-6所示。表1-6元胞數(shù)組和結(jié)構數(shù)組對比第1章1.1數(shù)據(jù)的類型1.創(chuàng)建元胞數(shù)組

創(chuàng)建元胞數(shù)組的方式共有四種,分別是:

(1)對不同類型和尺寸的數(shù)據(jù)可以使用運算符“{}”進行組合以此構成元胞數(shù)組;(2)將數(shù)組中每個元素使用“{}”括起來,接著使用數(shù)組創(chuàng)建符號“[]”進行組合以此構成元胞數(shù)組;

(3)使用“{}”創(chuàng)建一個元胞數(shù)組,MATLAB可自動擴展數(shù)組尺寸,若沒有賦值則可以作為空元胞組存在。(4)使用cell函數(shù)創(chuàng)建元胞數(shù)組,該函數(shù)可以創(chuàng)建一維、二維或者多維元胞數(shù)組,但都為空元胞。第1章1.1數(shù)據(jù)的類型【例1-2】元胞數(shù)組的創(chuàng)建>>%第一種方法>>A={zeros(3,3,3),'A';1.23,1:10}A=[3x3x3double]'A'[1.2300][1x10double]>>%第二種方法>>B=[{zeros(2,2,2)},{'B'};{1.23},{1:10}]B=[2x2x2double]'B'[1.2300][1x10double]>>%第三種方法>>C={3}C=[3]>>%第四種方法>>D=cell(2,3)D=[][][][][][]第1章1.1數(shù)據(jù)的類型2.元胞數(shù)組的基本操作訪問元胞數(shù)組擴充元胞數(shù)組收縮和重組元胞數(shù)組元胞數(shù)組基本操作元胞數(shù)組的訪問共分為兩種方式若想獲得元胞數(shù)組數(shù)據(jù),則使用“()”進行元胞數(shù)組的元胞訪問;若想獲得字符串數(shù)據(jù),則需使用“{}”進行元胞數(shù)組的元胞訪問。第1章1.1數(shù)據(jù)的類型cellfun函數(shù):主要功能是對元胞數(shù)組中的每個元胞分別指定不同的函數(shù),指定的函數(shù)如表1-7所示。表1-7在cellfun函數(shù)中可用的函數(shù)函數(shù)解釋isempty判斷元胞元素是否為空,若為空則返回邏輯真islogical判斷元胞元素是否為邏輯類型,若為邏輯類型則返回邏輯真isreal判斷元胞元素是否為實數(shù),若為實數(shù)則返回邏輯真length元胞元素的長度ndims元胞元素的維數(shù)prodofsize元胞元素包含的元素個數(shù)通常cellfun函數(shù)有兩種使用方法分別是:cellfun(‘size’,C,K)——獲取元胞數(shù)組元素第K維的尺寸cellfun(‘isclass’,C,classname)——判斷元胞數(shù)組的數(shù)據(jù)類型第1章1.2數(shù)組的應用

1.2.1數(shù)組創(chuàng)建

數(shù)組的創(chuàng)建包含一維數(shù)組的創(chuàng)建和二維數(shù)組的創(chuàng)建。一維數(shù)組的創(chuàng)建包括一維行向量和一維列向量的創(chuàng)建。以“(”開始,以“,”或空格作為間隔進行元素值的輸入,最后以“)”結(jié)束。。注意:數(shù)組元素值以空格隔開,當時用復數(shù)作為數(shù)組元素時,中間不能鍵入空格。一維數(shù)組的創(chuàng)建格式:第1章1.2數(shù)組的應用創(chuàng)建具體語法:數(shù)組名=起始值:增量:結(jié)束值。(增量為正,代表遞增,反之,代表遞減,默認增量為1。)二維數(shù)組的創(chuàng)建:與一維數(shù)組的創(chuàng)建方式類似。在創(chuàng)建二維數(shù)組時,用“,”或者空格區(qū)分同一行中的不同元素,使用“;”或者回車區(qū)分不同行的不同元素。第1章1.2數(shù)組的應用【例1-3】二維數(shù)組創(chuàng)建>>A=[1,2,3,4]A=1234>>A=1:2:8A=1357>>A=[1;2A=12>>A=[22+i2-i];>>B=A'B=2.00002.0000-1.0000i2.0000+1.0000i第1章1.2數(shù)組的應用

1.2.2數(shù)組操作1.數(shù)組尋址一個m行n列的數(shù)組,i表示行的索引、j表示列的索引數(shù)組的尋址可以表示為A(i,j)若采用單下標尋址,則數(shù)組中元素的下標k表示為(j-1)*m+i。數(shù)組操作將分為六部分進行介紹,分別是:數(shù)組尋址、數(shù)組擴展與裁剪、數(shù)組元素的刪除、數(shù)組查找和排序、數(shù)組運算和數(shù)組操作函數(shù)MATLAB在內(nèi)存中是以列的形式進行二維數(shù)組的保存第1章1.2數(shù)組的應用【例1-4】數(shù)組尋址>>A=randn(1,4)A=-0.4686-0.27241.0984-0.2778>>A(2)ans=-0.2724>>A([12])ans=-0.4686-0.2724>>A(3:end)ans=1.0984-0.2778第1章1.2數(shù)組的應用2.數(shù)組擴展與裁剪冒號操作符的使用方法為:B=A([x1,x2,…],[y1,y2,…])其中[x1,x2,…]表示行索引向量,[y1,y2,…]表示列索引向量。數(shù)組擴展:數(shù)組裁剪:改變現(xiàn)有數(shù)組的大小,增加新的數(shù)組元素,使數(shù)組的行數(shù)或列數(shù)增加。最常用的方法是賦值擴展方法。從現(xiàn)有數(shù)組中抽取部分數(shù)組元素,使數(shù)組的行數(shù)或列數(shù)減少,維數(shù)減小。

MATLAB中通常采用冒號操作符裁剪數(shù)組第1章1.2數(shù)組的應用3.數(shù)組元素的刪除數(shù)組元素刪除可通過將該位置的數(shù)組元素賦值為“[]”,一般配合冒號使用?!纠?-5】數(shù)組刪除>>A=rand(3,3)A=0.85300.51320.23990.62210.40180.12330.35100.07600.1839>>A([1],:)=[]A=0.62210.40180.12330.35100.07600.1839注意:進行數(shù)組元素的刪除時,索引值必須是完整的行或列第1章1.2數(shù)組的應用4.數(shù)組查找和排序MATLA中提供的查找函數(shù)為find函數(shù)。數(shù)組排序中采用sort函數(shù)進行排序,語法為:B=sort(A)B=sort(A,dim)B=sort(...,mode)[B,IX]=sort(...)dim表示排序的維數(shù)(默認為1);mode表示排序的方式(默認為升序)

升序(ascend),降序(descend)IX表示存儲排序后的下標數(shù)組。(2)數(shù)組排序(1)數(shù)組查找第1章1.3矩陣運算

1.3.1矩陣創(chuàng)建1.直接輸入法(最基本的方法)2.在M文件中建立(適合較大且復雜的矩陣)3.從外部文件裝入4.使用語句和函數(shù)建立使用“[]”,并按照矩陣行的順序進行元素輸入,同一行的元素使用“,”隔開,不同行的元素使用“;”隔開。具體方法:啟動有關編輯程序或MATLAB文本編輯器,輸入待建矩陣,進行保存(設文件名為1.m)。運行該M文件,就會自動建立一個矩陣,便于以后使用。從現(xiàn)有磁盤中讀入.mat文件,或讀入排列成矩陣的.txt文件。第1章1.3矩陣運算

1.3.2矩陣的算術與關系元算1.矩陣算術運算矩陣算術運算注意矩陣A,矩陣B加減運算,A+B,A-B矩陣A和矩陣B的維數(shù)需相同矩陣A,矩陣B乘法運算,矩陣C=A*BA:m*n矩陣;B:n*p矩陣C=A*B為m*p矩陣矩陣A,矩陣B除法運算,A\B和B/A\和/,分別表示左除和右除矩陣A乘方運算,A^xA為方陣,x為標量表1-8算術運算第1章1.3矩陣運算2.關系運算關系運算符的運算法則如下:當比較量為標量時,可以直接比較兩數(shù)的大小。當參與比較的量是兩個維數(shù)相同的矩陣時,關系比較則是對兩個矩陣相同位置的元素按標量關系運算規(guī)則進行逐個比較,并給出元素的比較結(jié)果。當參與比較的一個是標量,一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規(guī)則逐個比較,并給出元素比較結(jié)果。第1章1.3矩陣運算

1.3.3相關矩陣分析1.三角陣和對角陣1)三角陣上三角陣triu(A)函數(shù)

triu(A,k):求矩陣A的第k條對角線以上的元素下三角陣tril(A)函數(shù)tril(A,k):求矩陣A的第k條對角線以下的元素2)對角陣對角線上的元素相等且都為1則稱該矩陣為對角矩陣。diag函數(shù),調(diào)用形式:diag(A,k)第1章1.3矩陣運算

1.3.3相關矩陣分析2.轉(zhuǎn)置和旋轉(zhuǎn)轉(zhuǎn)置操作旋轉(zhuǎn)操作左右翻轉(zhuǎn)操作使用“’”,實現(xiàn)矩陣的轉(zhuǎn)置使用的函數(shù)是rot90(A,k)使用的函數(shù)是fliplr(A)上下翻轉(zhuǎn)操作使用的函數(shù)是flipud(A)3.方陣的行列式定義:由n階方陣A的元素所構成的行列式(各元素的位置不變),稱為方陣A的行列式det(A)函數(shù)第1章1.3矩陣運算

1.3.3相關矩陣分析4.逆與偽逆1)矩陣的逆定義:對于一個方陣A,若存在一個同階方陣B,使B=BA=E,則稱A矩陣是可逆的,把矩陣B稱為A的逆矩陣。inv(A)函數(shù)2)矩陣的偽逆定義:若矩陣A不是方陣,且A沒有逆矩陣,但存在一個與A’同型的矩陣B,使得:ABA=A則矩陣B為矩陣A的偽逆。pinv(A)函數(shù)3)求解線性方程組Ax=bA可逆A-1Ax=A-1bx=A-1b兩邊左乘A-1A-1A=I第1章1.3矩陣運算

1.3.3相關矩陣分析5.秩與跡1)矩陣的秩定義:指矩陣線性無關的行數(shù)與列數(shù)。rank(A)函數(shù)2)矩陣的跡定義:指矩陣的對角線元素之和。trace(A)函數(shù)6.特征值和特征向量eig(A)函數(shù)實現(xiàn)其特征值和特征向量的求解1)E=eig(A)2)[V,D]=eig(A)3)[V,D]=eig(A,’nobalance’)第1章1.3矩陣運算

1.3.3相關矩陣分析7.向量和矩陣范數(shù)1)向量的范數(shù)計算函數(shù)cond(A,1):計算A的1階范數(shù)下的條件數(shù);cond(A)或cond(A,2):計算A的2階范數(shù)下的條件數(shù);cond(A):計算A的無窮階范數(shù)下的條件數(shù)。2)矩陣的范數(shù)計算函數(shù)8.超越函數(shù)

超越函數(shù)(TranscendentalFunctions)指的是變量之間的關系不能用有限次的加、減、乘、除、乘方、開方運算表示的函數(shù)。對矩陣計算函數(shù)?sqrtm(A)函數(shù):計算矩陣A的平方根logm(A)函數(shù):計算矩陣A的自然對數(shù)expm(A)、expm1(A)、expm2(A)、expm3(A)函數(shù)計算矩陣A的指數(shù)第1章1.3矩陣運算

1.3.4稀疏矩陣的創(chuàng)建與運算1.創(chuàng)建稀疏矩陣表1-9稀疏矩陣的創(chuàng)建方法方法函數(shù)解釋完全存儲方式轉(zhuǎn)化為稀疏存儲方式A=sparse(B)矩陣B轉(zhuǎn)化為稀疏矩陣AB=full(A)稀疏矩陣A轉(zhuǎn)化為矩陣Bsparse(m,n)生成一個m*n的所有元素都是0的稀疏矩陣sparse(u,v,A)u,v,A是3個等長的向量,建立一個max(u)行、max(v)列且以A為稀疏元素的稀疏矩陣直接創(chuàng)建稀疏矩陣B=sparse(i,j,x,m,n)i和j分別是矩陣非零元素的行和列指標向量,x是非零元素值向量,m,n分別是矩陣的行數(shù)和列數(shù)文件中創(chuàng)建稀疏矩陣load1.txtB=spconvert(T)利用load和spconvert函數(shù)可以從包含一系列下標和非零元素的文本文件中輸入稀疏矩陣稀疏帶狀矩陣創(chuàng)建B=spdiags(C,d,m,n)m和n分別是矩陣的行數(shù)和列數(shù);d是長度為p的整數(shù)向量,它指定矩陣B的對角線位置;C是全元素矩陣,用來給定B對角線位置上的元素,行數(shù)為min(m,n),列數(shù)為p。其它方法B=speye(size(A))和A擁有同樣尺寸的稀疏矩陣B=buchy一個內(nèi)置的稀疏矩陣(鄰接矩陣)第1章1.3矩陣運算2.稀疏矩陣運算:運算規(guī)則與普通矩陣是一樣的,可以直接進行矩陣運算表1-10稀疏矩陣的其它操作3.其它操作函數(shù)解釋nnz(B)返回非零元素的個數(shù)nonzeros(B)返回列向量,包含所有的非零元素nzmax(B)返回分配給稀疏矩陣中非零項的總的存儲空間spy(B)查看稀疏矩陣的形狀[i,j,s]=find(B)、[i,j]=find(B)返回B中所有非零元素的下標和數(shù)值,B可以是稀疏矩陣或滿矩陣第1章1.4多項式介紹

1.4.1多項式創(chuàng)建1.直接法創(chuàng)建在MATLAB中使用ploy2sym(p)函數(shù)就可實現(xiàn)多項式的創(chuàng)建。【例1-7】直接法創(chuàng)建>>A=[12345]A=12345>>y=poly2sym(A)y=x^4+2*x^3+3*x^2+4*x+5第1章1.4多項式介紹2.poly(AR)函數(shù)創(chuàng)建

若已知多項式的全部根,則可以用poly函數(shù)建立該多項式;也可用該函數(shù)求矩陣的特征多項式。

命令格式:A=poly(x)【例1-8】使用指令函數(shù)創(chuàng)建多項式>>A=[123;246;357]A=123246357>>p=poly(A)p=1.0000-12.0000-4.0000-0.000

溫馨提示

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

評論

0/150

提交評論