r语言中矩阵运算

r语言中矩阵运算

ID:26439063

大小:72.28 KB

页数:9页

时间:2018-11-27

r语言中矩阵运算_第1页
r语言中矩阵运算_第2页
r语言中矩阵运算_第3页
r语言中矩阵运算_第4页
r语言中矩阵运算_第5页
资源描述:

《r语言中矩阵运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、R语言中矩阵运算目录:矩阵的生成,矩阵的四则运算,矩阵的矩阵运算,矩阵的分解。1.矩阵的生成1_1将向量定义成数组向量只有定义了维数向量(dim属性)后才能被看作是数组.比如:>z=1:12;>dim(z)=c(3,4);AA>z;[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912注意:生成矩阵是按列排列的。1_2用array()函数构造多维数组用法为:array(data=NA,dim=length(data),dimnames=NULL)参数描述:data:是一个向量数据

2、。dim:是数组各维的长度,缺省时为原向量的长度。dimname:是数组维的名字,缺省时为空。例子:>x=array(1:20,dim=c(4,5))>x[,1][,2][,3][,4][,5][1,]1591317[2,]26101418[3,]37111519[4,]481216201_3用matrix()函数构造矩阵函数matrix)是构造矩阵(二维数组)的函数,其构造形式为matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)其中data是一个向量

3、数据,nrow是矩阵的行数,ncol是矩阵的列数.当byrow=TRUE时,生成矩阵的数据按行放置,缺省时相当于byrow=t,数据按列放置.dimname。是数组维的名字,缺省时为空.A如构造一个3x5阶的矩阵>A=matrix(1:15,nrow=3,byrow=TRUE)>A[,1][,2][,3][,4][,5][1,]12345[2,]678910[3,]11121314152.矩阵的四则运算可以对数组之间进行四则运算(+、一、*、/),这时进行的是数组对应元素的四则运算。一般情况下参加运算的矩阵或者

4、数组的维数是相同的,但也可以计算不同维的,这是要将对应的元素补足。3.矩阵的矩阵运算3_1运算对于矩阵A,函数t(A)表示矩阵A的转置,如:>A=matrix(1:6,nrow=2);>A;[,1][,2][,3][1,]135[2,]246>t(A);[,1][,2][1,]12[2,]34[3,]563_2求方阵的行列式函数det()是求矩阵行列式的值,如>det(matrix(1:4,ncol=2));[1]-23_3向量的内积对于n维向量x,可以看成nxl阶矩阵或lxn阶矩阵。若x与y是相同维数的向量,

5、则x%*%Y表示x与y作内积.例如,>x=1:5;Y=2*1:5Z>x%*%y[,1][1,]110函数crossprod()是内积运算函数(表示交叉乘积),crossprod(x,y)计算向量x与y的内积,即t(x)%*%y'。crossprod(x)表示x与x的内积.类似地,tcrossprod(x,y)表示’x%*%t(Y)’,即x与y的外积,也称为叉积。tcrossprod(x)表示x与x作外积.如:>x=1:5;y=2*1:5;>crossprod(x);[,1][1,]55>crossprod(x,

6、y);[,1][1,]110>tcrossprod(x);[,1][,2][,3][,4][,5][1,]12345[2,]246810[3,]3691215[4,]48121620[5,]510152025>tcrossprod(x,y);[,1][,2][,3][,4][,5][1,]246810[2,]48121620[3,]612182430[4,]816243240[5,]10203040503_4向量的外积(叉积)设x和y是n维向量,则x%o%y表示x与y作外积.例如>x%o%y;[,1][,2][

7、,3][,4][,5][1,]246810[2,]48121620[3,]612182430[4,]816243240[5,]1020304050outer()是更为强大的外积运算函数,outer(x,y)计算向量二与y的外积,它等价于x%o%y函数。outer()的一般调用格式为outer(x,y,fun=”*”)其中x,y矩阵(或向量),fun是作外积运算函数,缺省值为乘法运算。函数outer()在绘制三维曲面时非常有用,它可生成一个x和y的网格。3_5矩阵的乘法设A和B为两个矩阵,通常意义下的矩阵乘法是通

8、过A%*%B来完成,crossprod(A,B)表示的是t(A)%*%B,而tcrossprod(A,B)表示的是A%*%t(B)。最后我们通过运算知道x%*%A%*%x为二次型。例子:>A=array(1:9,dim=(c(3,3)))>B=array(9:1,dim=(c(3,3)))>A%*%B;[,1][,2][,3][1,]905418[2,]1146924[3,]13884

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。