python的矩阵计算

上传人:s9****2 文档编号:457972367 上传时间:2023-09-25 格式:DOC 页数:48 大小:3.87MB
返回 下载 相关 举报
python的矩阵计算_第1页
第1页 / 共48页
python的矩阵计算_第2页
第2页 / 共48页
python的矩阵计算_第3页
第3页 / 共48页
python的矩阵计算_第4页
第4页 / 共48页
python的矩阵计算_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《python的矩阵计算》由会员分享,可在线阅读,更多相关《python的矩阵计算(48页珍藏版)》请在金锄头文库上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流python的矩阵计算目录序言3第一章:矩阵操作4第二章:矩阵乘法6第三章:矩阵转置10第四章:方阵的迹12第五章:方阵的行列式计算方法14第六章:逆矩阵/伴随矩阵16第七章:解多元一次方程18第八章:计算矩阵距离20第九章:求矩阵的秩22第十章:求方阵的特征值特征向量24第十一章:判断正定矩阵26第十二章:求协方差矩阵28第十三章:求相关矩阵30第十四章:计算向量夹角31第十五章:从协方差阵计算相关阵33第十六章:线性组合均值协方差阵35第十七章:线性组合的协方差38第十八章:线性规划求最优解40第十九章:行列式求解45第二十章:求逆序数4

2、9第二十一章:1.5解方程51第二十二章:习题1.10求逆矩阵55序言最近想再学习一门编程语言,在网上找找翻翻,看到了python,比较喜欢它的简单方便,学习了它的一些语法,确实简单的不得了,很容易上手,接着想了解一下矩阵的知识,看到百度经验里面,有挺多关于python计算矩阵的方法,就复制过来。整理一下,方便大家以后学习。注:本书的原作者为“Delta数据工作室”,整理校对为“喝汤小王子”,欢迎大家加群交流学习。QQ群:536828975扫码加群:第一章:python矩阵操作今天是这一个系列入门教程的第一篇,简单介绍一下python中是如何操作maxtrix(矩阵)的,然后我们后面就开始用p

3、ython中的numpy来解决线性代数的问题,比如解方程等,下面我们开始吧:1. 我先引入numpy,以后的教程中,我们都引用为np作为简写2. 使用mat函数创建一个2X3矩阵3. 使用shape可以获取矩阵的大小4. 使用下标读取矩阵中的元素5. 进行行列转换:6. 实际上官方文档建议我们使用二维数组代替矩阵来进行矩阵运算;因为二维数组用得较多,而且基本可取代矩阵。比如:可见矩阵和数组基本上都可以7. 加减法也是一样的:8. 当然列表是不能这么尽兴加减的:第二章:python矩阵乘法今天我们来使用Python的numpy包进行矩阵的乘法运算,用到了一些矩阵乘法的基本知识,这里我们就不再说矩

4、阵,我们假设你对矩阵都有一定的了解,下面看我们具体的例子。1. 使用二维数组创建两个矩阵A和B2. 先来一个矩阵的数乘,其实见识矩阵的每一个元素乘以该数3. dot函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积。注意交换矩阵的前后位置会导致不同的结果,看下面的例子4. 再创建一个二维数组5. 我们验证一个矩阵乘法的结合性 (AB)C=A(BC)6. 接着看一下对加法的分配性 (A+B)C=AC+BC,C(A+B)=CA+CB7. 数乘的结合性,也一样啦:8. 接着我们用到一个新知识,使用eye创建一个单位矩阵,单位矩阵的定义就是看下面的步骤9. 我们看一下,一

5、个矩阵A乘以一个单位矩阵,还是它本身10. 好了,乘法就到这里了,我们下面接着继续讲矩阵的转置第三章:python矩阵转置矩阵的转置很简单,就是将矩阵的行变为列,将列变为行,我们先通过例子看一下矩阵转置是怎么做的。然后验证几个规律。1. 先创建一个矩阵A2. 我们使用属性T来得到矩阵A的转置矩阵3. 我们验证第一个性质:(A)=A4. 再创建两个尺寸相同的矩阵5. 验证矩阵转置的第二个性质:(AB)=AB6. 验证矩阵转置的第三个性质:(KA)=KA7. 验证矩阵转置的第四个性质:(AB)= BA第四章:python求方阵的迹怎样求方阵的迹?方阵的迹是什么?方阵的迹就是主对角元素之和,方阵的迹

6、说实话我还不知道它的实际用途,有知道的人麻烦你写在下面的评论里,好了,下面来用numpy计算一下方阵的迹。1. 先引入numpy2. 创建一个方阵(方阵也就是行数等于列数的矩阵)3. 用trace计算方阵的迹4. 再创建一个方阵F5. 验证一下方阵的迹等于方阵的转置的迹6. 验证一下方阵的乘积的迹等于7. 验证一下方阵的和的迹等于方阵的迹的和第五章:python方阵的行列式计算方法如何计算方阵的行列式,用到的是numpy模块的linalg.det方法,关于行列式的定义你应该懂,但是其实也不用记住,以后直接用numpy计算就可以了。下面我们看看如何使用numpy计算矩阵的行列式吧:1. 行列式的

7、算法:这是二阶方阵行列式2. 行列式的算法:这是三阶行列式3. 先引入numpy模块4. 创建两个方阵5. 使用det方法求得方阵E和方阵F的行列式第六章:python求逆矩阵/伴随矩阵设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。当矩阵A的行列式|A|不等于0时才存在可逆矩阵。而伴随矩阵的定义我 从网上找到了一个:1. 先来求一下矩阵的逆,先引入numpy2. 然后创建一个方阵A3. 使用linalg.det求得方阵的行列式4. 使用linalg.inv求得方阵A的逆矩阵5. 接着我们利用公式:nump

8、y的计算方法:第七章:python解多元一次方程用python的numpy包中的linalg.solve()方法解多元一次方程,如果你对矩阵解方程非常熟悉,那么现在只是学习一下这个函数就好了。如果你不是很熟悉用矩阵解方程,你需要看一下线性代数的课本。1. 首先看一下我们要解的方程,将这个方程格式调整好,按照x-y-z-常数项的顺序排列2. 将未知数的系数写下来,排列成一个矩阵a,如下3. 常数项构成一个一维数组(向量)4. 使用linalg.solve方法解方程,参数a指的是系数矩阵,参数b指的是常数项矩阵5. 我们得到的解对不对呢?使用点乘的方法可以验证一下,系数乘以未知数可以得到常数项第八

9、章:python计算矩阵距离矩阵的距离,这里是的是欧几里得距离,其他距离表示方法我们以后再谈,今天进说一下如何计算两个形状相同矩阵之间的距离。1. 创建一个矩阵a和b2. 先计算得到他俩的距离矩阵c3. 距离矩阵的平方,得到矩阵d4. 计算矩阵d的迹5. 然后将得到的e进行开方得到距离:你可以手动算一下是不是正确。6. 我们用到的原理就是矩阵的迹的性质,在numpy或者scipy中还有计算距离的函数,我们以后再说第九章:python求矩阵的秩矩阵的秩,课本上是这么定义的:定义2.1在矩阵A中,任取k行与k列(km,kn),位于这些行列交叉处的k2个元素,不改变它们在矩阵中所处的位置次序而得的k

10、阶行列式,称为矩阵A的k阶子式。定义2.1设在矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式(如果存在的话)全等于0,那末D称为矩阵A的最高阶非零子式,数r称为矩阵A的秩,记作R(A)。不明白的继续看书,明白的继续看下面的代码。我们用到了numpy包中的linalg.matrix_rank方法计算矩阵的秩。1. 先引入numpy模块2. 创建一个单位矩阵i3. 计算单位矩阵i的秩4. 改变一下i右下角元素的值,设置为05. 重新计算矩阵的秩,得到3第十章:python求方阵的特征值特征向量求方阵(矩阵)的特征值和特征向量用的是python中的numpy.linagl.eig方法,它需要

11、一个二维数组作为参数,输出一个一位数组(元素为特征值)和一个二维数组(特征向量组),我们还是在例子中学习一哈:1. 先引入numpy模块2. 创建一个对角矩阵,关于diag的用法可以看我前几篇文章3. 求矩阵x的特征值和特征向量,特征值保存在a中,特征向量保存在b中4. 使用循环的方法,我们来验证一下特征值和特征向量,验证的方法是特征值和特征向量的定义法:设A为n阶矩阵,若存在常数及非零的n维向量x,使得Ax=x,则称是矩阵A的特征值,x是A属于特征值的特征向量。5. 这是我今天犯的错误:第十一章:python判断正定矩阵是:设M是n阶方阵,如果对任何非零向量z,都有 zMz 0,其中z 表示

12、z的转置,就称M正定矩阵。这个定义你先搞懂,不懂的看课本去,我这里就直接用python来检验某个方阵是不是正定矩阵(用二维数组表示矩阵)。1. 我们用到的一个重要性质是:判定定理1:对称阵A为正定的充分必要条件是:A的特征值全为正。所以我们只要求得对称阵A的所有特征值即可。2. 引入numpy模块3. 创建一个方阵A4. 将方阵转换成对称阵的方法是:5. 求对称阵A的特征值6. 判断是不是所有的特征值都大于0,用到了all函数,显然对称阵A不是正定的7. 我们来创建一个单位矩阵,它肯定是对称的,同样的方法检验是不是正定矩阵8. 网上查到更简便的方法是对对称阵进行cholesky分解,如果像这样

13、没有提示出错,就说明它是正定的9. 如果提示出错,就说明它不是正定矩阵,你可以使用try函数捕获错误值第十二章:python求协方差矩阵先搞懂协方差矩阵是什么东西:这篇文章有助于你的理解:搞懂协方差以后,我们以一个通俗易懂的例子来说明怎样在python中求协方差矩阵,已经求它是为了干嘛。1. 假如我们现在想要知道身高和体重的关系,我们测量了三个人的身高和体重,身高用s表示,体重用t表示:2. 两个向量构成一个向量组:y3. 使用numpy.cov方法来求协方差矩阵:4. 怎样读懂协方差矩阵呢?400是s和s的协方差(也就是方差);右上角200是s与t的协方差;100是t与t的协方差(也就是方差

14、);可见协方差矩阵是一个对称阵5. 假如我们再增加一个变量,我们还知道这些人的性别,于是性别就是:6. 结果也是这样的:第十三章:python求相关矩阵求n个变量之间的相关系数,我们直接求这几个变量之间的相关矩阵即可。上一篇讲了求身高体重之间的协方差,我们现在就来求他们之间的相关系数矩阵。1. 引入numpy模块2. 身高用s表示,体重用t表示,采集了三个人的数据,如下3. 创建矩阵y4. 我们使用numpy.corrcoef方法求相关矩阵,左下角或者右上角就是身高与体重的相关系数,而对角线上元素是t与t或者s与s的相关系数5. 再增加一个变量6. 求相关矩阵:第十四章:python计算向量夹

15、角如何计算两个向量之间的夹角,向量夹角的公式是cos=向量a.向量b/|向量a|向量b| (注意是点乘)。现在我们可以使用Python.numpy来计算向量的夹角,下面是演示的过程:1. 先打开Python的编辑器,输入以下代码:引入numpy模块并创建两个向量x和y2. 分别计算两个向量的长度:长度分别为:3. 计算夹角的cos值:夹角的cos值为:4. 求夹角(弧度制):夹角求得为:(单位是pi)5. 转换为角度值:求得角度为:6. 该案例来自:实用多元统计分析第十五章:从协方差阵计算相关阵其实Python的numpy包有可以直接计算相关矩阵/协方差矩阵的方法,但是这篇文章是教大家如何理解他俩之间的关系的,所以我们给出协方差矩阵,求相关矩阵。利用公式:p=(V*0.5)*-1)(V*0.5)*-1)1. 引入numpy模块2. 创建一个协方差矩阵这个矩阵为:3. 我们先求得协方差矩阵的尺寸4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号