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

下載本文檔

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

文檔簡介

MATLAB中的矩陣與向量運算MATLAB中的矩陣與向量運算/NUMPAGES26MATLAB中的矩陣與向量運算MATLAB中的矩陣與向量運算4.1數(shù)組運算和矩陣運算

從外觀形狀和數(shù)據(jù)結(jié)構(gòu)來看,二維數(shù)組和數(shù)學中的矩陣沒有區(qū)別.但是,矩陣作為一種變換或映射算符的體現(xiàn),矩陣運算有著明確而嚴格的數(shù)學規(guī)則.而數(shù)組運算是MATLAB軟件所定義的規(guī)則,其目的是為了數(shù)據(jù)管理方面,操作簡單,指令形式自然和執(zhí)行計算有效.所以,在使用MATLAB時,特別要明確搞清數(shù)組運算和矩陣運算的區(qū)別.表列出了兩種運算指令形式的實質(zhì)內(nèi)涵的異同.數(shù)組運算和矩陣運算指令形式和實質(zhì)內(nèi)涵

數(shù)組運算矩陣運算

指令含義指令含義

A.'非共軛轉(zhuǎn)置A'共軛轉(zhuǎn)置

A=s把標量s賦給數(shù)組A的每個元素

s+B把標量s分別與數(shù)組B的每個元素相加s-B,B-s標量s分別與數(shù)組B的元素之差

s.*A標量s分別與數(shù)組A的元素之積s*A標量s分別與矩陣A的元素之積

s./B,B.\s標量s分別被數(shù)組B的元素除s*inv(B)矩陣B的逆乘標量s

A.^n數(shù)組A的每個元素的n次方A^nA為方陣時,矩陣A的n次方

A+B數(shù)組對應元素的相加A+B矩陣相加

A-B數(shù)組對應元素的相減A-B矩陣相減

A.*B數(shù)組對應元素的相乘A*B內(nèi)維相同矩陣的乘積

A./BA的元素被B的對應元素除A/BA右除B

B.\A一定與上相同B\AA左除B(一般與右除不同)

exp(A)以e為底,分別以A的元素為指數(shù),求冪expm(A)A的矩陣指數(shù)函數(shù)

log(A)對A的各元素求對數(shù)logm(A)A的矩陣對數(shù)函數(shù)

sqrt(A)對A的積各元素求平方根sqrtm(A)A的矩陣平方函數(shù)

從上面可以看到,數(shù)組運算的運算如:乘,除,乘方,轉(zhuǎn)置,要加"點".所以,我們要特別注意在求"乘,除,乘方,三角和指數(shù)函數(shù)"時,兩種運算有著根本的區(qū)別.另外,在執(zhí)行數(shù)組與數(shù)組運算時,參與運算的數(shù)組必須同維,運算所得的結(jié)果數(shù)組也是總與原數(shù)組同維.

4.2數(shù)組的基本運算

在MATLAB中,數(shù)組運算是針對多個數(shù)執(zhí)行同樣的計算而運用的.MATLAB以一種非常直觀的方式來處理數(shù)組.點轉(zhuǎn)置和共軛轉(zhuǎn)置

.'——點轉(zhuǎn)置.非共軛轉(zhuǎn)置,相當于conj(A').

>>a=1:5;

>>b=a.'

b=

1

2

3

4

5

>>c=b.'

c=

12345

這表明對行向量的兩次轉(zhuǎn)置運算便得到原來的行向量.

'——共軛轉(zhuǎn)置.對向量進行轉(zhuǎn)置運算并對每個元素取其共軛.如:

>>d=a+i*a

d=

Columns1through3

1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i

Columns4through5

4.0000+4.0000i5.0000+5.0000i

>>e=d'

e=

1.0000-1.0000i

2.0000-2.0000i

3.0000-3.0000i

4.0000-4.0000i

5.0000-5.0000i純量(標量)和數(shù)組的四則運算

純量和數(shù)組之間可以進行簡單數(shù)學運算.如:加,減,乘,除及其混合運行.

>>g=[1234

5678

9101112]

>>g=g-2

g=

-1012

3456

78910

>>2*g-1

ans=

-3-113

57911

13151719數(shù)組間的四則運算

在MATLAB中,數(shù)組間進行四則運算時,參與運算的數(shù)組必須具有相同的維數(shù),加,減,乘,除運算是按元素與元素的方式進行的.其中,數(shù)組間的加,減運算與矩陣的加,減運算要同,運算符為:"+","-".但是,數(shù)組間的乘,除運算與矩陣間的乘,除運算完全不同,運算符號也有差別,數(shù)組間的乘,除運算符為:".*","./"或".\".

1.數(shù)組按元素相加,減>>g=[1234

5678

9101112]

>>h=[1111;2222;3333]

>>g+h%按元素相加

ans=

2345

78910

12131415

>>ans-h%按元素相減

ans=

1234

5678

9101112

>>2*g-h%混合運算

ans=

1357

8101214

15171921

2.按元素乘

>>g.*h

ans=

1234

10121416

27303336

3.按元素除

數(shù)組間的除法運算符有兩個,即左除:"./"和右除:".\",它們之間的關(guān)系是:

a./b=b.\a

>>g./h

ans=

1.00002.00003.00004.0000

2.50003.00004.10004.0000

3.00003.33333.66674.0000

>>h.\g

ans=

1.00002.00003.00004.0000

2.50003.00004.10004.0000

3.00003.33333.66674.0000冪運算

在MATLAB中,數(shù)組的冪運算的運算為:".^",表示每一個元素進行冪運算.

>>g.^2%數(shù)組g每個元素的平方

ans=

14916

25364964

81100121144

>>g.^(-1)%數(shù)組g的每個元素的倒數(shù)

ans=

1.00000.50000.33330.2500

0.20000.16670.14290.1250

0.11110.10000.09090.0833

>>2.^g%以g的每個元素為指數(shù)對2進行乘方運算

ans=

24816

3264128256

512102420484096

>>g.^h%以h的每個元素為指數(shù)對g中相應元素進行乘方運算

ans=

1234

25364964

729100013311728

>>g.^(h-1)

ans=

1111

5678

81100121144數(shù)組的指數(shù),對數(shù)和開方運算

在MATLAB中,所謂數(shù)組的運算實質(zhì)是是數(shù)組內(nèi)部每個元素的運算,因此,數(shù)組的指數(shù),對數(shù)和開方運算與標量的運算規(guī)則完全是一樣的,運算符函數(shù)分別為:exp(),log(),sqrt()等.

>>a=[134;265;324];

>>c=exp(a)

c=

2.718320.085554.5982

7.3891403.4288148.4132

20.08557.389154.5982

>>

數(shù)組的對數(shù),開方運算與數(shù)組的指數(shù)運算,其方式完全一樣,這里不詳述.

4.3向量運算

對于一行或一列的矩陣,為向量,MATLAB有專門的函數(shù)來進行向量點積,叉積和混合積的運算.向量的點積運算

在高等數(shù)學中,我們知道,兩向量的點積指兩個向量在其中一個向量方向上的投影的乘積,通常用來定義向量的長度.在MATLAB中,向量的點積用函數(shù)"dot"來實現(xiàn),其調(diào)用格式如下:

C=dot(A,B)——返回向量A與B的點積,結(jié)果存放于C中.

C=dot(A,B,DIM)——返回向量A與B在維數(shù)為DIM的點積,結(jié)果存放于C中.

>>A=[24531];

>>B=[38101213];

>>C=dot(A,B)

C=

137

>>C=dot(A,B,4)

C=

632503613向量的叉積運算

在高等數(shù)學中,我們知道,兩向量的叉積返回的是與兩個向量組成的平面垂直的向量.在MATLAB中,向量的點積用函數(shù)"cross"來實現(xiàn),其調(diào)用格式如下:

C=cross(A,B)——返回向量A與B的叉積,即:,結(jié)果存放于C中.

C=cross(A,B,DIM)——返回向量A與B在維數(shù)為DIM的叉積,結(jié)果存放于C中.

>>A=[245];

>>B=[3810];

>>C=cross(A,B)

C=

0-54向量的混合運算

>>D=dot(A,cross(B,C))

D=

41

上例表明,首先進行的是向量B與C的叉積運算,然后再把叉積運算的結(jié)果與向量A進行點積運算.

4.4矩陣的基本運算

如果說MATLAB的最大特點是強大的矩陣運算功能,此話毫不為過.事實上,MATLAB中所有的計算都是以矩陣為基本單元進行的.MATLAB對矩陣的運算功能最全面,也是最為強大的.矩陣在形式上與構(gòu)造方面是等同于前面所述的數(shù)組的,當其數(shù)學意義卻是完全不同的.

矩陣的基本運算包括矩陣的四則運算,矩陣與標時的運算,矩陣的冪運算,指數(shù)運算,對數(shù)運算,開方運算及以矩陣的逆運算,行列式運算等.矩陣的四則運算

矩陣的四則運算與前面介紹的數(shù)組的四則運算基本相同.但也有一些差別.

1.矩陣的加減

矩陣的加,減與數(shù)組的加,減是完全相同的,運算時要求兩矩陣的大小完全相同.

>>a=[12;35;26];

>>b=[24;18;90];

>>c=a+b

c=

36

413

116

2.矩陣的相乘

對于矩陣的乘法,從線性代數(shù)中,我們知道,要求進行相乘的兩矩陣有相同的公共維.如:

>>a=[12;35;26];

>>b=[241;890];

>>c=a*b

c=

18221

46573

52622

設(shè)A矩陣為一個階的矩陣,則要求與之相乘的B矩陣必須是一個階,得到矩陣是階的.即,只有當?shù)谝粋€矩陣(左矩陣)的列數(shù)等于第二個矩陣(右矩陣)的行數(shù)時,兩個矩陣的乘積才有意義.

3.矩陣的除法

對于矩陣的除法有兩個運算符號,分別為左除符號"\"和右除符號"/".矩陣的右除運算速度要慢一點,而左除運算可以避免奇異矩陣的影響.

對于方程,若此方程為超定的方程,則使用除法可以自動找到使的平方最小化的解.若此方程為不定方程,則使用除法運算符至少求得的解至多有rank(A)(矩陣A的秩)個非零元素,而且求得的解是這種類型的解中范數(shù)最小的一個.

>>a=[213420;57820;211417;343138];

>>b=[10203040]';

>>x=b\a

x=

0.76671.18670.8767

上面方程是超定方程.要注意的:結(jié)果矩陣x是列向量形式.如果,

>>a=[2134205;78202114;17343138];

>>b=[102030]';

>>x=b\a

x=

1.62861.25711.10711.0500

上面的方程為不定方程.

4.矩陣與標量間的四則運算

矩陣與標量的四則運算和數(shù)組與標量間的四則運算完全相同,即矩陣中的每個元素與標量進行加,減,乘,除四則運算.需要說明的是,當進行除法運算時,標量只能做除數(shù).

5.矩陣的冪運算

矩陣的冪運算與標量的冪運算不同.用符號"^",它不是對矩陣的每個元素進行冪運算,而是與矩陣的某種分解有關(guān).

>>b=[213420;782021;173431];

>>c=b^2

c=

343320741754

355537662631

353623122015

6.矩陣的指數(shù),對數(shù)運算與開方運算

矩陣的指數(shù)運算,對數(shù)運算與開方運算與數(shù)組相應的運算是不同的.它并不是對矩陣中的單個元素的運算,而是對整個矩陣的運算.這些運算函數(shù)如下:

expm,expm1,expm2,expm3——指數(shù)運算函數(shù);

logm——對數(shù)運算函數(shù);

sqrtm——開方運算函數(shù).

>>a=[134;265;324];

>>c=expm(a)

c=

1.0e+004*

0.46680.76940.9200

0.79191.30651.5613

0.48070.79190.9475

>>c=logm(a)

c=

0.5002+2.4406i0.5960-0.6800i0.7881-1.2493i

0.4148+0.4498i1.4660-0.1253i1.0108-0.2302i

0.5780-1.6143i0.4148+0.4498i1.0783+0.8263i

>>c=sqrtm(a)

c=

0.6190+0.8121i0.8128-0.2263i1.1623-0.4157i

0.3347+0.1497i2.3022-0.0417i1.1475-0.0766i

1.0271-0.5372i0.3347+0.1497i1.6461+0.2750i

7.矩陣的轉(zhuǎn)置,逆運算與行列式運算

矩陣的轉(zhuǎn)置的運算符為"'".求逆用運算函數(shù):inv().而用函數(shù):det()則可求的矩陣行列式的大小.

>>a=[120;25-1;410-1];

>>c=a'

c=

124

2510

0-1-1

>>b=inv(a)

b=

52-2

-2-11

0-21

>>d=det(a)

d=

1

4.5矩陣的特殊運算

矩陣的特殊運算包括矩陣特征值運算,條件數(shù)運算,奇異值運算,范數(shù)運算,秩運算,正交化運算,跡運算,偽逆運算等,這些運算,MATLAB都可以非常方便地給出.矩陣的特征值運算

在線性代數(shù)中,計算矩陣的特征值過程相當復雜.而在MATLAB中,矩陣特征值運算只需用函數(shù)"eig()"或"eigs()"計算即可得到.其使用格式如下.

E=eig(X)——生成由矩陣X的特征值所組成的一個列向量;

[V,D]=eig(X)——生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構(gòu)成的對角矩陣.

eigs()函數(shù)使用迭代法求解矩陣的特征值和特征向量.

D=eigs(X)——生成由矩陣X的特征值所組成的一個列向量.X必然是方陣,最好是大型稀疏矩陣;

[V,D]=eigs(X)——生成兩個矩陣V和D,其中V是以矩陣X的特征向量作為列向量組成的矩陣,D是由矩陣X的特征值作為主對角線元素構(gòu)成的對角矩陣.

>>a=[120;25-1;410-1];

[b,c]=eig(a)

b=

-0.2440-0.91070.4472

-0.33330.33330.0000

-0.9107-0.24400.8944

c=

3.732100

00.26790

001.0000矩陣(向量)的范數(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的Frobenius范數(shù);

normest(X)——只計算矩陣(向量)X的2-范數(shù);并且是2-范數(shù)的估計值,適用于計算norm(X)比較費時的情況.

>>X=hilb(4)

X=

1.00000.50000.33330.2500

0.50000.33330.25000.2000

0.33330.25000.20000.1667

0.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=

2.0833

>>norm(X,'fro')

ans=

1.5097

>>normest(X)

ans=

1.5002矩陣的條件數(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)——計算關(guān)于矩陣X的1-范數(shù)的條件數(shù)的估計值.

>>M=magic(3)

M=

816

357

492

>>H=hilb(4)

H=

1.00000.50000.33330.2500

0.50000.33330.25000.2000

0.33330

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論