R语言中矩阵运算_第1页
R语言中矩阵运算_第2页
R语言中矩阵运算_第3页
R语言中矩阵运算_第4页
R语言中矩阵运算_第5页
免费预览已结束,剩余4页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

R 语言中矩阵运算 目录 矩阵的生成 矩阵的四则运算 矩阵的矩阵运算 矩阵的分解 1 矩阵的生成矩阵的生成 1 1 将向量定义成数组 向量只有定义了维数向量 dim 属性 后才能被看作是数组 比如 z 1 12 dim z c 3 4 AA z 1 2 3 4 1 1 4 7 10 2 2 5 8 11 3 3 6 9 12 注意 生成矩阵是按列排列的 1 2 用 array 函数构造多维数组 用法为 array data NA dim length data dimnames NULL 参数描述 data 是一个向量数据 dim 是数组各维的长度 缺省时为原向量的长度 dimname 是数组维的名字 缺省时为空 例子 x array 1 20 dim c 4 5 x 1 2 3 4 5 1 1 5 9 13 17 2 2 6 10 14 18 3 3 7 11 15 19 4 4 8 12 16 20 1 3 用 matrix 函数构造矩阵 函数 matrix 是构造矩阵 二维数组 的函数 其构造形式为 matrix data NA nrow 1 ncol 1 byrow FALSE dimnames NULL 其中 data 是一个向量数据 nrow 是矩阵的行数 ncol 是矩阵的列数 当 byrow TRUE 时 生成矩阵的数据按行放置 缺省时相当于 byrow t 数据按列放置 dimname 是数组 维的名字 缺省时为空 A 如构造一个 3x5 阶的矩阵 A matrix 1 15 nrow 3 byrow TRUE A 1 2 3 4 5 1 1 2 3 4 5 2 6 7 8 9 10 3 11 12 13 14 15 2 矩阵的四则运算矩阵的四则运算 可以对数组之间进行四则运算 一 这时进行的是数组对应元素的四则运算 一般情况下参加运算的矩阵或者数组的维数是相同的 但也可以计算不同维的 这是要将 对应的元素补足 3 矩阵的矩阵运算矩阵的矩阵运算 3 1 运算运算 对于矩阵 A 函数 t A 表示矩阵 A 的转置 如 A matrix 1 6 nrow 2 A 1 2 3 1 1 3 5 2 2 4 6 t A 1 2 1 1 2 2 3 4 3 5 6 3 2 求方阵的行列式求方阵的行列式 函数 det 是求矩阵行列式的值 如 det matrix 1 4 ncol 2 1 2 3 3 向量的内积向量的内积 对于 n 维向量 x 可以看成 nxl 阶矩阵或 lxn 阶矩阵 若 x 与 y 是相同 维数的向量 则 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 y 1 1 110 tcrossprod x 1 2 3 4 5 1 1 2 3 4 5 2 2 4 6 8 10 3 3 6 9 12 15 4 4 8 12 16 20 5 5 10 15 20 25 tcrossprod x y 1 2 3 4 5 1 2 4 6 8 10 2 4 8 12 16 20 3 6 12 18 24 30 4 8 16 24 32 40 5 10 20 30 40 50 3 4 向量的外积向量的外积 叉积叉积 设 x 和 y 是 n 维向量 则 x o y 表示 x 与 y 作外积 例如 x o y 1 2 3 4 5 1 2 4 6 8 10 2 4 8 12 16 20 3 6 12 18 24 30 4 8 16 24 32 40 5 10 20 30 40 50 outer 是更为强大的外积运算函数 outer x y 计算向量二与 y 的外积 它等价于 x o y 函数 outer 的一般调用格式为 outer x y fun 其中 x y 矩阵 或向量 fun 是作外积运算函数 缺省值为乘法运算 函数 outer 在 绘制三维曲面时非常有用 它可生成一个 x 和 y 的网格 3 5 矩阵的乘法矩阵的乘法 设 A 和 B 为两个矩阵 通常意义下的矩阵乘法是通过 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 90 54 18 2 114 69 24 3 138 84 30 crossprod A B t A B 1 2 3 1 TRUE TRUE TRUE 2 TRUE TRUE TRUE 3 TRUE TRUE TRUE tcrossprod A B A t B 1 2 3 1 TRUE TRUE TRUE 2 TRUE TRUE TRUE 3 TRUE TRUE TRUE 3 6 生成对角阵和矩阵取对角运算生成对角阵和矩阵取对角运算 函数 diag 依赖于它的变量 当 v 是一个向量时 diag v 表示以 v 的元素为对角线元素 的对角阵 当 M 是一个矩阵时 则 diag M 表示的是取 M 对角线上的元素的向量 如 v c 1 4 5 diag v 1 2 3 1 1 0 0 2 0 4 0 3 0 0 5 M array 1 9 dim c 3 3 diag M 1 1 5 9 3 7 解线性方程组和求矩阵的逆矩阵解线性方程组和求矩阵的逆矩阵 若求解线性方程组 Ax b 其命令形式为 solve A b 求矩阵 A 的逆 其命令形式为 solve A 设矩阵 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 1 1 x solve A b x 1 1 000000e 00 1 000000e 00 3 806634e 16 solve A 1 2 3 1 0 6666667 1 333333 1 2 0 6666667 3 666667 2 3 1 0000000 2 000000 1 3 8 求矩阵的特征值与特征向量求矩阵的特征值与特征向量 函数 eigen Sm 是求对称矩阵 Sm 的特征值与特征向量 其命令形式为 ev eigen Sm 则 ev 存放着对称矩阵 Sm 特征值和特征向量 是由列表形式给出的 其中 ev values 是 Sm 的 特征值构成的向量 ev vectors 是 Sm 的特征向量构成的矩阵 如 Sm crossprod A A ev eigen Sm ev values 1 303 19533618 0 76590739 0 03875643 vectors 1 2 3 1 0 4646675 0 833286355 0 2995295 2 0 5537546 0 009499485 0 8326258 3 0 6909703 0 552759994 0 4658502 4 矩阵的分解矩阵的分解 4 1 特征值分解特征值分解 1 定义 对 N 阶方阵 A x 为标量 v 是非零的 N 维列向量 且满足 Ax xv 则称 x 为矩阵 A 的特征值 v 是相对应于 x 的特征向量 特征值的全体成为 A 的谱 2 在 r 中的实现 在 r 中利用函数 eigen A 来求矩阵的特征值和特征向量 具体的调用格 式为 以矩阵 A 为例说明此问题 A array c 1 1 1 4 2 1 9 3 1 dim c 3 3 D eigen A D values 1 5 8284271 2 0000000 0 1715729 vectors 1 2 3 1 0 8597736 9 486833e 01 0 5384820 2 0 4346498 6 474883e 17 0 7872938 3 0 2680839 3 162278e 01 0 3003425 3 特征值分解的性质 我们知道当所求的的特征向量构成的矩阵可逆时会满足 solve vectors A vectors diag values 下面进行验证 solve vectors A vectors 1 2 3 1 5 828427e 00 8 339683e 16 1 285213e 15 2 1 211325e 15 2 000000e 00 2 704000e 16 3 3 471971e 16 1 607126e 16 1 715729e 01 结果的精度还是比较高的 4 2 矩阵的奇异值分解矩阵的奇异值分解 函数 svd A 是对矩阵 A 作奇异值分解 即 A U D t V 其中 U V 是正交阵 D 为对角阵 也就是矩阵 A 的奇异值 svd A 的返回值也是列表 svd A d 表示矩阵 A 的奇异 值 即矩阵 D 的对角线上的元素 svd A u 对应的是正交阵 U svd A v 对应的是正交阵 V 例如 A SVD svd A SVD d 1 17 4125052 0 8751614 0 1968665 u 1 2 3 1 0 2093373 0 96438514 0 1616762 2 0 5038485 0 03532145 0 8630696 3 0 8380421 0 26213299 0 4785099 v 1 2 3 1 0 4646675 0 833286355 0 2995295 2 0 5537546 0 009499485 0 8326258 3 0 6909703 0 552759994 0 4658502 attach SVD The following object s are masked from SVD position 3 d u v u diag d t v 1 2 3 1 1 2 3 2 4 5 6 3 7 8 10 A 1 2 3 1 1 2 3 2 4 5 6 3 7 8 10 4 3 qr 分解分解 设 A 为 m n 矩阵 如果存在 m m 酉矩阵 Q 即 Q H Q QQ H I 和 m n 阶梯形矩阵 R 使得 A QR 那么此分解称为 QR 分解 QR 分解在解决最小二乘问题 特征值计算等方 面有着十分重要的作用 建立矩阵 A array c 1 12 dim c 4 3 A 1 2 3 1 1 5 9 2 2 6 10 3 3 7 11 4 4 8 12 进行矩阵分解 QR qr A QR qr 1 2 3 1 5 4772256 12 7801930 2 008316e 01 2 0 3651484 3 2659863 6 531973e 00 3 0 5477226 0 3781696 7 880925e 16 4 0 7302967 0 9124744 9 277920e 01 rank 1 2 qraux 1 1 182574 1 156135 1 373098 pivot 1 1 2 3 attr class 1 qr 提取 Q R 并验证分解的正确性 Q qr Q QR R qr R QR Q R 1 2 3 1 1 5 9 2 2 6 10 3 3 7 11 4 4 8 12 4 4 Schur 分解分解 引言 从特征值的分解中可以看出 特征值的分解是有条件的 如果特征向量不是线性无关 的 那么对于一个矩阵来说便不能采用特征值分解的方法对矩阵进行分解 例如对于矩阵 A t array c 6 12 19 9 20 33 4 9 15 dim c 3 3 进行特征值分解有 A t array c 6 12 19 9 20 33 4 9 15 dim c 3 3 A 1 2 3 1 6 12 19 2 9 20 33 3 4 9 15 det A 1 1 W eigen A W values 1 1 0i 1 0i 1 0i vectors 1 2 3 1 0 4082483 0i 0 4082483 0i 0 4740998 0i 2 0 8164966 0i 0 8164966 0i 0 8127426 0i 3 0 4082483 0i 0 4082483 0i 0 3386427 0i attach W The following object s are masked from W position 3 values vectors det vectors 错误于 determinant matrix x logarithm TRUE 目前还不能算复数矩阵的行列式 det Re vectors 1 7 599489e 19 solve vectors 1 2 3 1 0 000000 78209959i 0 00000 78209959i 9 26965 78209959i 2 0 000000 78209959i 0 00000 78209959i 9 10153 78209959i 3 3 691206 0i 11 07362 0i 18 45603 0i 很明显 vectors 不是一个可逆矩阵此时进行特征值分辨这种方法便不可行 对于这种情 况我们可以作 Schur 分解 描述 对于任意的方针 A 其 Schur 分解的形式为 A USU H 其中 U 是标准的正交矩阵 即满足 UU H I S 为上三角矩阵 并且对角线上的元素为 A 的特征值 由于此函数在 包 Matrix

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论