MATLAB中的矩陣與向量運算參考模板_第1頁
MATLAB中的矩陣與向量運算參考模板_第2頁
MATLAB中的矩陣與向量運算參考模板_第3頁
MATLAB中的矩陣與向量運算參考模板_第4頁
MATLAB中的矩陣與向量運算參考模板_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4.1 數組運算和矩陣運算從外觀形狀和數據結構來看,二維數組和數學中的矩陣沒有區(qū)別.但是,矩陣作為一種變換或映射算符的體現,矩陣運算有著明確而嚴格的數學規(guī)則.而數組運算是MATLAB軟件所定義的規(guī)則,其目的是為了數據管理方面,操作簡單,指令形式自然和執(zhí)行計算有效.所以,在使用MATLAB時,特別要明確搞清數組運算和矩陣運算的區(qū)別.表4.1.1列出了兩種運算指令形式的實質內涵的異同.4.1.1 數組運算和矩陣運算指令形式和實質內涵數組運算 矩陣運算指令 含義 指令 含義A.'非共軛轉置 A'共軛轉置A=s把標量s賦給數組A的每個元素s+B把標量s分別與數組B的每個元素相加 s-B

2、, B-s標量s分別與數組B的元素之差s.*A標量s分別與數組A的元素之積 s*A標量s分別與矩陣A的元素之積s./B, B.s標量s分別被數組B的元素除 s*inv(B)矩陣B的逆乘標量sA.n數組A的每個元素的n次方 An A為方陣時,矩陣A的n次方A+B數組對應元素的相加 A+B矩陣相加A-B數組對應元素的相減 A-B矩陣相減A.*B數組對應元素的相乘 A*B內維相同矩陣的乘積A./B A的元素被B的對應元素除 A/B A右除BB.A一定與上相同 BA A左除B(一般與右除不同)exp(A)以e為底,分別以A的元素為指數,求冪 expm(A) A的矩陣指數函數log(A) 對A的各元素求

3、對數 logm(A) A的矩陣對數函數sqrt(A) 對A的積各元素求平方根 sqrtm(A) A的矩陣平方函數從上面可以看到,數組運算的運算如:乘,除,乘方,轉置,要加"點".所以,我們要特別注意在求"乘,除,乘方,三角和指數函數"時,兩種運算有著根本的區(qū)別.另外,在執(zhí)行數組與數組運算時,參與運算的數組必須同維,運算所得的結果數組也是總與原數組同維.4.2 數組的基本運算在MATLAB中,數組運算是針對多個數執(zhí)行同樣的計算而運用的.MATLAB以一種非常直觀的方式來處理數組.4.2.1 點轉置和共軛轉置. ' 點轉置.非共軛轉置,相當于conj

4、(A').>> a=1:5;>> b=a. 'b =12345>> c=b. 'c =1 2 3 4 5這表明對行向量的兩次轉置運算便得到原來的行向量.' 共軛轉置.對向量進行轉置運算并對每個元素取其共軛.如:>> d=a+i*ad =Columns 1 through 31.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000iColumns 4 through 54.0000 + 4.0000i 5.0000 + 5.0000i>> e=d'e =1

5、.0000 - 1.0000i2.0000 - 2.0000i3.0000 - 3.0000i4.0000 - 4.0000i5.0000 - 5.0000i4.2.2 純量 (標量) 和數組的四則運算純量和數組之間可以進行簡單數學運算.如:加,減,乘,除及其混合運行.>> g=1 2 3 45 6 7 89 10 11 12>> g=g-2g =-1 0 1 23 4 5 67 8 9 10>> 2*g-1ans =-3 -1 1 35 7 9 1113 15 17 194.2.3 數組間的四則運算在MATLAB中,數組間進行四則運算時,參與運算的數組必須

6、具有相同的維數,加,減,乘,除運算是按元素與元素的方式進行的.其中,數組間的加,減運算與矩陣的加,減運算要同,運算符為:"+","-".但是,數組間的乘,除運算與矩陣間的乘,除運算完全不同,運算符號也有差別,數組間的乘,除運算符為:".*","./"或".".1. 數組按元素相加,減2 / 11>> g=1 2 3 45 6 7 89 10 11 12>> h=1 1 1 1; 2 2 2 2; 3 3 3 3>> g+h % 按元素相加ans =2 3 4

7、57 8 9 1012 13 14 15>> ans-h % 按元素相減ans =1 2 3 45 6 7 89 10 11 12>> 2*g-h % 混合運算ans =1 3 5 78 10 12 1415 17 19 212. 按元素乘>> g.*hans =1 2 3 410 12 14 1627 30 33 363. 按元素除數組間的除法運算符有兩個,即左除:"./"和右除:".",它們之間的關系是:a./b=b.a>> g./hans =1.0000 2.0000 3.0000 4.00002.5

8、000 3.0000 4.1000 4.00003.0000 3.3333 3.6667 4.0000>> h.gans =1.0000 2.0000 3.0000 4.00002.5000 3.0000 4.1000 4.00003.0000 3.3333 3.6667 4.00004.2.4 冪運算在MATLAB中,數組的冪運算的運算為:".",表示每一個元素進行冪運算.>> g.2 % 數組g每個元素的平方ans =1 4 9 1625 36 49 6481 100 121 144>> g.(-1) % 數組g的每個元素的倒數ans

9、 =1.0000 0.5000 0.3333 0.25000.2000 0.1667 0.1429 0.12500.1111 0.1000 0.0909 0.0833>> 2.g % 以g的每個元素為指數對2進行乘方運算ans =2 4 8 1632 64 128 256512 1024 2048 4096>> g.h % 以h的每個元素為指數對g中相應元素進行乘方運算ans =1 2 3 425 36 49 64729 1000 1331 1728>> g.(h-1)ans =1 1 1 15 6 7 881 100 121 1444.2.5 數組的指數,

10、對數和開方運算在MATLAB中,所謂數組的運算實質是是數組內部每個元素的運算,因此,數組的指數,對數和開方運算與標量的運算規(guī)則完全是一樣的,運算符函數分別為:exp( ),log( ),sqrt( )等.>> a=1 3 4;2 6 5;3 2 4;>> c=exp(a)c =2.7183 20.0855 54.59827.3891 403.4288 148.413220.0855 7.3891 54.5982>>數組的對數,開方運算與數組的指數運算,其方式完全一樣,這里不詳述.4.3 向量運算對于一行或一列的矩陣,為向量,MATLAB有專門的函數來進行向量

11、點積,叉積和混合積的運算.4.3.1 向量的點積運算在高等數學中,我們知道,兩向量的點積指兩個向量在其中一個向量方向上的投影的乘積,通常用來定義向量的長度.在MATLAB中,向量的點積用函數"dot"來實現,其調用格式如下:C=dot(A,B) 返回向量A與B的點積,結果存放于C中.C=dot(A,B, DIM) 返回向量A與B在維數為DIM的點積,結果存放于C中.>> A=2 4 5 3 1;>> B=3 8 10 12 13;>> C=dot(A,B)C =137>> C=dot(A,B,4)C =6 32 50 36 1

12、34.3.2 向量的叉積運算在高等數學中,我們知道,兩向量的叉積返回的是與兩個向量組成的平面垂直的向量.在MATLAB中,向量的點積用函數"cross"來實現,其調用格式如下:C=cross(A,B) 返回向量A與B的叉積,即:,結果存放于C中.C=cross(A,B, DIM) 返回向量A與B在維數為DIM的叉積,結果存放于C中.>> A=2 4 5;>> B=3 8 10;>> C=cross(A,B)C =0 -5 44.3.3 向量的混合運算>> D=dot(A, cross(B,C)D =41上例表明,首先進行的是向

13、量B與C的叉積運算,然后再把叉積運算的結果與向量A進行點積運算.4.4 矩陣的基本運算如果說MATLAB的最大特點是強大的矩陣運算功能,此話毫不為過.事實上,MATLAB中所有的計算都是以矩陣為基本單元進行的.MATLAB對矩陣的運算功能最全面,也是最為強大的.矩陣在形式上與構造方面是等同于前面所述的數組的,當其數學意義卻是完全不同的.矩陣的基本運算包括矩陣的四則運算,矩陣與標時的運算,矩陣的冪運算,指數運算,對數運算,開方運算及以矩陣的逆運算,行列式運算等.4.4.1 矩陣的四則運算矩陣的四則運算與前面介紹的數組的四則運算基本相同.但也有一些差別.1. 矩陣的加減矩陣的加,減與數組的加,減是

14、完全相同的,運算時要求兩矩陣的大小完全相同.>> a=1 2; 3 5; 2 6;>> b=2 4; 1 8; 9 0;>> c=a+bc =3 64 1311 62. 矩陣的相乘對于矩陣的乘法,從線性代數中,我們知道,要求進行相乘的兩矩陣有相同的公共維.如:>> a=1 2; 3 5; 2 6;>> b=2 4 1; 8 9 0;>> c=a*bc =18 22 146 57 352 62 2設A矩陣為一個階的矩陣,則要求與之相乘的B矩陣必須是一個階,得到矩陣是階的.即,只有當第一個矩陣 (左矩陣) 的列數等于第二個矩陣

15、 (右矩陣) 的行數時,兩個矩陣的乘積才有意義.3. 矩陣的除法對于矩陣的除法有兩個運算符號,分別為左除符號""和右除符號"/".矩陣的右除運算速度要慢一點,而左除運算可以避免奇異矩陣的影響.對于方程,若此方程為超定的方程,則使用除法可以自動找到使的平方最小化的解.若此方程為不定方程,則使用除法運算符至少求得的解至多有rank(A) (矩陣A的秩)個非零元素,而且求得的解是這種類型的解中范數最小的一個.>> a=21 34 20; 5 78 20; 21 14 17; 34 31 38;>> b=10 20 30 40'&

16、gt;> x=bax =0.7667 1.1867 0.8767上面方程是超定方程.要注意的:結果矩陣x是列向量形式.如果,>> a=21 34 20 5; 78 20 21 14; 17 34 31 38;>> b=10 20 30'>> x=bax =1.6286 1.2571 1.1071 1.0500上面的方程為不定方程.4. 矩陣與標量間的四則運算矩陣與標量的四則運算和數組與標量間的四則運算完全相同,即矩陣中的每個元素與標量進行加,減,乘,除四則運算.需要說明的是,當進行除法運算時,標量只能做除數.5. 矩陣的冪運算矩陣的冪運算與標量

17、的冪運算不同.用符號"",它不是對矩陣的每個元素進行冪運算,而是與矩陣的某種分解有關.>> b=21 34 20; 78 20 21; 17 34 31;>> c=b2c =3433 2074 17543555 3766 26313536 2312 20156. 矩陣的指數,對數運算與開方運算矩陣的指數運算,對數運算與開方運算與數組相應的運算是不同的.它并不是對矩陣中的單個元素的運算,而是對整個矩陣的運算.這些運算函數如下:expm, expm1, expm2, expm3 指數運算函數;logm 對數運算函數;sqrtm 開方運算函數.>&g

18、t; a=1 3 4; 2 6 5; 3 2 4;>> c=expm(a)c =1.0e+004 *0.4668 0.7694 0.92000.7919 1.3065 1.56130.4807 0.7919 0.9475>> c=logm(a)c =0.5002 + 2.4406i 0.5960 - 0.6800i 0.7881 - 1.2493i0.4148 + 0.4498i 1.4660 - 0.1253i 1.0108 - 0.2302i0.5780 - 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i>> c=sq

19、rtm(a)c =0.6190 + 0.8121i 0.8128 - 0.2263i 1.1623 - 0.4157i0.3347 + 0.1497i 2.3022 - 0.0417i 1.1475 - 0.0766i1.0271 - 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i7. 矩陣的轉置,逆運算與行列式運算矩陣的轉置的運算符為"'".求逆用運算函數:inv( ).而用函數:det( )則可求的矩陣行列式的大小.>> a=1 2 0; 2 5 -1; 4 10 -1;>> c=a'c =1

20、2 42 5 100 -1 -1>> b=inv(a)b =5 2 -2-2 -1 10 -2 1>> d=det(a)d =14.5 矩陣的特殊運算矩陣的特殊運算包括矩陣特征值運算,條件數運算,奇異值運算,范數運算,秩運算,正交化運算,跡運算,偽逆運算等,這些運算,MATLAB都可以非常方便地給出.4.5.1 矩陣的特征值運算在線性代數中,計算矩陣的特征值過程相當復雜.而在MATLAB中,矩陣特征值運算只需用函數"eig( )"或"eigs( )"計算即可得到.其使用格式如下.E=eig(X) 生成由矩陣X的特征值所組成的一個列

21、向量;V,D=eig(X) 生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構成的對角矩陣.eigs( )函數使用迭代法求解矩陣的特征值和特征向量.D=eigs(X) 生成由矩陣X的特征值所組成的一個列向量.X必然是方陣,最好是大型稀疏矩陣;V,D=eigs(X) 生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構成的對角矩陣.>> a=1 2 0; 2 5 -1; 4 10 -1;b,c=eig(a)b =-0.2440 -0.9107 0.4472-0.3333 0.

22、3333 0.0000-0.9107 -0.2440 0.8944c =3.7321 0 00 0.2679 00 0 1.00004.5.2 矩陣 (向量) 的范數運算為了反映了矩陣 (向量) 某些特性,線性代數中引入了范數的概念,它分為2-范數,1-范數,無窮范數和Frobenius范數等.在MATLAB中,用函數norm( )或normest( ) 計算矩陣 (向量) 的范數.其使用格式如下.norm(X) 計算矩陣 (向量) X的2-范數;norm(X,2) 同上;norm(X,1) 計算矩陣 (向量) X的1-范數;norm(X,inf) 計算矩陣 (向量) X的無窮范數;norm(

23、X,'fro') 計算矩陣 (向量) X的Frobenius范數;normest(X) 只計算矩陣 (向量) X的2-范數;并且是2-范數的估計值,適用于計算norm(X)比較費時的情況.>> X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429>> norm(4)ans =4>> norm(X)ans =1.5002>> norm(X,2)an

24、s =1.5002>> norm(X,1)ans =2.0833>> norm(X,inf)ans =2.0833>> norm(X,'fro')ans =1.5097>> normest(X)ans =1.50024.5.3 矩陣的條件數運算矩陣的條件數是判斷矩陣"病態(tài)"程度的一個量值,矩陣A的條件數越大,表明A越"病態(tài)",反之,表明A越"良態(tài)".如Hilbert矩陣就是一個有名的病態(tài)矩陣.cond(X) 返回矩陣X的2-范數的條件數;cond(X, P) 返回矩陣X的

25、P-范數的條件數,其中P為1,2,inf或fro;rcond(X) 用于計算矩陣條件數的倒數值,當矩陣X為"病態(tài)"時,rcond(X)就接近0,X為"良態(tài)"時,rcond(X)就接近1.condest(X) 計算關于矩陣X的1-范數的條件數的估計值.>> M=magic(3)M =8 1 63 5 74 9 2>> H=hilb(4)H =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.14

溫馨提示

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

評論

0/150

提交評論