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]会发生在工业物联网的各个场景中,包括产线机组设备的运行、运输设备的移动、试验仪器的运行等等。通过分析采集到的振动信号可以预估设备的疲劳年限、及时知晓设备已发生的异常以及预测未来仪器可能发生的异常等等。本篇教程会提供给有该方…...
C++类和对象:面向对象编程的核心。| 面向对象还编什么程啊,活该你是单身狗。
👑专栏内容:C学习笔记⛪个人主页:子夜的星的主页💕座右铭:日拱一卒,功不唐捐 文章目录一、前言二、面向对象编程三、类和对象1、类的引入2、类的定义Ⅰ、声明和定义在一起Ⅱ、声明和定义分开Ⅲ、成员变量命…...
CUDA虚拟内存管理
CUDA中的虚拟内存管理 文章目录CUDA中的虚拟内存管理1. Introduction2. Query for support3. Allocating Physical Memory3.1. Shareable Memory Allocations3.2. Memory Type3.2.1. Compressible Memory4. Reserving a Virtual Address Range5. Virtual Aliasing Support6. Ma…...
线程池小结
什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象; 为什么使用线程池 …...
vue3状态管理模式 Pinia
状态管理库 Pinia是Vue的专属状态管理库,它允许你跨组件或页面共享状态 1:安装与使用pinia 1.1 安装语法:npm install pinia1.2 创建一个pinia(根存储)并将其传递给应用程序 import { createApp } from vue import…...
python基于django的自媒体社区交流平台
自媒体社区平台采用python技术,基于django框架,mysql数据库进行开发,实现了以下功能: 本系统主要包括管理员,用户,商家和普通管理员四个角色组成,主要包括以下功能: 1;前台:首页、需求通告、优质案例、帮助中心、意见反馈、个人中心、后台管理…...
Python中类和对象(2)
1.继承 Python 的类是支持继承的:它可以使用现有类的所有功能,并在无需重新编写代码的情况下对这些功能进行扩展。 通过继承创建的新类称为 “子类”,被继承的类称为 “父类”、“基类” 或 “超类”。 继承语法是将父类写在子类类名后面的…...
SpringMvc入门
Spring与Web环境的集成 1.ApplicationContext应用上下文的获取方式 分析 之前获取应用上下文对象每次都是从容器中获取,编写时都需要new ClasspathXmlApplicationContext(Spring配置文件),这样的弊端就是配置加载多次应用上下文就创建多次。 在Web项目…...
设计模式之单例模式(C++)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、单例模式是什么? 单例模式是一种创建型的软件设计模式,在工程项目中非常常见。通过单例模式的设计&am…...
贪心算法(基础)
目录 一、什么是贪心? (一)以教室调度问题为例 1. 问题 2. 具体做法如下 3. 因此将在这间教室上如下三堂课 4. 结论 (二)贪心算法介绍 1. 贪心算法一般解题步骤 二、最优装载问题 (一…...
【九宫格坐标排列 Objective-C语言】
一、这个案例做好之后的效果如图: 1.这个下载是可以点击的,当你点击之后,弹出一个框,过一会儿,框框自动消失,这里变成“已安装” 2.那么,我现在先问大家一句话:大家认为在这一个应用里面,它包含几个控件, 3个,哪3个:一个是图片框,一个是Label,一个是按钮, 这…...
wordpress 404错误/nba西部最新排名
黄陈宏博士刚刚走马上任戴尔公司大中华区总裁。老话儿说,新官上任三把火。不知黄陈宏的三把火要从何烧起。笔者早听说黄陈宏已离开施耐德电气另谋高就,但对于他出任戴尔公司大中华区总裁还是有些意外。黄陈宏是老电信人,当初加入施耐德电气就…...
杭州网站建站/行业关键词词库
首先去特硬去下载vscode的安装包 mkdir /tmp/vscode cd /tmp/vscode/ wget https://az764295.vo.msecnd.net/public/0.3.0/VSCode-linux-x64.zip 解压安装包 unzip /tmp/vscode/VSCode-linux-x64.zip -d /opt/ 此时就可以正常运行VSCode了 sudo chmod x /opt/VSCode-linux-x64/…...
网站建设步骤详解/长沙seo招聘
上午没事写了一篇,下午有事,晚上回来看看感觉写的差点意思,上篇文章大概的关于循环是自己添加了两个空的View,看到网上还有一种就是在自定义的Adapter中getCount中返回最大值,然后destroyItem不删除View,添…...
wordpress定时发布插件/如何优化seo
每逢双11,无论智慧物流、自营物流,还是第三方物流,菜鸟、苏宁、四通一达纷纷招兵买马。随着今年双11的临近,种种迹象显示,今年快递行业双11备战提前触发。“高薪急聘、包吃住”,一些招聘网站中,…...
厦门电子商务网站建/资源搜索神器
我们都知道, 在使用多线程编程的时候,每个线程运行的顺序都是随机的, 它由CPU的线程调度机制决定执行哪个线程; 我们可以看看正常使用多线程编程时程序的运行顺序: import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.ut…...
wordpress用户名忘记/百度联盟一天多少收入
1、v1.begin() 2是第三个元素 2、定义时指定10个元素的内存,同时给所有元素赋值6 ——vector v3(10, 6) 3、;...