3.2 埃尔米特转置
定义
对于复矩阵,转置又不一样,常见的操作是共轭转置,也叫埃尔米特转置Hermitian transpose。埃尔米特转置就是对矩阵先共轭,再转置,一般来说用三种符号表示埃尔米特转置:
- 第一种符号是AHA^HAH,这是国内教材通用的做法,H是埃尔米特名字首字母;
- 第二种符号是A∗A^*A∗,这是国外教材喜欢用,这个符号在国内教材表示伴随矩阵,如以下文档:

- 第三种符号是匕首符号A†A^{\dagger}A†,但是有时候也用来表示矩阵的加号逆。
求埃尔米特转置的代码比较简单,python就一行代码:
# 埃尔米特转置def hermitian_transpose(self):return Matrix([[e.conjugate() for e in v] for v in self.__vectors]).transpose_matrix()
测试了一个矩阵:
(1−i6−i2−8i2+i5+i4−i)H=(1+i2−i6+i5−i2+8i4+i)\begin{pmatrix}1-i & 6-i & 2-8i\\ 2+i & 5+i & 4-i\\ \end{pmatrix}^H= \begin{pmatrix}1+i & 2-i\\ 6+i & 5-i\\ 2+8i & 4+i\\ \end{pmatrix} (1−i2+i6−i5+i2−8i4−i)H=1+i6+i2+8i2−i5−i4+i
埃尔米特阵
如果一个矩阵,埃尔米特转置后还是它自己,这样的矩阵就是埃尔米特阵。毫无疑问,矩阵必须得是一个方阵。所以它的判断方式也很简单,首先判断是否为方阵,再以对角线为对称轴判断就完事了,但是要注意数据类型,把复数和其他类型区分开来,所以代码会稍微长一点:
# 是否埃尔米特阵def is_hermitian(self):m = len(self.__vectors[0])n = len(self.__vectors)if m != n:return False# 遍历每一行对角线以上的元素for i in range(m):for j in range(i+1, n):e = self.__vectors[j][i]f = self.__vectors[i][j]if isinstance(e, complex):if e != f.conjugate():return Falseelse:if e != f:return Falsereturn True
比如以下矩阵就是一个埃尔米特阵:
(1−i2−i3+i2+i5+i3+i3−i3−i3−i)\begin{pmatrix}1-i & 2-i & 3+i\\ 2+i & 5+i & 3+i\\ 3-i & 3-i & 3-i\\ \end{pmatrix} 1−i2+i3−i2−i5+i3−i3+i3+i3−i
酉矩阵
一个方阵的逆矩阵恰好是自己的埃尔米特转置,这样的矩阵被称为酉矩阵unitary matrix,也就是:
AAH=AHA=IAA^H=A^HA=I AAH=AHA=I
AAH=AHAAA^H=A^HAAAH=AHA这个定义就限制了必须为方阵。所以它的判断也比较简单:
# 是否为酉矩阵def is_unitary(self):m = len(self.__vectors[0])n = len(self.__vectors)if m != n:return Falsex = self * self.hermitian_transpose()return x.is_identity()# 是否为单位矩阵def is_identity(self):m = len(self.__vectors[0])n = len(self.__vectors)if m != n:return Falsefor i in range(n):for j in range(n):if i == j:if self.__vectors[i][j] != 1:return Falseelif self.__vectors[i][j] != 0:return Falsereturn True
比如以下两个矩阵就是一个酉矩阵:
(0.5−0.5i−0.5+0.5i0.5i0.50.5+0.5i0.5+0.5i−0.5+0.5i0)(0.5−0.5i0.5−0.5i0.5i0.5−0.5−0.5i−0.5−0.5i0.5−0.5i0)=(100010001)\begin{pmatrix}0.5 & -0.5i & -0.5+0.5i\\ 0.5i & 0.5 & 0.5+0.5i\\ 0.5+0.5i & -0.5+0.5i & 0\\ \end{pmatrix}\begin{pmatrix}0.5 & -0.5i & 0.5-0.5i\\ 0.5i & 0.5 & -0.5-0.5i\\ -0.5-0.5i & 0.5-0.5i & 0\\ \end{pmatrix}\\=\begin{pmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{pmatrix} 0.50.5i0.5+0.5i−0.5i0.5−0.5+0.5i−0.5+0.5i0.5+0.5i00.50.5i−0.5−0.5i−0.5i0.50.5−0.5i0.5−0.5i−0.5−0.5i0=100010001
相关文章:
3.2 埃尔米特转置
定义 对于复矩阵,转置又不一样,常见的操作是共轭转置,也叫埃尔米特转置Hermitian transpose。埃尔米特转置就是对矩阵先共轭,再转置,一般来说用三种符号表示埃尔米特转置: 第一种符号是AHA^HAH,…...
Python爬虫之Scrapy框架系列(13)——实战ZH小说爬取数据入MySql数据库
目录:1 数据持久化存储,写入Mysql数据库①定义结构化字段:②重新编写爬虫文件:③编写管道文件:④辅助配置(修改settings.py文件):⑤navicat创库建表:⑥ 效果如下…...
MySQL篇02-三大范式,多表查询
数据入库时,由于数据设计不合理,会存在数据重复、更新插入异常等情况, 故数据库中表的设计遵循的设计规范:三大范式1.第一范式(1NF)要求数据库的每一列都是不可分割的原子数据项,即原子性。强调的是列的原子性,即数据库中每一列的…...
vue-cli3创建Vue项目
文章目录前言一、使用vue-cli3创建项目1.检查当前vue的版本2.下载并安装Vue-cli33.使用命令行创建项目二、关于配置前言 本文讲解了如何使用vue-cli3创建属于自己的Vue项目,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。 下面案例可供…...
Linux perf probe 的使用(三)
文章目录前言一、Dynamic Tracing二、kprobes2.1 perf kprobe 的使用2.2 kprobe Arguments3.3 tcp_sendmsg()3.3.1 Kernel: tcp_sendmsg()3.3.2 Kernel: tcp_sendmsg() with size3.3.2 Kernel: tcp_sendmsg() line number and local variable三、uprobes的使用3.1 perf uprobe …...
python GUI编程 多窗口跳转
# 多窗口跳转例子from tkinter import *def main(): # 主窗体def goto(num):root.destroy() # 关闭主窗体if num 1:one() # 进入第1个窗体elif num 2:two() # 进入第2个窗体root Tk()root.geometry(300x150600200)root.title(登录窗口)but1 Button(root, text"进入…...
nuxt 学习笔记
这里写目录标题路由跳转NuxtLinkquery参数params参数嵌套路由tab切换效果layouts 文件夹强制约定放置所有布局文件,并以插槽的形式作用在页面中1.在app.vue里面2.component 组件使用Vue < component :is"">Vuex生命周期数据请求useFetchuseAsyncDat…...
Python编程自动化办公案例(1)
作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.使用库讲解 1.xlrd 2.xlwt 二.主要案例 1.批量合并 模板如下…...
一站式 Elasticsearch 集群指标监控与运维管控平台
上篇文章写了一下消息运维管理平台,今天带来的是ES的监控和运维平台。目前初创企业,不像大型互联网公司,可以重复的造轮子。前期还是快速迭代试错阶段,方便拿到市场反馈,及时调整自己的战略和产品方向。让自己活下去&a…...
C# 调用Python
一、简介 IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。 Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python是…...
51单片机最强模块化封装(3)
文章目录 前言一、创建smg文件,添加smg文件路径二、smg文件编写三、模块化测试总结前言 本篇文章将带大家继续封装我们的代码。 这里我们会封装数码管的操作函数。 一、创建smg文件,添加smg文件路径 这里的操作就不过多解释了,大家自行看前面的文章即可。 51单片机模块化…...
【CSS 布局】水平垂直居中
CSS 布局-水平垂直居中 一、水平居中 创建一个父盒子,和子盒子 <div class"parent"><div class"child"></div> </div>基本样式如下 .parent {background-color: #fff; }.child {background-color: #999;width: 100p…...
【C++】类和对象--类的6个默认成员函数
目录1.类的6个默认成员函数2.构造函数2.1概念2.2特性3.析构函数3.1概念3.2特性4.拷贝构造函数4.1概念4.2特征5.赋值运算符重载5.1运算符重载5.2赋值运算符重载5.3前置和后置重载5.4流插入和流提取运算符重载6.const成员7.取地址重载和const取地址操作符重载1.类的6个默认成员函…...
常见面试题---------如何处理MQ消息丢失的问题?
如何处理MQ消息丢失的问题? RabbitMQ丢失消息分为如下几种情况: 生产者丢消息: 生产者将数据发送到RabbitMQ的时候,可能在传输过程中因为网络等问题而将数据弄丢了。 RabbitMQ自己丢消息: 如果没有开启RabbitMQ的持久化&#x…...
十四、Linux网络:高级IO
目录 五种IO模型 同步IO 阻塞IO 非阻塞IO 信号驱动IO IO多路转接 异步IO...
带你走进API安全的知识海洋
Part1什么是API API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访…...
【Java】TCP的三次握手和四次挥手
三次握手 TCP三次握手是一个经典的面试题,它指的是TCP在传递数据之前需要进行三次交互才能正式建立连接,并进行数据传递。(客户端主动发起的)TCP之所以需要三次握手是因为TCP双方都是全双工的。 什么是全双工? TCP任何…...
JUC并发编程
1.什么是JUC java.util工具包、包、分类 业务:普通业务线程代码 Thread Runable: 没有返回值、效率相比Callable相对较低。 2.线程和进程 进程:一个程序,QQ.exe Music.exe 程序的集合 一个进程往往可以包含多个线程,至少包含一个…...
概率统计·假设检验【正态总体均值的假设检验、正态总体方差的假设检验】
均值假设检验定义 2类错误 第1类错误(弃真):当原假设H0为真,观察值却落入拒绝域,因而拒 绝H0这类错误是“以真为假” 犯第一类错误的概率显著性水平α第2类错误(取伪):当原假设H0不…...
如何预测机组设备健康状态?你可能需要这套解决方案
1. 应用场景随机振动[注1]会发生在工业物联网的各个场景中,包括产线机组设备的运行、运输设备的移动、试验仪器的运行等等。通过分析采集到的振动信号可以预估设备的疲劳年限、及时知晓设备已发生的异常以及预测未来仪器可能发生的异常等等。本篇教程会提供给有该方…...
3个核心功能+5种使用场景:FanControl帮你打造Windows平台专属散热系统
3个核心功能5种使用场景:FanControl帮你打造Windows平台专属散热系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitH…...
混元图像3.0对话P图技术解析:本地化可控生成新范式
1. 项目概述:这不是又一个“AI修图”功能,而是本地化P图工作流的临界点“腾讯混元图像3.0图生图模型上线,元宝也支持对话P图啦!”——这句话在科技圈刷屏那天,我正用本地部署的Stable Diffusion给客户改第十版电商主图…...
为Claude Code配置Taotoken解决封号与Token不足困扰
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken解决封号与Token不足困扰 应用场景类,针对频繁使用Claude Code作为编程助手但受限于官方限制…...
【限时公开】谷歌内部未文档化Gemini JavaScript SDK隐藏能力:流式响应中断控制、上下文压缩率提升63%实测数据
更多请点击: https://intelliparadigm.com 第一章:Gemini JavaScript SDK核心能力概览 Gemini JavaScript SDK 是 Google 官方提供的轻量级客户端库,专为在浏览器和 Node.js 环境中无缝集成 Gemini 模型能力而设计。它抽象了底层 HTTP 请求、…...
超完整Azure游戏开发模板:游戏服务器架构终极指南
超完整Azure游戏开发模板:游戏服务器架构终极指南 【免费下载链接】azure-quickstart-templates Azure Quickstart Templates 项目地址: https://gitcode.com/gh_mirrors/az/azure-quickstart-templates Azure Quickstart Templates是微软提供的开源项目&…...
多语言AI Agent的构建:跨语言理解与任务执行
多语言AI Agent的构建:跨语言理解与任务执行 本文面向有一定大模型应用开发基础的工程师,从原理、架构、实战三个维度完整讲解可落地的多语言AI Agent构建方案,全文约11000字,代码可直接运行。 引言 痛点引入 你是否遇到过这些场景? 运营跨境电商平台时,每个语言站点要…...
实战部署Funannotate基因组注释工具:3种高效配置方案指南
实战部署Funannotate基因组注释工具:3种高效配置方案指南 【免费下载链接】funannotate Eukaryotic Genome Annotation Pipeline 项目地址: https://gitcode.com/gh_mirrors/fu/funannotate Funannotate是一款专业的真核生物基因组注释工具,特别针…...
从用户态到内核态:Linux Hook技术的全景实践与攻防解析
1. Linux Hook技术入门:从概念到实践 第一次接触Hook技术是在十年前的一个安全分析项目中,当时需要监控某个可疑进程的行为。那时候我才明白,原来Linux系统里藏着这么多可以"截胡"程序执行的秘密通道。简单来说,Hook技术…...
技术深度解析CoverM在PacBio HiFi宏基因组测序数据覆盖率分析中的应用
技术深度解析CoverM在PacBio HiFi宏基因组测序数据覆盖率分析中的应用 【免费下载链接】CoverM Read alignment statistics for metagenomics 项目地址: https://gitcode.com/gh_mirrors/co/CoverM CoverM作为一款专门用于计算基因组覆盖率的生物信息学工具,…...
如何快速配置Windows端口转发:终极图形化管理工具指南
如何快速配置Windows端口转发:终极图形化管理工具指南 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI PortProx…...
