R語言中矩陣運算_第1頁
R語言中矩陣運算_第2頁
R語言中矩陣運算_第3頁
R語言中矩陣運算_第4頁
R語言中矩陣運算_第5頁
免費預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

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

文檔簡介

1、R 語言中矩陣運算目錄:矩陣的生成,矩陣的四則運算,矩陣的矩陣運算,矩陣的分解。i.矩陣的生成i_i 將向量定義成數(shù)組向量只有定義了維數(shù)向量(dim 屬性)后才能被看作是數(shù)組.比如: z=1:12; dim(z)=c(3,4);AAz;,1,2,3,41,147102,258113,36912注意:生成矩陣是按列排列的。1_2 用 array()函數(shù)構(gòu)造多維數(shù)組用法為:array(data=NA,dim=length(data),dimnames=NULL)參數(shù)描述:data:是一個向量數(shù)據(jù)。dim:是數(shù)組各維的長度,缺省時為原向量的長度。dimname:是數(shù)組維的名字,缺省時為空。例子:x=

2、array(1:20,dim=c(4,5),1,2,3,4,51,159132,2610143,3711154,4812161_3 用 matrix()函數(shù)構(gòu)造矩陣函數(shù) matrix)是構(gòu)造矩陣(二維數(shù)組)的函數(shù),其構(gòu)造形式為matrix(data=NA,nrow=1,ncol=1,byrow=FALSEdimnames=NULL)其中 data 是一個向量數(shù)據(jù),nrow 是矩陣的行數(shù),ncol 是矩陣的列數(shù).當(dāng) byrow=TRUE 時,生成矩陣的數(shù)據(jù)按行放置,缺省時相當(dāng)于 byrow=t,數(shù)據(jù)按列放置.dimname。是數(shù)組維的名字,缺省時為空.A如構(gòu)造一個 3x5 階的矩陣A=matri

3、x(1:15,nrow=3,byrow=TRUE) A,1,2,3,4,51,123452,6789103,1112131415171819202.矩陣的四則運算可以對數(shù)組之間進(jìn)行四則運算(+、一、*、/),這時進(jìn)行的是數(shù)組對應(yīng)元素的四則運算。一般情況下參加運算的矩陣或者數(shù)組的維數(shù)是相同的,但也可以計算不同維的,這是要將對應(yīng)的元素補(bǔ)足。3.矩陣的矩陣運算3_1運算對于矢 I 陣 A,函數(shù) t(A)表示矩陣 A 的轉(zhuǎn)置,如: A=matrix(1:6,nrow=2); A;,1,2,31,1352,246 t(A);,1,21,122,343,563_2求方陣的行列式函數(shù) det()是求矩陣行列

4、式的值,如 det(matrix(1:4,ncol=2);1-23_3向量的內(nèi)積對于 n 維向量 x,可以看成 nxl 階矩陣或 lxn 階矩陣。若 x 與 y 是相同維數(shù)的向量,則 x%*%Y 表示 x 與 y 作內(nèi)積.例如,x=1:5;丫=2*1:5Zx%*%y,11,110函數(shù) crossprod()是內(nèi)積運算函數(shù)(表示交叉乘積),crossprod(x,y)計算向量 x 與 y 的內(nèi)積,即t(x)%*%y。crossprod(x)表示 x 與 x 的內(nèi)積.類似地,tcrossprod(x,y)表示x%*%t(Y),即 x 與 y 的外積,也稱為叉積。tcrossprod(x)表示 x

5、與 x 作外積.如: x=1:5;y=2*1:5; crossprod(x);,11,55 crossprod(x,y);,11,110 tcrossprod(x);,1,2,3,4,51,123452,2468103,36912154,481216205,510152025tcrossprod(x,y);,1,2,3,4,51,2468102,481216203,6121824304,8162432405,10203040503_4向量的外積(叉積)設(shè) x 和 y 是 n 維向量,則 x%o%y 表示 x 與 y 作外積.例如x%o%y;,1,2,3,4,51,2468102,4812162

6、03,6121824304,8162432405,1020304050outer()是更為強(qiáng)大的外積運算函數(shù),outer(x,y)計算向量二與 y 的外積,它等價于x%o%y函數(shù)。outer()的一般調(diào)用格式為outer(x,y,fun=*)其中 x,y 矩陣(或向量),fun 是作外積運算函數(shù),缺省值為乘法運算。函數(shù) outer()在繪制三維曲面時非常有用,它可生成一個 x 和 y 的網(wǎng)格。3_5矩陣的乘法設(shè) A 和 B 為兩個矩陣,通常意義下的矩陣乘法是通過 A%*%B 來完成,crossprod(A,B)表示的是t(A)%*%B,而 tcrossprod(A,B)表示的是 A%*%t(B

7、)。最后我們通過運算知道 x%*%A%*%x 為二次型。例子: A=array(1:9,dim=(c(3,3) B=array(9:1,dim=(c(3,3)A%*%B;,1,2,31,9054182,11469243,1388430 crossprod(A,B)=t(A)%*%B;,1,2,31,TRUETRUETRUE2,TRUETRUETRUE3,TRUETRUETRUE tcrossprod(A,B)=A%*%t(B);,1,2,31,TRUETRUETRUE2,TRUETRUETRUE3,TRUETRUETRUE3_6生成對角陣和矩陣取對角運算函數(shù) diag()依賴于它的變量,當(dāng) v

8、 是一個向量時,diag(v)表示以 v 的元素為對角線元素的對角陣.當(dāng) M 是一個矩陣時,則 diag(M)表示的是取 M 對角線上的元素的向量.如 v=c(1,4,5); diag(v);,1,2,31,1002,0403,005 M=array(1:9,dim=c(3,3); diag(M);11593_7解線性方程組和求矩陣的逆矩陣若求解線性方程組 Ax=b,其命令形式為 soke(A,b),求矩陣 A 的逆,其命令形式為 solve(A).設(shè)矩陣A=t(array(c(1:8,10),dim=c(3,3),b A=t(array(c(1:8,10),dim=c(3,3); b=c(1

9、,1,1); x=solve(A,b); x;1-1.000000e+001.000000e+003.806634e-16 solve(A);,2,31,-0.6666667-1.33333312,-0.66666673.666667-23,1.0000000-2.00000013_8求矩陣的特征值與特征向量函數(shù) eigen(Sm)是求對稱矩陣 Sm 的特征值與特征向量,其命令形式為:ev=eigen(Sm),則ev 存放著對稱矩陣 Sm 特征值和特征向量, 是由列表形式給出的, 其中 ev$values 是 Sm 的特征值構(gòu)成的向量,ev$vectors 是 Sm 的特征向量構(gòu)成的矩陣.如

10、Sm=crossprod(A,A); ev=eigen(Sm); ev;$values,11303.195336180.765907390.03875643$vectors,1,2,31,-0.46466750.8332863550.29952952,-0.5537546-0.009499485-0.83262583,-0.6909703-0.5527599940.46585024.矩陣的分解4_1特征值分解.定義:對 N 階方陣 A,x 為標(biāo)量,v 是非零的 N 維列向量,且滿足 Ax=xv,則稱 x 為矩陣 A 的特征值,v 是相對應(yīng)于 x 的特征向量。特征值的全體成為 A 的譜。(2).

11、在 r 中的實現(xiàn):在 r 中利用函數(shù) eigen(A)來求矩陣的特征值和特征向量,具體的調(diào)用格式為:以矩陣 A 為例說明此問題 A=array(c(1,1,1,4,2,1,9,3,1),dim=c(3,3); D=eigen(A); D;$values15.8284271-2.00000000.1715729$vectors,1,2,31,-0.8597736-9.486833e-010.53848202,-0.43464986.474883e-17-0.78729383,-0.26808393.162278e-010.3003425(3).特征值分解的性質(zhì):我們知道當(dāng)所求的的特征向量構(gòu)成的矩

12、陣可逆時會滿足soke(vectors)%*%A%*%vectors=diag(values),下面進(jìn)行驗證。 solve(vectors)%*%A%*%vectors;,1,2,31,5.828427e+008.339683e-16-1.285213e-152,1.211325e-15-2.000000e+002.704000e-163,-3.471971e-16-1.607126e-161.715729e-01結(jié)果的精度還是比較高的。4_2矩陣的奇異值分解函數(shù) svd(A)是對矩陣 A 作奇異值分解,即 A=U%*%D%*%t(V),其中 U,V 是正交陣,D 為對角陣,也就是矩陣 A 的

13、奇異值.svd(A)的返回值也是列表, $丫(勺$表示矩陣 A 的奇異值,即矩陣 D 的對角線上的元素.svd(A)$u 對應(yīng)的是正交陣 U,svd(A)$v 對應(yīng)的是正交陣 V 例如,A SVD=svd(A); SVD;$d1 17.41250520.87516140.1968665$u,1,2,31,-0.20933730.964385140.16167622,-0.50384850.03532145-0.86306963,-0.8380421-0.262132990.4785099$v,1,2,31,-0.4646675-0.8332863550.29952952,-0.55375460

14、.009499485-0.83262583,-0.69097030.5527599940.4658502attach(SVD);Thefollowingobject(s)aremaskedfromSVD(position3):d,u,v u%*%diag(d)%*%t(v);,1,2,31,1232,4563,7810 A;,1,2,31,1232,4563,78104_3qr分解設(shè) A 為 m*n 矩陣, 如果存在 m*m 酉矩陣 Q(即 Q(H)Q=QQ(H)=I)和 m*n 階梯形矩陣 R,使得 A=QR那么此分解稱為 QR 分解。QR 分解在解決最小二乘問題、特征值計算等方面有著十分重

15、要的作用。 建立矩陣 A=(array(c(1:12),dim=c(4,3); A;,1,2,31,1592,26103,37114,4812 進(jìn)行矩陣分解QR=qr(A);QR$qr,1,2,31,-5.4772256-12.7801930-2.008316e+012,0.3651484-3.2659863-6.531973e+003,0.5477226-0.37816967.880925e-164,0.7302967-0.91247449.277920e-01$rank1 2$qraux11.1825741.1561351.373098$pivot1123attr(,class)1qr 提

16、取 Q,R 并驗證分解的正確性。 Q=qr.Q(QR); R=qr.R(QR); Q%*%R;,1,2,31,1592,26103,37114,48124_4Schur分解引言:從特征值的分解中可以看出,特征值的分解是有條件的,如果特征向量不是線性無關(guān)的,那么對于一個矩陣來說便不能采用特征值分解的方法對矩陣進(jìn)行分解。例如對于矩陣A=t(array(c(6,12,19,-9,-20,-33,4,9,15),dim=c(3,3)進(jìn)行特征值分解有: A=t(array(c(6,12,19,-9,-20,-33,4,9,15),dim=c(3,3); A;,1,2,31,612192,-9-20-33

17、3,4915 det(A);1-1 W=eigen(A); W;$values11+0i1-0i-1+0i$vectors,1,2,31,-0.4082483-0i-0.4082483+0i-0.4740998+0i2,0.8164966+0i0.8164966+0i0.8127426+0i3,-0.4082483+0i-0.4082483-0i-0.3386427+0i attach(W);Thefollowingobject(s)aremaskedfromW(position3):values,vectorsdet(vectors);錯誤于 determinant.matrix(x,log

18、arithm=TRUE,):目前還不能算復(fù)數(shù)矩陣的行列式 det(Re(vectors);1-7.599489e-19solve(vectors),1,2,31,0.000000+78209959i0.00000+78209959i-9.26965+78209959i2,0.000000-78209959i0.00000-78209959i-9.10153-78209959i3,3.691206+0i11.07362+0i18.45603+0i很明顯 vectors 不是一個可逆矩陣此時進(jìn)行特征值分辨這種方法便不可行, 對于這種情況我們可以作 Schur 分解。描述:對于任意的方針 A,其 Schur 分解的形式為:A=USU(H),其中 U 是標(biāo)準(zhǔn)的正交矩陣(即滿足UU(H)=I),S 為上三角矩陣,并且對角線上的元素為 A 的特征值。由于此函數(shù)在包 Matrix中,所以使用之前必須調(diào)入。并且注意

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論