使用numpy求解线性代数相关问题

news/2025/1/20 12:04:35/

numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组类型相乘是逐元素相乘,而矩阵类型相乘则是矩阵乘法。

以下使用numpy.array类型来进行线性代数问题求解。

矩阵的转置

A.T

import numpy as npA = np.array([[1, 2], [3, 4]])A_T = A.T
print(A_T)

矩阵乘法

np.dot(A, B)或者是A @ B

import numpy as npA = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B)
print(C)
D = A @ B
print(D)

逆矩阵

np.linalg.inv(A)

import numpy as npA = np.array([[1, 2], [3, 4]])inv_A = np.linalg.inv(A)
print(inv_A)

求解行列式

np.linalg.det(A)

import numpy as npA = np.array([[1, 2], [3, 4]])det_A = np.linalg.det(A)
print(det_A)

矩阵的秩和迹

矩阵的秩是矩阵线性无关的行(或列)的最大数目,它反映了矩阵的“非零度”。矩阵的迹则是其主对角线上元素之和。

求解矩阵的秩:np.linalg.matrix_rank(A)

求解矩阵的迹:np.trace(A)

求解矩阵的迹,用于计算矩阵主对角线上元素的总和,较为通用。所以没有在linalg模块。

import numpy as npA = np.array([[1, 2], [3, 4]])rank_A = np.linalg.matrix_rank(A)
print(rank_A)tr_A = np.trace(A)
print(tr_A)

解线性方程组

np.linalg.solve(A, b)

import numpy as npA = np.array([[1, 2], [3, 4]])b = np.array([1, 2])
# A x = b
x = np.linalg.solve(A, b)
print(x)

计算特征值和特征向量

特征值,特征向量 = np.linalg.eig(A)

import numpy as npA = np.array([[1, 2], [3, 4]])eigenvalues, eigenvectors = np.linalg.eig(A)
print(eigenvalues)
print(eigenvectors)

奇异值分解

奇异值分解(Singular Value Decomposition,简称 SVD)是线性代数中一种重要的矩阵分解方法。它将一个矩阵分解为三个特定的矩阵乘积,这些矩阵具有明确的几何和代数意义。对于任意一个 m ∗ n m * n mn 的实数矩阵 A,其奇异值分解可以表示为:
A = U S V T A = U S V^T A=USVT
U, S, Vt = np.linalg.svd(A)

import numpy as npA = np.array([[1, 2], [3, 4]])U, S, Vt = np.linalg.svd(A)
print(U,S,Vt)

http://www.ppmy.cn/news/1564654.html

相关文章

el-tree树结构在名称后面添加其他文字

//在 el-tree 中使用 render-content 插槽来展示文件大小 <template><div><el-treeref"tree"v-loading"treeData.loading":data"treeData.data"node-key"id" :props"defaultProps":render-content"rend…

CSS笔记01

黑马程序员视频地址&#xff1a; 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes 目录 引入方式 CSS特性 继承性 层叠性 优先级 Emmet写法 …

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测

角点检测&#xff08;Corner Detection&#xff09;是计算机视觉和图像处理中重要的步骤&#xff0c;主要用于提取图像中的关键特征&#xff0c;以便进行后续的任务&#xff0c;比如图像匹配、物体识别、运动跟踪等。下面介绍几种常用的角点检测方法及其应用。 1. Harris角点检…

04_角色创建窗口

将上文的登录窗口隐藏 创建空节点 作为创建角色窗口 命名为CreateWnd 创建输入的名字的输入框 再创建一个按钮用来随机角色名字 创建开始游戏按钮 End.

opencv3.4 ffmpeg3.4 arm-linux 交叉编译

一些依赖安装&#xff1a; sudo apt-get install pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev 交叉编译工具链准备&#xff1a;gcc-linaro-6.3.1 1、下载 https://github.com/FFmpeg/FFmpeg 解压后新建目录&#xff1a;Fmpeg-n3.4.13/ffmpeg…

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED&#xff08;u8g2&#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞??收藏评论 整合 Elasticsearch 8.x &#xff08;二&#xff09;使用Repository 1. 环境准备 1.1 项目依赖1.2 Elasticsearch 配置 2. 使用Repository的基本步骤 2.1 创建实体类2.2 创建 Reposit…

python实现批量视频提取音频

1、安装依赖库 首先需要安装依赖库moviepy pip install moviepy 2、找到对应目录 利用listdir列出目标文件夹以下文件&#xff0c;利用os.path.join进行路径拼接&#xff0c;os.path.splitext()[0]扣掉。MP4后缀&#xff0c;加入所需形式&#xff0c;&#xff08;这里用的是…