矩阵和线性代数

文章目录

  • 矩阵和线性代数
    • 矩阵
      • SVD提法
        • 举例
        • 推导
        • 代码
        • 分解效果
      • 方阵行列式
        • 范德蒙行列式
          • 作用
      • 代数余子式
        • 伴随矩阵
          • 方阵的逆
      • 矩阵乘法
      • 模型
        • 举例
          • 概率转移矩阵
            • 平稳分布:
      • 向量乘法
      • 矩阵的秩
        • 秩与方程组的解
        • 推论
      • 向量组等价
        • 系数矩阵
          • 对C=AB重认识
      • 正交阵
    • 特征值和特征向量
      • 性质
      • 不同特征值对应特征向量
        • 实对称阵
          • 结论
            • 漂白
      • 正定阵
        • 正定阵判定
        • 标准正交基
      • QR分解
        • QR分解算特征值
        • 代码
      • LFM
    • 矩阵求导
      • 推导
        • 推广
      • 标量对向量求导
          • 推导
      • 标量对方阵求导
    • 归纳 正交阵 正定阵 对称阵 对角阵 正交基

矩阵和线性代数

在这里插入图片描述

矩阵

SVD提法

在这里插入图片描述
1.奇异值分解是一种重要的矩阵分解方法,可以看作对称方阵在任意矩阵推广
1.1 Singular 突出的,奇特的,非凡的
1.2 似乎更应该称之为“优值分解”
2.假设A是一个在这里插入图片描述
则存在一个分解使得:
在这里插入图片描述
通常将奇异值由大而小排列,这样,在这里插入图片描述
3.与特征值,特征向量概念相对应:
在这里插入图片描述
在这里插入图片描述

举例

在这里插入图片描述
在这里插入图片描述
假设我们现在有矩阵A,需要对其做奇异值分解
那么可以求出AAT和ATA,如下
然后分别对它们进行求特征向量得到U和V
求出其中在这里插入图片描述特征值开根号由大到小排列得到在这里插入图片描述

推导

抓大头,降维

在这里插入图片描述

代码

def restore(sigma,u,v,k):  #奇异值,左特征向量,右特征向量print km=len(u)n=len(v[0])a=np.zeros((m,n))for k in range(k+1):for i in range(m):a[i]+=sigma[k]*u[i][k]*v[k]b=a.astype('uint8')Image.fromarray(b).save("svd_"+str(k)+".png")			

分解效果

在这里插入图片描述

if __name__=="__main__":A=Image.open("son.png",'b'print Aoutput_path=r'.\SVD'if not os.path.exists(output_path):os.mkdir(output_path)a=np.array(A)print a.shapek=50u_r,sigma_r,v_r=np.linalg.svd(a[:,:,0])	u_g,sigma_g,v_g=np.linalg.svd(a[:,:,1])u_r,sigma_b,v_b=np.linalg.svd(a[:,:,2])plt.figure(figsize(10,10),facecolor='w')mp1.rcParams['font.sans-serif']=[u'simHei']mp1.rcParams['axes,unicode_minus']=Faisefor k in range(1,k+1):print kR=restorel(sigma_r,u_r,v_r,k)G=restorel(sigma_g,u_g,v_g,k)	B=restorel(sigma_b,u_b,v_b,k)I=np.stack((R,G,B),axis=2)Image.fromarray(I).save('%s\\svd_%d.png'%(output_path,k))if k<=12:plt.subplot(3,4,k)plt.imshow(I)plt.axis('off')plt.title(u'奇异值个数:%d'%k)plt.suptitle(u'SVD与图像分解',fontsize=20)plt.tight_layout(0.3,rect=(0,0,1,0.92))plt.show()				

在这里插入图片描述

方阵行列式

定义:方阵的行列式
1阶方阵行列式为元素本身
n阶方阵行列式等于它任一行(或列)各元素与其对应代数余子式乘积之和
在这里插入图片描述
在这里插入图片描述

范德蒙行列式

在这里插入图片描述

作用

证明矩阵是否有逆
:行列式为0或者非满秩时矩阵无逆。此时矩阵向量线性相关

代数余子式

在这里插入图片描述

伴随矩阵

在这里插入图片描述
如二阶(a,b) , (c,d)伴随矩阵为(d,-b),
(-c,a)即主对角线代数余子式不变,副对角线代数余子式交换位置

方阵的逆

在这里插入图片描述
主要方法是伴随矩阵法即在原矩阵基础上增加一个单位阵E增广矩阵,通过行变化得到左边为单位阵E而右边即为所求逆矩阵

矩阵乘法

在这里插入图片描述

模型

考虑某随机过程在这里插入图片描述它的状态有n个,用1-n表示。记在当前时刻t时位于i状态,它在t+1时刻处于j状态概率P(i,j)=P(j|i):
即状态转移概率只依赖于前一个状态
在这里插入图片描述
马尔可夫模型

举例

假定按照经济状况将人群分成上、中、下三个阶层,用1、2、3表示。假定当前处于某阶层只和上一代有关,即:考察父代为第i阶层,则子代为第j阶层概率。假定如下转移概率矩阵:
在这里插入图片描述
在这里插入图片描述

概率转移矩阵

第n+1代中处于第j个阶层的概率为:
在这里插入图片描述

因此,矩阵P即为(条件)概率转移矩阵。
1.第i行元素表示:在上一个状态为i时分布概率,即:每一行元素和为1.在这里插入图片描述

平稳分布:

当迭代足够多次的时候,多项分布至于转移矩阵有关而与初始概率无关。
从而,这是转移概率矩阵P的性质,而非初始分布的性质。事实上,上述矩阵P的n次幂,每行都是(0.286,0.489,0.225),n.>20
如果一个非周期马尔可夫随机过程具有转移概率矩阵P,且它的任意两个状态都是联通的,在这里插入图片描述
事实上,下面两种写法等价:
在这里插入图片描述
同时,若某概率分布在这里插入图片描述,说明
该多项分布在这里插入图片描述是状态转移矩阵P的平稳分布;
线性方程xP=x的非负解为在这里插入图片描述在这里插入图片描述唯一,因此在这里插入图片描述是线性方程xP=x的唯一非负解
应用

向量乘法

A为mXn的矩阵,x为nX1的列向量,则Ax为mX1列向量,在这里插入图片描述
由于n维列向量和n维空间的点一一对应,上式实际给出了从n维空间点到m维空间点的线性变换
旋转,平移(齐次坐标下)
特殊的,若m=n 且Ax 完成了n维空间内线性变换
在这里插入图片描述
在这里插入图片描述

矩阵的秩

在mXn矩阵A中,任取k行k列,不改变这在这里插入图片描述个元素在A中次序,得到k阶方阵,称为矩阵A的k阶子式。
显然,mXn矩阵A的k阶子式有在这里插入图片描述
设在矩阵A中有一个不等于0的r阶子式D,且所有r+1阶子式(如果存在的话)全等于0,那么D称为矩阵A最高阶非零子式,r称为矩阵A的秩,记作R(A)=r

  1. nXn可逆矩阵,秩为n
  2. 可逆矩阵称其为满秩矩阵,彼此列向量线性不相关,行列式不等于0
  3. 矩阵的秩等于列(行)向量组的秩

秩与方程组的解

在这里插入图片描述
对于n元线性方程组Ax=b

  1. 无解的充要条件是R(A)<R(A,b)
  2. 有唯一解充要条件是R(A)=R(A,b)=n
  3. 有无线多解充要条件是R(A)=R(A,b)<b

推论

Ax=0有非零解的充要条件是R(A)<n
Ax=b有解充要条件是R(A)=R(A,b)

向量组等价

在这里插入图片描述
能够相互线性表出

系数矩阵

在这里插入图片描述

对C=AB重认识

由此可知,若C=AXB,则矩阵C的列向量能由A的列向量线性表示,B即为这一表示的系数矩阵。
对偶的,若C=AXB,则矩阵C的列向量能由B的行向量线性表示,A即为这一表示的系数矩阵
在这里插入图片描述

正交阵

若n阶矩阵A满足在这里插入图片描述A为正交矩阵,简称正交阵
A是正交阵的充要条件:A的列(行)向量都是单位向量,且两两正交
A是正交阵,x为向量,则Ax称作正交变换
正交变换不改变向量长度

特征值和特征向量

A是n阶矩阵,若数在这里插入图片描述和n维非0列向量x满足在这里插入图片描述,那么在这里插入图片描述称其为A的特征值,x称为A对应于特征值在这里插入图片描述的特征向量
在这里插入图片描述

性质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不同特征值对应特征向量

在这里插入图片描述
不同特征值对应特征向量,线性无关

实对称阵

性质:
元素以对角线为对称轴对应相等的矩阵。对称阵
实对称阵的特征值是实数
设复数λ为对称阵A的特征值,复向量x为对应的
特征向量,即Ax=λx(x≠0),
将实数λ带入方程组(A- λ I)x=0,该方程组为
实系数方程组,因此,实对称阵的特征向量
可以取实向量。
实对称阵不同特征值的特征向量正交

结论

设A为n阶对称阵,则必有正交阵P,使得在这里插入图片描述
 Λ是以A的n个特征值为对角元的对角阵。
对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。
 该变换称为“合同变换”,A和Λ互为合同矩阵。

漂白

在这里插入图片描述
代码

def whitening(x):m=len(x)n=len(x[x])#计算x*x'xx=[[0.0]*n for tt in range(n)]for i in range(n):for j in range(i,n):s=0.0for k in range(m):s+=x[k][i]*x[k][j]xx[i][j]=sxx[j][i]=s#计算x*x'的特征值和特征向量lamda,egs=np.linalg.eig(xx)lamda=[1/math.sqrt(d)for d in lamda]#计算白化矩阵U'D^(-0.5)*Ut=[[0.0]*n for tt in range(n)]for i in range(n):for j in range(n):t[i][j]=lamda[j]*egs[i][j]whiten_matrix=[[0.0]*n for tt in range(n)]for i in range(n):for j in range(n):s=0.0for k in range(n):s+=t[i][k]*egs[j][k]whiten_matrix[i][j]=s#白化xwx=[0.0]*nfor j in range(m):for i in range(n):s=0.0for k in range(n):s+=whiten_matrix[i][k]*x[j][k]wx[i]=sx[j]=wx[:]									

在这里插入图片描述

正定阵

对于n阶方阵A,若任意n阶向量x,都有在这里插入图片描述
则称A是正定阵。
 若条件变成在这里插入图片描述,则A称作半正定阵
 类似还有负定阵,半负定阵。
在这里插入图片描述

正定阵判定

对称阵A为正定阵;
 A的特征值都为正;
 A的顺序主子式大于0;
 以上三个命题等价
在这里插入图片描述
顺序主子式
在这里插入图片描述

标准正交基

若向量空间的基是正交向量组,则称其为向量空间的正交基,若正交向量组的每个向量都是单位向量,则称其为向量空间的标准正交基
在这里插入图片描述

QR分解

对于m×n的列满秩矩阵A,必有:在这里插入图片描述
其中在这里插入图片描述(即列正交矩阵),R为非奇异上三角矩阵(类似方阵)。当要求R的对角线元素为正时,该分解唯一。
该分解为QR分解。可用于求解矩阵A的特征
值、A的逆等问题

QR分解算特征值

在这里插入图片描述
运用Q正交矩阵特点

代码

def is_same(a,b):n=len(a)for i in range(n):if math.fabs(a[i]-b[i])>1e-6:return Falsereturn Trueif __name__="__main__':a=np.array([0.65,0.26,0.07,0.15,0.67,0.18,0.12,0.36,0.52])n=math.sqrt(len(a))a=a.reshape((n,n))value,v=np.linalg.elg(a)times=0while(times==0)or(not is_same(np.diag(a),v):v=np.diag(a)q,r=np.linalg.qr(a)a=np.dot(r,q)times+=1print"正交阵:\n",qprint"三角阵:\n",rprint"近似阵:\n",aprint"次数:",times,"近似值:",np.diag(a)print"精确特征值:",value	

在这里插入图片描述

LFM

在这里插入图片描述

def inverse(a):b=np.zeros_like(a)n=len(a)c=np.eye(n)alpha=1for times in range(200):for i in range(n):for j in range(n):err=c[i][j]for k in range(n):b[j][k]+=areturn b,k				

在这里插入图片描述

矩阵求导

A为m×n的矩阵, x为n×1的列向量,则Ax
为m×1的列向量,在这里插入图片描述

推导

在这里插入图片描述

推广

在这里插入图片描述

标量对向量求导

在这里插入图片描述
数对向量求导

推导

在这里插入图片描述

标量对方阵求导

在这里插入图片描述

归纳 正交阵 正定阵 对称阵 对角阵 正交基

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
对称阵:沿着对角线元素对称
对角阵:对角线有数据,其余为0
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对比一段ADC键值读取的代码

最近接触到的一个代码&#xff0c;这个代码看起来很简单&#xff0c;但是却蕴藏了人类的智慧与结晶。正是这些不断产生的智慧与结晶&#xff0c;让我们的电子产品越来越稳定&#xff0c;越来越智能。周五了&#xff0c;评论文章&#xff0c;选两个同学赠送书籍《Linux内核完全剖…

HTML5权威指南 11.通信API

1 <!DOCTYPE html>2 <html>3 4 <head>5 <meta charset"UTF-8">6 <title></title>7 <script type"text/javascript">8 //&#xff08;1&#xff09;监听message事件9 window.addEve…

在线登记系统代码 php_PHP框架实现WebSocket在线聊天通讯系统

ThinkPHP使用Swoole需要安装think-swooleComposer包&#xff0c;前提系统已经安装好了SwoolePECL拓展tp5的项目根目录下执行composer命令安装think-swoole&#xff1a;composerrequiretopthink/think-swoole话不多说&#xff0c;直接上代码&#xff1a;新建WebSocket.php控制器…

Java:抽象类笔记

抽象类&#xff1a;类中没有包含足够的信息来描绘一个具体的对象。 为什么要创建抽象类&#xff1f; 为了更好的继承&#xff0c;以后能更好的扩展&#xff0c;减少类与类之间的耦合。 什么时候需要创建一个抽象类&#xff1f; &#xff08;简单粗暴的理解&#xff09;某个方法…

ios触摸超出_iOS开发笔记之多点触控(一)处理触摸的4个方法

多点触控乃苹果公司带给世界的创新之首&#xff0c;作为移动开发者&#xff0c;熟练掌握多点触控开发技能很有必要。处理触摸的四个方法&#xff1a;-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //首次在屏幕上检测到触摸时调用{NSLog("touchesBega…

机器学习数据包之numpy

numpy 属性 import numpy as np#矩阵运算arraynp.array([[1,2,3],[2,3,4]])print (array)[[1 2 3][2 3 4]]维度 print(number of dim,array.ndim)number of dim 2形状 print(shape,array.shape)shape (2, 3)大小 print(size,array.size)size 6创建 创建类型 anp.array([…

RK 利用SARADC 来做多个按键

#DTS配置#配置DTS节点#驱动文件中匹配 DTS 节点#驱动说明#获取ADC通道#获取ADC值#计算采集到的电压#接口说明#调试方法#节点ADC值RK3399开发板上的 AD 接口有两种&#xff0c;分别为&#xff1a;温度传感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Regis…

vslabel隐藏了怎么找_vscode菜单栏与工具栏隐藏之后怎么找回来

vscode菜单栏与工具栏隐藏之后怎么找回来,命令行,菜单栏,教程,相关文章,设置为vscode菜单栏与工具栏隐藏之后怎么找回来易采站长站&#xff0c;站长之家为您整理了vscode菜单栏与工具栏隐藏之后怎么找回来的相关内容。找回菜单栏1、按alt可以显示菜单栏&#xff1b;2、可以在命…

概率论之pandas

快速入门 1 import numpy as npspd.series([1,3,5,np.nan,8,4])Series spd.Series([1,3,5,np.nan,8,4])sOut[6]: 0 1.01 3.02 5.03 NaN4 8.05 4.0dtype: float64date_range datespd.date_range(20190301,periods6)datesOut[10]: DatetimeIndex([2019-03-…

学习,一定是脱“贫”致富的捷径

周末加班&#xff0c;加班后觉得有点无聊&#xff0c;到公司阳台坐了坐&#xff0c;想到最近的工作和生活&#xff0c;也理了理最近的状态&#xff0c;然后分享了一段话在知识星球里。如下:我平时很少静下来想东西&#xff0c;其中一个原因是因为我害怕安静&#xff0c;晚上睡觉…

多模态语义分析_「CV学霸开讲」卷积神经网络压缩、多模态的语义分析研究

原标题&#xff1a;「CV学霸开讲」卷积神经网络压缩、多模态的语义分析研究【新智元导读】2017年度百度奖学金10位候选人中&#xff0c;人大的陈师哲和北大的王云鹤所学专业主要集中在计算机视觉&#xff0c;本文将详细呈现CV学子的求学经历和研究感悟&#xff0c;并独家分享他…

人应该活成什么样子?该以什么方式活着?

“您幸福吗&#xff1f;”“我是外地打工的&#xff0c;不要问我。”“您幸福吗&#xff1f;”“我姓曾。”相信大家还记得这段央视走基层采访的经典问答。“幸福是什么”是一个人类社会中被广泛讨论的话题&#xff0c;人要怎么生活才能获得幸福&#xff0c;一直是众生要追寻的…

DB2操作指南及命令大全word版

《DB2操作指南及命令大全word版》下载地址&#xff1a; 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731432.html

rocketmq存储结构_RocketMQ消息存储

存储架构RMQ存储架构上图即为RocketMQ的消息存储整体架构&#xff0c;RocketMQ采用的是混合型的存储结构&#xff0c;即为Broker单个实例下所有的队列共用一个日志数据文件(即为CommitLog&#xff0c;1G)来存储。Consume Queue相当于kafka中的partition&#xff0c;是一个逻辑队…

MIPI白皮书

#mipi 5G中优势#5G手机中的mipi#mipi#背景2020年 是5G元年&#xff0c;很多行业因5g重新定义。显示行业也不例外&#xff0c;针对5G&#xff0c;mipi联盟发表了对应的白皮书 描述了现有的MIPI规范如何能够支持第一代5G智能手机以及其他新兴的5G移动平台&#xff0c;包括互联/自…

Python 如何调用 Java

引用了这个文章&#xff0c;请打开链接 http://www.cnblogs.com/junrong624/p/5278457.html 日后待补写 。。。转载于:https://www.cnblogs.com/houzhizhe/p/7456843.html

redis rdb aof区别_Redis 持久化之 RDB 与 AOF 详解

走过路过不要错过点击蓝字关注我们文章出处&#xff1a;https://www.cnblogs.com/jojop/p/13941195.htmlRedis 持久化我们知道Redis的数据是全部存储在内存中的&#xff0c;如果机器突然GG&#xff0c;那么数据就会全部丢失&#xff0c;因此需要有持久化机制来保证数据不会因为…

块设备驱动初探

前言研究IO也很久了&#xff0c;一直无法串联bio和块设备驱动&#xff0c;只知道bio经过IO调度算法传递到块设备驱动&#xff0c;怎么过去的&#xff0c;IO调度算法在哪里发挥作用&#xff0c;一直没有完全搞明白&#xff0c;查看了很多资料&#xff0c;终于对块设备驱动有所理…

Java打war包or打jar包

//一个jar包可以包含多个entry&#xff0c;这样就能实现下面功能1.I/O 读文件流步骤 File filenew File(filePath);InputStreamReader read new InputStreamReader(new FileInputStream(file));BufferedReader bufferedReader new BufferedReader(read);String lineTxt…

Linux 块设备,Block Layer层架构演变

前言Block Layer层在整个I/O中负责承上启下&#xff0c;上接文件系统&#xff0c;下接块驱动。我不想直接讨论代码&#xff0c;希望从一个架构的演变来初探一下Block Layer层。一、1.0版本首先我们来了解几个重要的数据结构1.1 biobio代表了一次I/0请求&#xff0c;代表一个块设…