线性算子是线性代数和数值计算中的核心概念。简单来说如果一个映射TTT满足可加性和齐次性即对任意向量u,vu,vu,v和标量ccc都有T(uv)T(u)T(v),T(cu)cT(u) T(uv)T(u)T(v), \quad T(cu)cT(u)T(uv)T(u)T(v),T(cu)cT(u)那么TTT就是一个线性算子。在线性算子中矩阵是最常见、也最便于编程实现的一类对象。通过 Python可以把线性算子的定义、矩阵表示、复合运算、特征值分析以及数值实验结合起来从而更直观地理解线性算子的作用方式。一、线性算子的基本思想在有限维向量空间中线性算子通常可以用矩阵来表示。例如一个二维线性算子可以写成T(x,y)Ax T(x,y)AxT(x,y)Ax其中AAA是一个矩阵xxx是列向量。线性算子之所以重要是因为它能够描述旋转、缩放、投影、剪切、反射等许多几何变换也能用于求解线性方程组、分析动力系统、进行图像处理和机器学习中的特征变换。从编程角度看线性算子的实现并不只是简单调用矩阵乘法函数更重要的是验证它是否满足线性性质并通过数值实验观察它对向量空间产生的影响。二、实验环境与依赖库本次报告使用 Python 完成主要依赖numpy进行矩阵与向量运算。numpy提供了高效的数组计算能力适合处理线性算子相关的数值实验。核心依赖如下importnumpyasnp如果环境中尚未安装numpy可以通过以下命令安装pipinstallnumpy三、线性算子的 Python 类设计为了更清晰地展示线性算子的结构可以设计一个LinearOperator类。该类接收一个矩阵作为输入并支持向量变换、线性性质检验、复合运算、幂运算和特征值分析。importnumpyasnpclassLinearOperator:基于矩阵表示的有限维线性算子def__init__(self,matrix:np.ndarray):matrixnp.asarray(matrix,dtypefloat)ifmatrix.ndim!2ormatrix.shape[0]!matrix.shape[1]:raiseValueError(matrix 必须是方阵)self.matrixmatrix self.dimmatrix.shape[0]def__call__(self,v):vnp.asarray(v,dtypefloat)ifv.shape[0]!self.dim:raiseValueError(向量维度与算子不匹配)returnself.matrix vdefis_linear(self,trials100,tol1e-10):数值检验线性性质T(aubv) ≈ aT(u)bT(v)for_inrange(trials):unp.random.randn(self.dim)vnp.random.randn(self.dim)afloat(np.random.randn())bfloat(np.random.randn())lhsself(a*ub*v)rhsa*self(u)b*self(v)ifnotnp.allclose(lhs,rhs,atoltol):returnFalsereturnTruedefcompose(self,other):返回复合算子 self ∘ otherifself.dim!other.dim:raiseValueError(算子维度不一致)returnLinearOperator(self.matrix other.matrix)defpower(self,n:int):返回算子的 n 次幂ifn0:raiseValueError(暂不支持负幂)returnLinearOperator(np.linalg.matrix_power(self.matrix,n))defeigen(self):计算特征值和特征向量values,vectorsnp.linalg.eig(self.matrix)returnvalues,vectorsdef__repr__(self):returnfLinearOperator(dim{self.dim})\n{self.matrix}这个类的设计亮点在于它把线性算子从“一个矩阵”提升为“一个可调用的数学对象”。使用__call__方法后可以直接像函数一样调用算子TLinearOperator(np.array([[2,1],[0,3]]))vnp.array([1,2])print(T(v))四、线性性质数值验证线性算子最重要的特征是线性性质。下面的代码通过随机向量多次检验T(aubv)T(aubv)T(aubv)是否等于aT(u)bT(v)aT(u)bT(v)aT(u)bT(v)。Anp.array([[2,1],[0,3]])TLinearOperator(A)print(是否满足线性性质,T.is_linear())运行结果通常类似是否满足线性性质 True这里的检验方法属于数值验证。由于计算机浮点运算存在误差因此不能直接用判断相等而应使用np.allclose进行容差比较。这个细节在数值线性代数中非常重要。五、典型线性算子实验1. 旋转变换二维旋转矩阵是一个典型的线性算子R(θ)[cosθ−sinθsinθcosθ] R(\theta)\begin{bmatrix} \cos\theta -\sin\theta\\ \sin\theta \cos\theta \end{bmatrix}R(θ)[cosθsinθ−sinθcosθ]thetanp.pi/4RLinearOperator(np.array([[np.cos(theta),-np.sin(theta)],[np.sin(theta),np.cos(theta)]]))vnp.array([1,0])print(旋转后向量,R(v))print(是否保持长度,np.isclose(np.linalg.norm(v),np.linalg.norm(R(v))))旋转算子的一个重要特点是它保持向量长度不变。通过数值实验可以发现旋转前后向量的范数基本一致。2. 缩放变换缩放变换可以放大或缩小向量SLinearOperator(np.array([[2,0],[0,0.5]]))vnp.array([1,1])print(缩放后向量,S(v))该算子会把第一个坐标放大 2 倍把第二个坐标缩小为原来的一半。缩放变换通常不保持向量长度但保持线性结构。3. 剪切变换剪切变换会使图形发生倾斜HLinearOperator(np.array([[1,1],[0,1]]))vnp.array([1,0])print(剪切后向量,H(v))剪切算子不会改变所有向量的方向但会改变空间的几何形状。它在图像处理、有限元分析和计算机图形学中都有应用。六、算子复合与幂运算线性算子之间可以进行复合运算。若SSS和TTT都是线性算子则S∘TS\circ TS∘T仍然是线性算子。矩阵表示下复合对应矩阵乘法。Anp.array([[1,2],[3,4]])Bnp.array([[0,1],[1,0]])SLinearOperator(A)TLinearOperator(B)STS.compose(T)print(S ∘ T 的矩阵\n,ST.matrix)print(S ∘ T 是否线性,ST.is_linear())算子幂运算可以用来研究重复作用的效果。例如多次应用同一个线性算子相当于计算矩阵的幂。T2T.power(2)print(T^2 的矩阵\n,T2.matrix)对于反射算子或置换算子幂运算常常会出现周期性结果。例如交换两个坐标的算子作用两次后通常会恢复原状。七、特征值与特征向量分析特征值和特征向量用于描述线性算子的“稳定方向”。若Tvλv Tv\lambda vTvλv则vvv是特征向量λ\lambdaλ是对应的特征值。特征值可以反映线性算子的缩放、旋转、收缩或发散趋势。Anp.array([[2,1],[0,3]])TLinearOperator(A)values,vectorsT.eigen()print(特征值,values)print(特征向量\n,vectors)对于上三角矩阵特征值通常出现在对角线上。上面的矩阵特征值分别为 2 和 3说明该算子在两个特征方向上分别进行 2 倍和 3 倍缩放。特征值分析在动力系统、主成分分析、稳定性判断和微分方程数值解中都有重要作用。八、完整实验示例下面给出一个较完整的实验流程包括构造算子、验证线性性质、应用变换、复合算子和特征分析。defdemo():print(*40)print(线性算子数值实验)print(*40)Anp.array([[2,1],[0,3]])TLinearOperator(A)print(\n算子矩阵\n,T.matrix)print(是否满足线性性质,T.is_linear())vnp.array([1,2])print(\n原始向量,v)print(变换后向量,T(v))thetanp.pi/3RLinearOperator(np.array([[np.cos(theta),-np.sin(theta)],[np.sin(theta),np.cos(theta)]]))print(\n旋转向量,R(v))SLinearOperator(np.array([[2,0],[0,0.5]]))print(缩放向量,S(v))RSR.compose(S)print(\nR ∘ S 是否线性,RS.is_linear())print(R ∘ S 变换结果,RS(v))values,vectorsT.eigen()print(\n特征值,values)print(特征向量\n,vectors)if__name____main__:demo()运行后可以看到同一个向量经过不同线性算子作用后会产生不同的几何效果。通过组合旋转、缩放和一般矩阵变换可以更直观地理解线性算子对空间结构的影响。九、报告亮点数学定义与代码实现紧密结合报告从线性算子的定义出发直接对应到矩阵乘法实现避免了“只写代码不讲原理”的问题。面向对象设计提升抽象层次通过LinearOperator类把矩阵封装成可调用、可复合、可幂运算的对象更符合数学直觉。线性性质采用数值验证使用随机向量和容差比较验证T(aubv)aT(u)bT(v)T(aubv)aT(u)bT(v)T(aubv)aT(u)bT(v)体现了数值实验思想。覆盖多种典型变换包括旋转、缩放、剪切、复合和幂运算能够展示线性算子的几何意义。特征值分析增强理论深度不仅实现变换还进一步分析算子的特征结构为后续学习谱理论、主成分分析和稳定性分析打下基础。十、总结线性算子是连接线性代数理论与工程计算的重要工具。通过 Python 实现可以把抽象的映射关系转化为具体的矩阵运算并通过数值实验观察其对向量和空间的影响。本报告给出的LinearOperator类虽然基于有限维矩阵但已经能够支持线性性质验证、算子复合、幂运算和特征分析等核心操作。后续还可以扩展到稀疏矩阵、函数空间算子、数值稳定性分析以及更高维变换实验。
企业数字化 ERP 产品动态
相关推荐
拆解 | 推理芯片融资潮:五条架构路线,下一代全在拐向 3D 堆叠 DRAM 2026 年推理芯片的估值有多夸张:Etched 一颗只跑 transformer 的芯片,八个月估值从 50 亿美元冲到传闻的 400 亿。可把钱往哪儿去了摊开看,Groq、Cerebras、d-Matrix 的下一代,全在拐向同一个技术,3D 堆叠 DRAM。钱很多… · 2026/11/11 0:53:13
Python函数入门避坑指南!小白必学3种实用函数,抄模板就能写 这是关于函数入门的学习内容, 适合零基础的小白, 提供了三种模板, 只要照着抄一遍就会发现很快就学会。学函数的小白,90%都会陷入两个误区:要么就是把def的语法给死记硬背下来, 可是等于是背完了这回事之后, 还是照样不会去写。要么只会复制别人的函数&a… · 2026/11/5 15:03:54
小白程序员必看:企业 Agent 如何从会聊天变成工作利器? 企业 Agent 要真正参与工作,需要明确四个关键问题:由谁判断、如何执行、怎样接入业务系统、依据哪些知识?文章将 Agent 能力分为专家(判断问题)、技能(执行方法)、连接器(接入系统&a… · 2026/11/5 8:56:20
非电工作业身亡怎么报名?工地太忙根本没时间复习考试 非电工作业身亡怎么报名?工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是多少特种作业人员的真实写照。你是不是也经常在工地加班到深夜,连抽时间复习考试都成了奢望?但特种作业操作证,尤其是像【非电工作业身亡】这类高风险作业的证书,不… · 2026/11/11 0:52:51
什么电工证最值钱值不值得考?怕考不过白交培训费看这篇就够了 什么电工证最值钱值不值得考?怕考不过白交培训费看这篇就够了 你是不是也在纠结,什么电工证最值钱?值不值得考?怕交了培训费最后还考不过?别急,今天就给你讲明白,从报名到拿证,每一个步骤都帮你踩坑,别再交“智商税”了。… · 2026/11/11 0:52:51
杭州建筑业电工证与2026河南最新政策怎么考才不白交钱 杭州建筑业电工证与2026河南最新政策怎么考才不白交钱 怕考不过白交培训费?2026河南最新政策下,杭州建筑业电工证报考门槛更高,但机会也更多,关键是你怎么准备。下面这些问题,是济源劳务班组负责人最关心的,看完再决定要不要报考。… · 2026/11/11 0:52:51
弱电工证最低要什么学历复审延期怎么办理 电工证最低要什么学历?弱电工上岗必备门槛全解析 实操考试心里没底怕挂科?特别是弱电工证这种对动手能力要求高的岗位,很多人都担心自己能不能通过。其实,弱电工证的学历门槛并不高,关键是要掌握实操技能和考试技巧。本文将从安阳劳务班组负责人的视角出… · 2026/11/11 0:52:51
特种工考证网上岗必备:外省证书怎么转?实操干货全在这里 特种工考证网上岗必备:外省证书怎么转?实操干货全在这里 之前考的证在外省能不能转过来?这个问题困扰了不少准备转行或提升技能的特种作业人员,特别是像在信阳从事水利工程的工人,常常因为工作流动性大、证书归属地不一致而陷入两难。其实,特种工考证网… · 2026/11/11 0:51:51
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/10 17:46:39
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/10 17:11:43
_中职电工证最新政策解读 中职电工证在哪考?工地太忙根本没时间复习考试的救星来了 工地太忙根本没时间复习考试,这是很多正在备考 中职电工证 的建筑工友的真实写照。你不是不想考,而是真的没时间。但别担心,这期内容是 新乡初次报考人员… · 2026/11/11 0:00:52
昆明电工证培训价格值不值得考?老电工告诉你真相 昆明电工证培训价格值不值得考?老电工告诉你真相 之前考的证在外省能不能转过来?这个问题是很多在外地打工、换城市生活、或者是想在昆明发展的朋友最关心的。尤其是现在云南发展快,很多企业都在招持证上岗的电工,如果你手头有证但不在本地,那这个证是不… · 2026/11/11 0:00:52
特种电缆张工网上查询全攻略:外省证如何转过来 特种电缆张工网上查询全攻略:外省证如何转过来 之前考的证在外省能不能转过来?这是很多特种作业从业者最关心的问题,尤其是像特种电缆张工这类证书,直接关系到日常工作是否合规、能否顺利晋升。很多小伙伴因为证书归属地的问题,陷入职业发展的瓶颈,甚至… · 2026/11/11 0:00:52
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 20:19:29
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 19:22:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 17:00:47