线性代数基础2矩阵

ops/2024/10/22 12:26:53/

矩阵是什么
矩阵就是二维数组,下面是一个 m 乘 n 的矩阵,它有 m 行,n 列,每行每列上面都有元素,每个元素都有行标i 和列标 j, a ij 。简称m × n矩阵,记作:
在这里插入图片描述
注意a11的索引是 A[0,0]。
这 m×n 个数称为矩阵 A 的元素,简称为元,数aij
位于矩阵 A 的第 i 行第 j 列,称为矩阵 A 的 (i,j) 元,m×n 矩阵 A 也记作 A mn 。

常见矩阵
方阵
如果 m 等于 n,那就称为方阵
在这里插入图片描述
对称矩阵
定义是 a ij 等于 a ji 那么就是对称矩阵,对称矩阵首先是个方阵
在这里插入图片描述
单位矩阵
主对角线都是 1,其它位置是 0,这称之为单位矩阵,单位矩阵写为 I,一定是方阵,等同于数字里面的 1。
在这里插入图片描述
对角矩阵
对角矩阵,就是主对角线非 0,其它位置是 0。
对角<a class=矩阵一定是方阵。不然没有对角线!" />

矩阵运算
矩阵加减法
矩阵的加法就是矩阵的对应位置相加,减法也是一样就是对应位置相减。
在这里插入图片描述
数乘在这里插入图片描述
矩阵乘法
矩阵的乘法和一般的乘法是不太一样!
它是把第一个矩阵的每一行,和第二个矩阵的每一列拿过来做内积得到结果。
在这里插入图片描述
在这里插入图片描述
矩阵乘法运算结果
在这里插入图片描述
矩阵转置
转置的操作和向量是一样的,就是把 a ij变成 a ji ,把行和列互换一下
在这里插入图片描述
矩阵运算法则
矩阵加减法
满足:分配律、结合律、交换律
在这里插入图片描述
矩阵乘法
满足结合律在这里插入图片描述
满足分配律在这里插入图片描述
不满足交换律:不一定相等,甚至 AB 的尺寸和 BA 的尺寸是不同的。
在这里插入图片描述
矩阵乘法 + 转置

在这里插入图片描述

矩阵
矩阵定义
矩阵有 AB 乘法,但是没有 A/B 这么一说,只有逆矩阵
矩阵怎么定义的?
假设有个矩阵 A,注意它一定是方阵(必须是方阵),乘以矩阵 B 等于单位矩阵I:在这里插入图片描述
那么我们称这里的 B 为 A 的右逆矩阵,和左逆矩阵

有个很重要的结论就是,如果这样的 B 存在的话,它的左逆和右逆一定相等,统称为 A 的逆矩阵 A −1 。则:A=B−1 B=A−1 (-1次方)
矩阵作用
矩阵求逆有什么用呢?它可以帮助我们解线性方程组,比如 XW=Y 。两边同时乘以 X 的逆:在这里插入图片描述
就可以求解出方程的系数,它发明的目的也是干这样的事情用的。
举例说明:

# 三元一次方程
# 3x + 2y + 4z = 19
# 2x -y + 3z = 9
# x + y - z = 0
import numpy as np
X = np.array([[3,2,4],[2,-1,3],[1,1,-1]])
Y = np.array([19,9,0])display(X,Y)# np.linalg.inv表示矩阵求逆
# dot表示矩阵乘法
W = np.linalg.inv(X).dot(Y)
print('求解方程得x,y,z为:',W)
'''
array([[ 3,  2,  4],[ 2, -1,  3],[ 1,  1, -1]])
array([19,  9,  0])
求解方程得x,y,z为: [1. 2. 3.]
'''

从这里我们也可以看出来单位矩阵像我们乘法里面的 1。
矩阵相关公式:在这里插入图片描述

伴随矩阵
伴随矩阵定义
设有一矩阵 A在这里插入图片描述
设 A ij 是矩阵A中元素 a ij 的代数余子式,那么矩阵 A ∗称为<a class=矩阵 A 的伴随矩阵" />
代数余子式
1、代数余子式定义在这里插入图片描述
2、代数余子式计算在这里插入图片描述
计算过程如下:在这里插入图片描述
伴随矩阵性质I,E都表示单位<a class=矩阵" />
伴随矩阵与逆矩阵
在这里插入图片描述
根据上式可得:在这里插入图片描述

import numpy as np
# 声明矩阵
A = np.array([[1,2,3],[2,2,1],[3,4,3]])
A_bs = [] # 伴随矩阵
n = 3 # A方阵的行、列数量
for i in range(n):for j in range(n):row = [0,1,2] # 行索引col = [0,1,2] # 列索引row.remove(i) # 去除行col.remove(j) # 去除列# 代数余子式A_ij = A[np.ix_(row,col)]A_bs.append(((-1)**(i+j)) * np.linalg.det(A_ij))
A_bs = np.array(A_bs).reshape(3,3).T
print('根据伴随矩阵求逆矩阵:\n',A_bs/np.linalg.det(A))
print('用NumPy模块求逆矩阵 :\n',np.linalg.inv(A))
'''
根据伴随矩阵求逆矩阵[[ 1.   3.  -2. ][-1.5 -3.   2.5][ 1.   1.  -1. ]]
用NumPy模块求逆矩阵[[ 1.   3.  -2. ][-1.5 -3.   2.5][ 1.   1.  -1. ]]
'''

http://www.ppmy.cn/ops/5518.html

相关文章

JAVA 项目<果园之窗>_2

上节主要是理论流程&#xff0c;这次直接用实际例子过一遍整个流程 目标是向数据库添加一个员工 上述是前端页面&#xff0c;点击保存 浏览器向我后端发送http请求 后端这一部分专门接收employee请求 在这里对http post请求进行转换成JAVA数据&#xff0c;并处理数据&#xff…

Uni-app中实现数据选择并回传给上个页面的方法

当我们在Uni-app中进行页面间数据传递时&#xff0c;通常会涉及到数据的选择以及回传给上个页面的需求。为了达到这个目的&#xff0c;我们可以利用Uni-app提供的事件机制和页面导航方法来实现。以下是一种实现方式&#xff1a; 数据选择并回传给上个页面的方法 第一步&#…

Qt编译静态链接库和动态链接库(WindowsLinux)

最近需要在Linux中编译相关程序动态库&#xff0c;对相关经验总结。 使用到的工具为Qt5.13.2 QT编译 1. WINDOWS1.1 静态库制作1.2 静态库的使用1.3 动态库制作1.4 动态库使用 2. LINUX2.1 静态链接库2.2动态库 附录gcc 编译程序查找顺序&#xff1a;Linux 程序运行时查找顺序&…

算法训练营day14

二叉树理论基础 种类 满二叉树&#xff0c;数上只有度为0或2的节点完全二叉树&#xff0c;(h - 1)层都满了&#xff0c;h层都集中在左侧若干位置 存储方式 链式存储&#xff0c;指针顺序存储&#xff0c;数组 遍历方式 深度优先 前序遍历(递归&#xff0c;迭代)中序遍历(递归…

新项目应该选mongodb还是postgresql?

文章目录 MongoDBPostgreSQL大数据处理时的优势对比实际使用经验 选择MongoDB还是PostgreSQL作为新项目的数据库&#xff0c;主要取决于项目的具体需求、数据模型、应用场景以及团队熟悉程度等因素。下面将从几个关键角度对两者进行对比分析。 MongoDB 数据模型&#xff1a;Mo…

Docker - 入门基础

原文地址&#xff0c;使用效果更佳&#xff01; Docker - 入门基础 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-basic.html Docker架构 Docker 使用的是客户端-服务端&#xff08;C/S&#xff09;架构模式&#xff0c;使用远程 API 来管理和创建…

Flutter 热修复(Shorebird)

Shorebird&#xff1a;https://docs.shorebird.dev/ 我们都知道安卓原生开发&#xff0c;热修复已经不是什么难题。阿里云&#xff0c;腾讯云已经都有现成的SDK可以接入。 然而Flutter开发还一直没有类似热修复的开发库&#xff0c;无意中看到了Shorebird这个平台&#xff0c…

Visual Studio2010源码编译curl_7_60

一、源码解压目录内容 很开心里面可以找到CMakeLists.txt文件&#xff0c;说明可以实用CMake工具进行构建&#xff0c;由于多数开源项目都选择实用CMake作为构建编译工具&#xff0c;大家蝇该都比较熟练了。 二、实用CMake开始构建Visual Studio 2010工程 很顺利整个构建过程没…