对于大部分已经熟练的数学和物理工作者, 这实在是一个极为基础的问题. 但这个问题在我刚接触张量时也困扰了我很久. 张量的那么多定义, 究竟哪些是对的? (显然都是对的. ) 它们的关系是什么? 我尽可能简单地用我自己的话把我对它粗浅的理解讲得明白些.

  • A View from Physics

张量的概念早在19世纪末就被数学家提出了, 但这个概念真正发扬光大, 还是在相对论出现以后. 原因是, 在相对论中, 在不同的参考系下看同一个物理系统, 它"看起来"是不一样的: 比如粒子的动量和能量在不同的参考系下根据 Lorentz 变换相联系.

这带来一个问题: 在 Bob 看来, 一个粒子的能动量是. 如果你问 Bob, 这个粒子的能动量是多少, 他会告诉你是. 但我 (Andrew) 听了以后, 必然是反对的: Bob 说的不对! 我看到的粒子的能动量明明是!

我们知道, Andrew 和 Bob 都没有说错. 可以通过恰当的 Lorentz 变换相互转化. "你说的我都懂", 想必你已经看得不耐烦了, "可是这个粒子的能动量究竟是多少? " 由于参考系都是平权的, Andrew 和 Bob 的参考系并没有哪个更优越. 那我们干脆把它们都舍弃. 于是我们说, 这个粒子的能动量就由能动量张量来描述. 能动量张量是一个不随坐标而改变的, 物理系统内在的量. (如果你对左边这句话的确切含义感到疑惑, 请先往下看. ) 它在 Andrew 的坐标系里看是, 在 Bob 的坐标系里看是, 按照 Lorentz 变换变成.

你现在肯定找到了一点感觉. 什么是张量? 如 A.Zee 书中所说: A tensor is something that transforms like a tensor! 一个量, 在不同的参考系下按照某种特定的法则进行变换, 就是张量.

用张量有什么好处? 物理定律是不会随参考系的变化而变化的. 考虑下面一个物理过程: 两个粒子1和2经过散射变成了3和4. 在 Andrew 看来, 能动量守恒是. 但这样写, 并不能直接看出 Bob 也看到能动量守恒. 但如果用张量的语言直接写成: , 我们立刻就知道它在 Andrew 看来是, 在 Bob 看来是. 用张量语言描述的物理定律自动保证了不随参考系变化的这一性质. 而且从记号的角度看, 用张量也更加简洁. [*]

  • Let us go deeper

我们已经从物理上理解了什么是张量. 物理学家到此就很满意了. 但严谨的数学家们并不满意. "你刚刚说张量是一个不随坐标而改变的, 物理系统内在的量", 数学家质问道, "你说的我都懂, 可是张量究竟是什么?"

如果你对线性代数略知一二, 可能知道线性变换这个概念. 线性变换这个概念的精髓之处在于, 它不依赖于线性空间的基的选取. 在某一组基下, 它的矩阵表示是一个模样; 在另外一组基下, 它的矩阵表示是另一个模样, 其中是基变换矩阵. 有一种常见的说法: 矩阵的意义是线性变换, 相似矩阵是同一个线性变换在不同的基下的表示.

慢着! "同一个线性变换在不同的基下的表示", 这难道不就是和之前说的张量是一回事嘛! Lorentz 变换就是 Minkowski 空间中的基变换, 能动量张量实质上就是一个线性变换. Andrew 和 Bob 看到的能动量张量, 不就是这个线性变换在不同的基下的表示吗?

你现在肯定找到了一点感觉. 什么是张量? 在数学家眼中, 张量已经被抽象成了线性变换.

当然, 数学家们还可以再进一步抽象这个概念, 提取出更普遍的 universal property. 这时, 张量被定义为张量积空间中的一个元素. 具体的定义不在此赘述, 请参考相关专著. 但尽管已经抽象到那样的程度, 其背后的思想依然是不变的.

如果你通过上面的阅读理解了张量背后的思想, 再去看相关数学或物理专著上或繁杂或抽象的式子, 或许会开朗很多 :-)

最后引用陈维桓先生的《微分流形初步》一书中的一段话进行总结:

张量的概念是 G.Ricci 在19世纪末提出的. G.Ricci 研究张量的目的是为几何性质和物理规律的表达寻求一种在坐标变换下不变的形式. 他所考虑的张量是如同向量的分量那样的数组, 要求它们在坐标变换下服从某种线性变换的规律. 近代的理论已经把张量叙述成向量空间及其对偶空间上的多重线性函数, 但是用分量表示张量仍有它的重要性, 尤其是涉及张量的计算时更是如此.

[*] 如果还定义了内积/缩并等运算, 还可以由张量迅速得到一些不变量. 此时会涉及对偶空间(因为内积本质是个线性函数)等概念, 进而涉及张量的协变和逆变. 为了行文简洁, 我在正文中没有提及这些概念. 但它们本质上和正文所说没有区别.

 
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:andrew shen
链接:http://www.zhihu.com/question/20695804/answer/43265860
来源:知乎

张量 (tensor) 是什么?的更多相关文章

  1. tensorflow中张量(tensor)的属性——维数(阶)、形状和数据类型

    tensorflow的命名来源于本身的运行原理,tensor(张量)意味着N维数组,flow(流)意味着基于数据流图的计算,所以tensorflow字面理解为张量从流图的一端流动到另一端的计算过程. ...

  2. 如何理解张量tensor

    1 关于张量的四种定义 “张量”在不同的运用场景下有不同的定义. 第一个定义,张量是多维数组,这个定义常见于各种人工智能软件.听起来还好理解.--本文仅解释此种 2 多维数组 从第一个定义:张量是多维 ...

  3. 2、介绍在TensorFlow当中使用不同的方式创建张量tensor

    import tensorflow as tf from tensorflow.python.framework import ops ops.reset_default_graph() #开始一个计 ...

  4. pytorch中tensor张量数据基础入门

    pytorch张量数据类型入门1.对于pytorch的深度学习框架,其基本的数据类型属于张量数据类型,即Tensor数据类型,对于python里面的int,float,int array,flaot ...

  5. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

  6. tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构

    Gokula Krishnan Santhanam认为,大部分深度学习框架都包含以下五个核心组件: 张量(Tensor) 基于张量的各种操作 计算图(Computation Graph) 自动微分(A ...

  7. PyTorch官方中文文档:torch.Tensor

    torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...

  8. Tensor是神马?为什么还会Flow?

    https://baijiahao.baidu.com/s?id=1568147583188426&wfr=spider&for=pc 也许你已经下载了TensorFlow,而且准备开 ...

  9. 学习笔记DL004:标量、向量、矩阵、张量,矩阵、向量相乘,单位矩阵、逆矩阵

    线性代数,面向连续数学,非离散数学.<The Matrix Cookbook>,Petersen and Pedersen,2006.Shilov(1977). 标量.向量.矩阵.张量. ...

随机推荐

  1. 解决运行Robot Framework报‘’ascii’错误

    在Python27\Lib\site-packages中新建‘sitecustomize.py’,内容如下: #coding=utf8import sysreload(sys)sys.setdefau ...

  2. iOS导航栏添加返回按钮的方式

    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"返回上级界面" style:UIBarBu ...

  3. CPU使用情况检测

    改编自:https://blog.csdn.net/Yan_Chou/article/details/80456995 检测命令整理: dd iotop df top psiostatvmstatne ...

  4. Leetcode初级算法(链表篇)

    删除链表的倒数第N个节点 感觉自己对于链表的知识还是了解的不够深入,所以没有想到用双指针进行操作.我的想法是这样的,首先计算整个链表的长度,然后遍历到长度减去n的节点处,执行删除操作. 自己的代码: ...

  5. LDAP--对某些AD属性值是字节数组byte[]情况的类型转换方法

    //BitConverter.ToBoolean((searchResult.Properties["mDBUseDefaults"][0] as byte[]), 0); row ...

  6. AngularJS模块——module

    angular.module('myApp',[]) 1.定义模块 2.第一个参数:定义的模块名: 3.第二个参数:依赖列表,也就是可以被注入到模块中的对象列表:依赖的这些模块需要在本模块加载之前由注 ...

  7. Luogu P2480 [SDOI2010]古代猪文 卢卡斯+组合+CRT

    好吧刚开始以为扩展卢卡斯然后就往上套..结果奇奇怪怪又WA又T...后来才意识到它的因子都是质数...qwq怕不是这就是学知识学傻了.. 题意:$ G^{\Sigma_{d|n} \space C_n ...

  8. Java多线程与并发——生产者与消费者应用案例

    多线程的开发中有一个最经典的操作案例,就是生产者-消费者,生产者不断生产产品,消费者不断取走产品. package com.vince; /** * 生产者与消费者案例 * @author Admin ...

  9. Sqoop Export HDFS

    Sqoop Export应用场景——直接导出 直接导出 我们先复制一个表,然后将上一篇博文(Sqoop Import HDFS)导入的数据再导出到我们所复制的表里. sqoop export \ -- ...

  10. pat1098. Insertion or Heap Sort (25)

    1098. Insertion or Heap Sort (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...