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

下載本文檔

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

文檔簡介

1、之巴公共開創(chuàng)作創(chuàng)作時間:貳零貳壹年柒月貳叁拾日4.1 數(shù)組運算和矩陣運算從外觀形狀和數(shù)據(jù)結構來看,二維數(shù)組和數(shù)學中的矩陣沒有區(qū)別.但是,矩陣作為一種變換或映射算符的體現(xiàn),矩陣運算有著明確而嚴格的數(shù)學規(guī)則.而數(shù)組運算是MATLA歆件所定義的規(guī)則,其目的是為了數(shù)據(jù)管理方面,操縱簡單,指令形式自然和執(zhí)行計算有效.所以,在使用MATLABt,特別要明確搞清數(shù)組運算和矩陣運算的區(qū)別表4.1.1列出了兩種運算指令形式的實質內涵的異同.4.1.1 數(shù)組運算和矩陣運算指令形式和實質內涵數(shù)組運算矩陣運算指令含義指令含義A.非共鈍轉置A'共鈍轉置A=s把標量s賦給數(shù)組A的每個元素s+B把標量s分別與數(shù)組B

2、的每個元素相加sB,Bs標量s分別與數(shù)組B的元素之差s.*A標量s分別與數(shù)組A的元素之積s*A標量s分別與矩陣A的元素之積s./B,B.s標量s分別被數(shù)組B的元素除s*inv(B)矩P$B的逆乘標量sA.An數(shù)組A的每個元素的n次方AMA為方陣時,矩陣A的n次方A+B數(shù)組對應元素的相加A+B矩陣相力口AB數(shù)組對應元素的相減AB矩陣相減A.*B數(shù)組對應元素的相乘A*B內維相同矩陣的乘積A./BA的元素被B的對應元素除A/BA右除BB.A一定與上相同BAA左除B(一般與右除分歧)exp(A)以e為底,分別以A的元素為指數(shù),求哥expm(A)A的矩陣指數(shù)函數(shù)10g(A)對A的各元素求對數(shù)logm(A

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

4、>b=a.'b=1345>>c=b.'c=1 2345這標明對行向量的兩次轉置運算便得到原來的行向量共鈍轉置.對向量進行轉置運算并對每個元素取其共鈍.如:>>d=a+i*ad=Columns1through31.0000+1.0000i2.0000+2.0000i3.0000+3.0000iColumns4through54.0000+4.0000i5.0000+5.0000i>>e=d'e=1.00001.0000i2.00002.0000i3.00003.0000i4.00004.0000i5.00005.0000i4.2.

5、2純量(標量)和數(shù)組的四則運算純量和數(shù)組之間可以進行簡單數(shù)學運算.如:力口,減,乘,除及其混合運行.>>g=123456789101112>>g=g2g=1012345678910>>2*g1ans=311357911131517194.2.3數(shù)組間的四則運算在MATLAB,數(shù)組間進行四則運算時,介入運算的數(shù)組必須具有相同的維數(shù),加,減,乘,除運算是按元素與元素的方式進行的.其中,數(shù)組間的加,減運算與矩陣的加,減運算要同,運算符為:"+","".但是,數(shù)組間的乘,除運算與矩陣間的乘,除運算完全分歧,運算符號也有不同,數(shù)

6、組間的乘,除運算符為:".*","./"或".".1 .數(shù)組按元素相加,減> >g=123456789101112> >h=1111;2222;3333> >g+h%按元素相加ans=2 3457 891012131415>>ansh%按元素相減ans=123456789101112>>2*gh%混合運算ans=1 3578101214151719212 .按元素乘>>g.*hans=123410121416273033363.按元素除數(shù)組間的除法運算符有兩個,即

7、左除:"./"和右除:".",它們之間的關系是:a./b=b.a>>g./hans=1.00002.00003.00004.00002.50003.00004.10004.00003.00003.33333.66674.0000>>h.gans=1.00002.00003.00004.00002.50003.00004.10004.00003.00003.33333.66674.00004.2.4哥運算在MATLAB,數(shù)組的募運算的運算為:"八",暗示每一個元素進行哥運算.> >g.A2%數(shù)組g每個

8、元素的平方ans=149162536496481100121144> >g.A(1)%數(shù)組g的每個元素的倒數(shù)ans=1.00000.50000.33330.25000.20000.16670.14290.12500.11110.10000.09090.0833> >2.Ag%以g的每個元素為指數(shù)對2進行乘方運算ans=248163264128256512102420484096> >g.Ah%以h的每個元素為指數(shù)對g中相應元素進行乘方運算ans=123425364964729100013311728>>g.A(h1)ans=11118110012

9、11444.2.5數(shù)組的指數(shù),對數(shù)和開方運算在MATLAB,所謂數(shù)組的運算實質是是數(shù)組內部每個元素的運算,因此,數(shù)組的指數(shù),對數(shù)和開方運算與標量的運算規(guī)則完全是一樣的,運算符函數(shù)分別為:exp(),log(),sqrt()等.>>a=134;265;324;>>c=exp(a)c=2.718320.085554.59827.3891403.4288148.413220.08557.389154.5982>>數(shù)組的對數(shù),開方運算與數(shù)組的指數(shù)運算,具方式完全一樣,這里不詳述.4.3 向量運算對于一行或一列的矩陣,為向量,MATLAWt專門的函數(shù)來進行向量點積,叉

10、積和混合積的運算.4.3.1 向量的點積運算在高等數(shù)學中,我們知道,兩向量的點積指兩個向量在其中一個向量方向上的投影的乘積,通經常使用來定義向量的長度.在MATLAB中,向量的點積用函數(shù)"dot"來實現(xiàn),具調用格式如下:C=dot(A,B)返回向量A與B的點積,結果存放于C中.C=dot(A,B,DIM)返回向量A與B在維數(shù)為DIM的點積,結果存放于C中.> >A=24531;> >B=38101213;>>C=dot(A,B)C=137> >C=dot(A,B,4)C=6325036134.3.2 向量的叉積運算在高等數(shù)學中

11、,我們知道,兩向量的叉積返回的是與兩個向量組成的平面垂直的向量.在MATLAB,向量的點積用函數(shù)"cross"來實現(xiàn),其調用格式如下:C=cross(A,B)返回向量A與B的叉積,即:,結果存放于C中.C=cross(A,B,DIM)返回向量A與B在維數(shù)為DIM的叉積,結果存放于C中.> >A=245;> >B=3810;> >C=cross(A,B)C=0544.3.3 向量的混合運算>>D=dot(A,cross(B,C)D=41上例標明,首先進行的是向量B與C的叉積運算,然后再把叉積運算的結果與向量A進行點積運算.4.4

12、 矩陣的基本運算如果說MATLAB勺最大特點是強大白矩陣運算功能,此話毫不為過.事實上,MATLAB中所有的計算都是以矩陣為基本單元進行的.MATLAB對矩陣的運算功能最全面,也是最為強大的.矩陣在形式上與構造方面是等同于前面所述的數(shù)組的,當其數(shù)學意義卻是完全分歧的.矩陣的基本運算包含矩陣的四則運算,矩陣與標時的運算,矩陣的哥運算,指數(shù)運算,對數(shù)運算,開方運算及以矩陣的逆運算,行列式運算等.4.4.1 矩陣的四則運算矩陣的四則運算與前面介紹的數(shù)組的四則運算基底細同.但也有一些不同.1.矩陣的加減矩陣的加,減與數(shù)組的加,減是完全相同的,運算時要求兩矩陣的大小完全相同.> >a=12;

13、35;26;> >b=24;18;90;> >c=a+bc=3 64 131162.矩陣的相乘對于矩陣的乘法,從線性代數(shù)中,我們知道,要求進行相乘的兩矩陣有相同的公共維.如:> >a=12;35;26;> >b=241;890;> >c=a*bc=182214657352622設A矩陣為一個階的矩陣,則要求與之相乘的B矩陣必須是一個階得到矩陣是階的.即,只有當?shù)谝粋€矩陣(左矩陣)的列數(shù)等于第二個矩陣(右矩陣)的行數(shù)時,兩個矩陣的乘積才有意義.3.矩陣的除法對于矩陣的除法有兩個運算符號,分別為左除符號""和右除符號&

14、quot;/".矩陣的右除運算速度要慢一點,而左除運算可以防止奇異矩陣的影響.對于方程,若此方程為超定的方程,則使用除法可以自動找到使的平方最小化的解.若此方程為不定方程,則使用除法運算符至少求得的解至多有rank(A)(矩陣A的秩)個非零元素,而且求得的解是這種類型的解中范數(shù)最小的一個.> >a=213420;57820;211417;343138;> >b=10203040'> >x=bax=0.76671.18670.8767上面方程是超定方程.要注意的:結果矩陣x是列向量形式.如果,> >a=2134205;782021

15、14;17343138;> >b=102030'> >x=bax=1.62861.25711.10711.0500上面的方程為不定方程.4 .矩陣與標量間的四則運算矩陣與標量的四則運算和數(shù)組與標量間的四則運算完全相同,即矩陣中的每個元素與標量進行加,減,乘,除四則運算.需要說明的是,當進行除法運算時,標量只能做除數(shù).5 .矩陣的哥運算矩陣的募運算與標量的募運算分歧.用符號"A",它不是對矩陣的每個元素進行募運算,而是與矩陣的某種分解有關.>>b=213420;782021;173431;>>c=bA2c=3433207

16、41754355537662631353623126.矩陣的指數(shù),對數(shù)運算與開方運算矩陣的指數(shù)運算,對數(shù)運算與開方運算與數(shù)組相應的運算是分歧的它其實不是對矩陣中的單個元素的運算,而是對整個矩陣的運算.這些運算函數(shù)如下:expm,expm1,expm2,expm3指數(shù)運算函數(shù);logm對數(shù)運算函數(shù);sqrtm開方運算函數(shù).>>a=134;265;324;>>c=expmc=1.0e+004*0.46680.76940.92000.79191.30651.56130.48070.79190.9475>>c=logmc=0.5002+2.4406i0.59600.

17、6800i0.78811.2493i0.4148+0.4498i1.46600.1253i1.01080.2302i0.57801.6143i0.4148+0.4498i1.0783+0.8263i>>c=sqrtmc=0.6190+0.8121i0.81280.2263i1.16230.4157i0.3347+0.1497i2.30220.0417i1.14750.0766i1.02710.5372i0.3347+0.1497i1.6461+0.2750i7.矩陣的轉置,逆運算與行列式運算矩陣的轉置的運算符為"”'.求逆用運算函數(shù):inv().而用函數(shù):det(

18、)則可求的矩陣行列式的大小.>>a=120;251;4101;>>c=a'c=1 242 510011>>b=inv(a)b=522211021>>d=detd=14.5矩陣的特殊運算矩陣的特殊運算包含矩陣特征值運算,條件數(shù)運算,奇異值運算,范數(shù)運算,秩運算,正交化運算,跡運算,偽逆運算等,這些運算,MATLABtB可以非常方便地給出.4.5.1 矩陣的特征值運算在線性代數(shù)中,計算矩陣的特征值過程相當復雜.而在MATLAB,矩陣特征值運算只需用函數(shù)"eig()"或"eigs()”計算即可得到.其使用格式如下.

19、E=eig(X)生成由矩陣X的特征值所組成的一個列向量;V,D=eig(X)生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構成的對角矩陣.eigs()函數(shù)使用迭代法求解矩陣的特征值和特征向量.D=eigs(X)生成由矩陣X的特征值所組成的一個列向量.X必定是方陣,最好是大型稀疏矩陣;V,D=eigs(X)生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構成的對角矩陣.>>a=120;251;4101;b,c=eig(a)b=0.24400.91070.44720.333

20、30.33330.00000.91070.24400.8944c=3.73210000.26790001.00004.5.2矩陣(向量)的范數(shù)運算為了反映了矩陣(向量)某些特性,線性代數(shù)中引入了范數(shù)的概念它分為2范數(shù),1范數(shù),無窮范數(shù)和Frobenius范數(shù)等.在MATLAB中,用函數(shù)norm()或normest()計算矩陣(向量)的范數(shù).其使用格式如下.norm(X)計算矩陣(向量)X的2范數(shù);norm(X,2)同上;norm(X,1)計算矩陣(向量)X的1范數(shù);norm(X,inf)計算矩陣(向量)X的無窮范數(shù);norm(X,'fro')計算矩陣(向量)X的Frobeniu

21、s范數(shù);normest(X)只計算矩陣(向量)X的2范數(shù);而且是2范數(shù)的估計值,適用于計算norm(X)比較費時的情況>>X=hilb(4)X=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429> >norm(4)ans=4> >norm(X)ans=1.5002> >norm(X,2)ans=1.5002> >norm(X,1)ans=2.0833> >norm(X,inf)ans

22、=2.0833>>norm(X,'fro')ans=1.5097>>normest(X)ans=1.50024.5.3 矩陣的條件數(shù)運算矩陣的條件數(shù)是判斷矩陣"病態(tài)"程度的一個量值,矩陣A的條件數(shù)越大,標明A越"病態(tài)",反之,標明A越"良態(tài)".如Hilbert矩陣就是一個有名的病態(tài)矩陣.cond(X)返回矢!陣X的2范數(shù)的條件數(shù);cond(X,P)返回矢!陣X的P范數(shù)的條件數(shù),其中P為1,2,inf或fro;rcond(X)用于計算矩陣條件數(shù)的倒數(shù)值,當矩陣X為"病態(tài)"時,rcond(X)就接近0,X為"良態(tài)"時,rcond(X)就接近1.condest(X)計算關于矩陣X的1范數(shù)的條件數(shù)的估計值.> >M=magic(3)M=816357492> >H=hilb(4)H=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429> >c1=cond(

溫馨提示

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

評論

0/150

提交評論