张量问题,请你再提出一个数学问题并解答答案专业的请来回答一下?

我来从张量网络的角度回答一下吧。张量的语言由于具备很高的程序可读性,是物理码农们的不二选择。它将复杂的指数操作,转换为了乘积操作,从程序的角度大大减小了工作量。当然,对计算机友好的同时,对人类也越来越不友好,越来越无法直接从张网网络中读取到有用信息。密度矩阵重整化群(DMRG)或者矩阵乘积态(MPS),是过去二十多年里凝聚态理论最为杰出的方法学成就,没有之一。然而用传统程序语言写DMRG的程序,所需要的功力显然超过了完整地过一遍凝聚态场论。所以我们需要程序员的思维,放弃从最基本的对角化或奇异值分解去从头开始DMRG,大多数的任务应该交由计算机自己完成,物理学家的任务应该着重于提取自然世界的物理信息并为之建模。首先介绍一些张量网络的基础表达方式。如图所示,张量在计算机中存储的结果就是多维数组,通常情况下可以使用简单的圈和腿的图形来表示,其中圈就相当于狄拉克符号中的那个编码,腿则表示该张量中所对应的变化指标,即内存中的指针。一条腿的是矢量,两条腿的是矩阵,n条腿的就是n阶张量。不同张量之间可以通过将腿连起来以完成指标的缩并。缩并后的指标,也就是共享指标,是通过类似矩阵乘法的计算来获得。由于现代的程序语言已经广泛将矩阵乘法模块化,程序员并不需要像早年那样一个循环一个循环地写程序,故而我们可以将指标的缩并就当作基本操作,无需再额外理解其内涵。图示的收缩三个三阶张量甲、乙、丙共享的l、m、n指标,就可以得到一个3阶的张量丁。将多个张量(可以是不同维度的张量)按照一定规则缩并,可以形成一个网络,这就是张量网络。本质上说,张量网络是一种表示相关数据集的方法,不仅仅在物理学中有运用。在大数据分析领域,张量网络也用来表示来自不同分支的多维数据,和目前流行的机器学习和神经网络算法联系紧密。在量子多体系统中,张量网络最常见的用途之一是表示量子多体波函数,在此基础上发展出来了大量的算法。首先我们来考虑这样一个系统的纯态
\phi\rangle=\sum_ic_i|i\rangle ,用张量空间中的一个矢量表示,即同理我们可以考虑一个多体波函数,它由不同格点的局域态直积而来,即但这样的表示方法并没有解决张量大小随多体系统尺寸指数增长的问题,我们需要用到DMRG的约化思想。由于多体系统总是处于纠缠态,运用完整的直积态会包含很多冗余信息,张量网络可以用这些纠缠信息来压缩独立参数数量,并保持表示的精确性。于是,我们就有了张量网络中最简单的拟设,也就是矩阵乘积态MPS,它是树状张量网络的一个特例。如图所示就是用张量网络形式表示的多体波函数,除了两端以外,它是由一系列三条腿的张量缩并而来。这里新引入被缩并的指标就是DMRG中已经提到的虚拟指标,原来的物理指标则继续保留在不同腿上。所以,在把张量C分解成MPS时,关键物理量就是键维度(bond dimension),即虚拟指标的维度M,也就是DMRG中的截断数,它决定了MPS描述的准确度。给定一个具有N个d维指标的张量C,在M没有限制的情况下应等于 d^{N/2} 。这当然是发散的,我们要删去其中冗余的部分,使M保持固定不变,也就是线性代数中的低秩近似。此时MPS总的参数个数是 NM^2d ,不再随N指数变化,而是线性变化,这样计算机就能处理了。在把张量分解写成MPS过程中,涉及到Schmidt分解和奇异值分解,这两个分解是使得压缩过程成为可能的理论基础。Schmidt分解把一个量子系统写成两个子系统的直积,通过幺正变换使得两个子系统的密度矩阵同时都是对角化的,此时波函数的系数就是奇异值,也就是纠缠谱。实际操作中纠缠谱用奇异值分解得到,保留纠缠谱中最大的M个值,就可以得到对多体波函数非常好的近似。MPS通常用在一维体系中,根据不同问题中的拓扑结构和物理特性,我们还可以选择其它的基于张量网络的拟设,如多尺度纠缠重整化(MERA)等。在各种不同算法中,通常是选好拟设后随机初始化其中的参数,然后通过多次迭代,更新其中的参数。参数的迭代方法通常包括使能量最小化的变分法或时间演化等。一般的多体哈密顿量通常会被写成多个项的和,一般物理问题只考虑近邻的短程相互作用,所以一个项中常常只会出现几个子空间中的局域算符,我们可以把这些局域算符直积其他子空间的单位矩阵,这样可以在波函数的张量空间中来表示它们。把这些算符作用到波函数上相当于对波函数进行线性变换,在直积空间来看,各个子空间的局域算符会作用到对应的子空间基矢量上。直积空间中的算符是多阶张量,可以等价地写成多个四阶张量的缩并,如图所示的张量网络形式就是MPO。MPS中每个张量只会有一个没有被缩并的物理指标(纵向的腿),但MPO中每个张量会有两个物理指标。直观地说,MPS表示的是高维张量空间中的一个矢量,MPO表示的则是该空间中作用在矢量上的矩阵。算符作用到波函数上会得到一个新的波函数,对应的操作是把MPS和MPO中相同的物理指标进行缩并,得到一个新的MPS。由于MPS中的大部分参数都是0,所以编程时只需使用大型稀疏矩阵储存,而MPO的形式进行稀疏矩阵的乘法也十分方便。另外,MPO也是一个张量网络的拟设,也可以用奇异值分解来压缩参数的总数,不过这样消耗的资源会随系统的大小指数增长。所以通常当MPO中的各个张量都可以只包含对应子空间的局域算符时,我们并不需要写下完整的张量再进行分解,而是根据哈密顿量直接写出MPO。以一维海森堡模型为例,它的哈密顿量可以写为以四个自旋为例,它的MPO形式可以写为可以验证这个矩阵展开之后就是四自旋哈密顿量。注意到,除了两端点略微特殊以外,中间的矩阵都是一样的。因此,无论总格点数是多少,真正需要储存的张量数其实很少,这也是MPO用起来极为方便的原因。当然,哈密顿量中项的数量越多,MPO的形式也越复杂。当前凝聚态理论中最热的多体局域化模型,在文献中常常会直接用MPO形式写出。除了用于量子多体系统,张量网络正被广泛运用到量子统计、量子化学、机器学习、神经网络等的研究中,它与计算机科学、数学的交叉研究也方兴未艾。理论的快速发展,已经来不及照顾那些不是该领域专家的读者,未来随着这套新的描述多体系统的方法逐渐成为主流,采用它来书写的文章还会越来越多。就像当年的费曼图一样,上来就直接给你画图,哪要写那么多格林函数啊。看不懂?那你就out吧。所以啊,年轻的学者都应该把张量作为基础表示法熟悉起来,想绕已经是绕不开的了。
张量(Tensor)是一个定义在的一些向量空间和一些对偶空间的笛卡儿积上的多线性函数,其坐标是|n|维空间内,有|n|个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。r 称为该张量的秩或阶(与矩阵的秩和阶均无关系)。
  在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),第一阶张量 (r = 1) 为向量 (Vector), 第二阶张量 (r = 2) 则成为矩阵 (Matrix)。例如,对于3维空间,r=1时的张量为此向量:(x,y,z)。由于变换方式的不同,张量分成协变张量
(Covariant Tensor,指标在下者)、逆变张量 (Contravariant Tensor,指标在上者)、 混合张量 (指标在上和指标在下两者都有)
三类。
  在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、向量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。可能最重要的工程上的例子就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。
  虽然张量可以用分量的多维数组来表示,张量理论存在的意义在于进一步说明把一个数量称为张量的涵义,而不仅仅是说它需要一定数量的有指标索引的分量。特别是,在坐标转换时,张量的分量值遵守一定的变换法则。张量的抽象理论是线性代数分支,现在叫做多重线性代数。http://baike.baidu.com/view/19611.htm#2
布洛克说:"我和海森堡边走边聊,不知何故,我开始谈论空间。 我说刚读了外尔的《空间、时间和物质》一书,在它的影响下,我自豪地宣布空间只需线性运算。”"胡说八道, 太空是蓝色的,鸟儿在其中翱翔" ,海森堡答道。Felix Bloch conversation with Werner Heisenberg : We were on a walk and somehow began to talk about space. I had just read Weyl's book Space, Time and Matter, and under its influence was proud to declare that space was simply the field of linear operations. ‘Nonsense,’ said Heisenberg, ‘space is blue and birds fly through it.''张量确实是一个非常抽象的概念,估计大多数同学首次接触“张量”时都会有点懵。心中一万个为什么,为什么非得用张量来表示呢?这有什么优势呢?为什么用张量来推导公式呢?把公式每一项都展开写的清清楚楚,不好吗,非得用张量写的那么抽象?等等。其实,当我们习惯用张量的时候,我们会发现其优势是显著的。爱因斯坦在和列维-奇维塔(Levi-Civita)通信中曾写道,"我很欣赏你计算方法的优雅:骑着真正的数学之马穿越这些领域一定很不错,而我们这些不懂这个方法的人却不得不费力地步行。"(I admire the elegance of your method of computation; it must be nice to ride through these fields upon the horse of true mathematics while the like of us have to make our way laboriously on foot.)更重要的是,近现代大多物理规律都是用张量进行表达的,若不懂张量,可能很难懂相对论,很难懂麦克斯韦方程组。在力学领域,有句非常有意思的话,著名生物力学家冯元桢曾讲,“美丽的故事需要用美丽的语言来讲述,张量就是力学的语言”。总之,张量对于理解现代科学,非常重要。1 为什么要引入张量?张量,一定是和坐标(系)转换联系起来的,应当从此角度来进行推导、理解。刘连寿老师在《物理学中的张量分析》开篇写道:“众所周知,物理量在不同坐标系下的分量是不同的,而张量给出了物理量各分量在坐标变换时的变换规律。这意味着无论坐标系怎么改变,我们都能正确地描述该物理量,这就是引入张量的必要性。”这句话对为什么要引入张量已经写得非常清楚了。大家可从在二维直角坐标系下,对同一矢量(或二阶张量)在不同坐标系下的描述来进行理解,详细推导过程可参考:顺便说一句,刘老师的《物理学中的张量分析》写的挺不错,不仅有直角坐标系,还有正交曲线坐标系下张量相关内容,利于入门,值得推荐。2 什么是张量注意:本回答是入门级回答,不涉及复杂的微分几何概念,如流形,对偶向量,协变张量与逆变张量等。本回答基于笛卡儿直角坐标系,向量空间的对偶空间是其本身,因此不用区分协变与逆变。这种情况在地震学够用了,不必再引入复杂的协变("下标记法")与逆变记法("上标记法")。张量是不随坐标系改变而改变的。注意,此处不变是指其总体不变,在各坐标系下的分量大多数情况下是不同的。下面以三维直角坐标系举例:若坐标系A为三维直角坐标系,坐标系B为坐标系A绕z轴逆时针旋转 \theta而形成。1)在坐标系A下,某点的温度为T;在坐标系B下,同一点同一时刻的温度为T*,则T=T*,这说明温度T是张量(0阶张量),其转换规则律为:不同坐标系下的0阶张量直接相等。2)众所周知,向量是不随坐标系改变而改变的,因此向量是张量(1阶张量)。下面详细说明:在坐标系A下,向量T可表示为 \vec T=T_x\vec e_x+T_y\vec e_y+T_z\vec e_z ;在坐标系B下,同一向量T各分量可表示为:T_x'=T_xcos\theta+T_ysin\theta ,T_y'=-T_xsin\theta+T_ycos\theta ,T_z'=T_z .则,\begin{bmatrix}
T_x' \\
T_y'\\
T_z' \end{bmatrix}=\begin{bmatrix}
cos\theta & sin\theta & 0 \\
-sin\theta & cos\theta & 0\\
0
&
0
& 1 \end{bmatrix}\begin{bmatrix}
T_x \\
T_y\\
T_z \end{bmatrix} .这说明在不同坐标系下,一阶张量转换规则为: T_i'=l_{is}T_s ,其中 l_{is} 为坐标转换矩阵,在三维空间中,i, s=1,2,3。只有遵循这样的转化规则,才能保证 T'=T 。在上面的例子中,l_{is}=\begin{bmatrix}
cos\theta & sin\theta & 0 \\
-sin\theta & cos\theta & 0\\
0
&
0
& 1 \end{bmatrix} .source:https://doubleroot.in/wp-content/uploads/2020/12/rotation-of-axes-2.png3)2阶及更高阶的张量较为抽象。如2阶应力张量,共有3*3=9个分量。“2阶”意味着我们在描述应力时需要两个坐标系,一个用于确定力作用的平面,另一个用于确定该力作用的方向,只有这样,我们才能唯一确定该力。类似地,二阶张量转换规则为:T_{ij}'=l_{is}l_{jt}T_{st} .二阶应力张量写成分量形式为:{\underline {\underline {\boldsymbol {\sigma }}}} =
\left[\begin{array}{cccc}
\sigma_{xx} &
\sigma_{xy}
& \sigma_{xz} \\
\sigma_{yx} &
\sigma_{yy}
&\sigma_{yz}
\\
\sigma_{zx} &
\sigma_{zy}
& \sigma_{zz}
\end{array}\right] =\sigma_{ij}(\vec e_i\otimes\vec e_j) .\otimes 为并矢(dyad),可简单理解为两个基矢量“肩并肩”靠在一起组成一个新的基。图片源于网络一般地,当坐标系发生变化时,张量遵循以下转换规则:T_{ijk...m}'=l_{is}l_{jt}l_{ku}...l_{mv}T_{stu...v} .只有遵循这样的规则,才能保证物理量不随坐标系的改变而变化,即坐标系改变时,改变的只是各分量,整个物理量不变。若需要n个坐标转换矩阵,其对应张量就为n阶张量,分量个数为 3^n (三维空间中)。现代数学将张量定义为:张量是多重线性映射或函数。要解释这个定义需引入向量空间与对偶空间等概念,比较抽象,感兴趣的同学可自行查阅相关文献与专著。3 张量指标运算优势在上一部分,我们用到了张量指标运算,如 T_{ij}'=l_{is}l_{jt}T_{st} 。张量指标运算初学者可能会觉得很难,其实,注意以下三要点,人人都可以掌握简洁的指标运算。1)同一指标在某项中重复出现2次即为哑标,应遵循爱因斯坦求和约定,如 T_{ii}=T_{11}+T_{22}+T_{33} ;若不为哑标(叫自由指标),则正常取1,2,3即可(在三维空间中),如 a_i(i=1,2,3) .2)等号两边指标应“平衡”,等号同一边不同项相同指标会消掉;如 T_{ij}'=l_{is}l_{jt}T_{st} ,等号坐标为i,j,等号右边也为i,j;等号右边不同项中的s与t会消掉;3)在某一项中,若一个指标出现3次及以上,肯定是错误的,如 T_{iii},T_{jjjj} 等都是错的。个人认为,用张量来表示物理规律非常简洁,不易出错,且各部分物理意义更明确。若我们将其每一项都展开书写的话,那会导致式子特别的冗长,也不易看出各项的物理意义。如测地线方程为:\frac{d^2x^i}{dt^2}+\Gamma_{jk}^{i}\frac{dx^j}{dt}\frac{dx^{k*}}{dt}=0 .\frac{d^2x^i}{dt^2} 代表牛顿(欧几里得)加速度;\Gamma_{jk}^{i} 代表应力场的强度;\frac{dx^j}{dt}\frac{dx^{k*}}{dt} 代表引力的时空曲率加速度;0 代表牛顿加速度与引力加速度大小相同,方向相反。关于张量,内容还有很多,如张量缩并,转置,逆,对称化,反对称化;正交曲线坐标系下张量运算,克里斯托费尔符号(Christoffel symbols),联络,张量的微分运算等等。这些内容可参阅相关专著,如《张量分析》-黄克智,这本书作为一本工具书挺好的。值得说明的是,深度学习开源软件TensorFlow中对张量的定义不是物理上张量,其只是一个高维数组。本回答目的在于详细阐述张量本质:不随坐标系的改变而变化。若想知道更多的细节与推导过程,可参考如下文章:

我要回帖

更多关于 请你再提出一个数学问题并解答答案 的文章

 

随机推荐