精华内容
下载资源
问答
  • 学习普通物理学对计算机专业的意义学习普通物理学对计算机专业的意义 (计算机中运用物理学的知识)计算机技术是人类最杰出的科学成就,计算机的诞生是物理学理论发展的必然结果,计算机技术的高速发展又为物理学提供了...

    学习普通物理学对计算机专业的意义

    学习普通物理学对计算机专业的意义 (计算机中运用物理学的知识)

    计算机技术是人类最杰出的科学成就,计算机的诞生是物理学理论发展的必然结果,计算机技术的高速发展又为物理学提供了强有力的支持,计算机技术与物理学相辅相成,相互促进.

    回顾计算机的发展史,我们发现每一个阶段都是以物理学的发展变革作为前提的,再看近代物理学的历史,计算机扮演着一个不可替代的角色.

    电子计算机是因解决物理问题的需要而产生的,二次大战期间为了快速计算弹道,被公认为世界第一台电子计算机ENIAC于1946年研制成功[1],万维网的出现是因欧洲核物理学家们进行学术交流的需要而设计出来的。由此可见,计算机与物理学的关系是非常密切的,物理学的发展促成了计算机的产生与发展,计算机的出现是二十世纪最伟大的科学技术成就之一,它延伸了人们的思维能力,成功地解决了很多物理、数学等方面的难题,没有计算机就不可能准确计算出火箭和卫星的轨道位置、就没有今天的航天成就,计算机应用跨越各个学科,在工业技术、企业管理、情报信息处理、国民教育等领域引起深刻的变革,在今天几乎没有哪一个学科能够离开计算机的应用。

    作为孕育计算机诞生与发展的物理学,如果说早期物理学应用计算机主要解决人们的计算速度、强度的技术问题,那么到了今天,计算机已在更深刻的层次上促进物理学的发展,由于在物理学很多领域中能够找到精确解的理论问题已经不多了,剩下的是大量的复杂的非线性问题,对这些问题的分析、预测和求解离开计算机,人们几乎无能为力了。另外一个方面,在计算机出现之前,人们只能够通过真实的实验来验证物理理论的正确性、工程中也往往需要耗费巨额资金做

    展开全文
  • 散度和旋度的物理意义什么

    万次阅读 多人点赞 2018-11-23 17:49:12
    高等数学的时间有点久远了,最近需要推倒一些公式,以前高数学的时候这公式那定理的都没说什么物理意义,现在接触的问题都是具有一定物理意义的, 感觉对不上,回来找找资料好好理解一下,在知乎上看到一些比较...

    高等数学学的时间有点久远了,最近需要推倒一些公式,以前高数学的时候这公式那定理的都没说什么物理意义,现在接触的问题都是具有一定物理意义的, 感觉对不上,回来找找资料好好理解一下,在知乎上看到一些比较通俗易懂的答案,所以摘抄到这里给大家分享一下。

    梯度的旋度问题

    梯度的旋度不为零得话。。

    我通俗地说一下矢量场那个吧。矢量场的旋度是用来描述场围绕中心旋转的程度的量,就是看一堆矢量绕中心转圈的部分多不多,是多少。而散度描述的是一堆矢量发散,也就是远离中心或者靠近中心(指向中心)的部分。在同一点上,分别被切向分量(绕圈)和径向分量(发散)来表示。这俩货相互垂直啊!所以乘起来就得零喽。物理意义举个例子,比如一坨质点在一个场中运动,对于速度矢量先旋度后散度的运算就是问你这一坨质点相对中心的角速度(也就是切向线速度)会让他在多大程度上远离中心。废话,当然是零了...

    【电磁场】0.亥姆霍兹定理

    亥姆霍兹定理是刻画电磁场唯一性的基本定理。

    空间的一个矢量场由其散度、旋度和定解条件唯一确定。

    更具体地说,一个矢量场可以表示为一个无旋的散度场和一个无散的旋度场的叠加。即

    A=A_1+A_2。其中\nabla \times A_1=0,\nabla \cdot A_2=0。若记\nabla \cdot A_1=\rho,  \nabla \times A_2=J分别为矢量场的通量源和旋涡源,则矢量场A的源分布为

    \nabla \cdot A=\nabla \cdot A_1=\rho\nabla \times A=\nabla \times A_2=J

    如果再给定了定解条件,矢量场A就唯一地确定了。

    亥姆霍兹定理是研究电磁场理论的主线。无论是静态场还是时变场,都是围绕着其散度、旋度和边界条件展开分析的。电磁场的Maxwell方程组也正是给出了电场E和磁场B的散度和旋度,结合具体问题的定解条件,理论上就可以求解所有的宏观电磁场问题。

    \nabla \cdot E=\frac{1}{\varepsilon }\frac{\mathrm{d}q}{\mathrm{d}V}
    \nabla \times E=-\frac{\partial B}{\partial t}
    \nabla \cdot B=0
    \nabla \times B=\mu \frac{\mathrm{d}I}{\mathrm{d}S}+\mu \varepsilon \frac{\partial E}{\partial t}

    以下分别讨论场的散度,场的旋度和场的定解条件这三个概念。

    1.场的散度

    将矢量场垂直穿过某一曲面的量称为通量。综合考虑矢量场方向和曲面方向,以点积的形式进行定义。

    \phi =\int_{S}^{}  \overrightarrow{A} \cdot \mathrm{d}\overrightarrow{S}

    现在假设曲面是封闭的,那么曲面S就包围着一块空间区域V。容易理解,矢量场穿过封闭面S的通量应该是由场在区域V内的所有源产生(或吸收)的量的代数和。这个源就定义为场在某一点的散度,它表示场在空间一点的产生量(或吸收量)。

    根据散度的定义,令体积V收缩至某一点M,可以得到散度在直角坐标中的计算公式

    \lim_{\Delta V \rightarrow 0}{\frac{\Delta \phi }{\Delta V}}=\nabla \cdot  \overrightarrow{A}= \frac{\partial A_x}{\partial x}+\frac{\partial A_y}{\partial y}+\frac{\partial A_z}{\partial z}

    即散度等于场函数在各个方向上的分量在其所在方向的变化率之和。

    高斯公式揭示了通量和通量源(散度)的关系:

    \oiint_{S}^{}  \overrightarrow{A} \cdot \mathrm{d}\overrightarrow{S}=\iiint_V (\nabla \cdot  \overrightarrow{A}) \mathrm{d}V

    2.场的旋度

    将矢量场平行沿某一闭合曲线绕行的量称为环量。综合考虑矢量场方向和曲线方向,以点积的形式进行定义。

    \Gamma =\oint_{l}^{}  \overrightarrow{A} \cdot \mathrm{d}\overrightarrow{l}

    现在考虑这条曲线所围成的曲面。最简单的一种情况是,以该曲线为周界的曲面在通过该曲线的平面内(对于其他以该曲线为轮廓的面,其投影都是这个“最小”的面)。从而,在矢量场沿某一闭合曲线绕行的环量,是这条曲线所围成曲面内矢量场旋转强度的加和。即

    \oint_{l}^{}  \overrightarrow{A} \cdot \mathrm{d}\overrightarrow{l}=\iint_S (\nabla \times  \overrightarrow{A}) \mathrm{d}\overrightarrow{S} (斯托克斯公式)

    那么怎样计算旋转强度\nabla \times A呢?这需要讨论矢量场在各个空间方向上的旋转程度。首先,考虑矢量场A在x方向的旋转程度。由方向x表示的这个旋转程度实际上是yOz平面上的旋转程度,显然,这是由\frac{\partial A_y}{\partial z}\frac{\partial A_z}{\partial y}这两项决定的。考虑到\frac{\partial A_y}{\partial z}\frac{\partial A_z}{\partial y}对矢量场A在yOz平面上旋转程度的贡献方向相反,根据右手定则可以确定矢量场A在x方向的旋度分量为

    (\nabla \times A)_x=\frac{\partial A_y}{\partial z}-\frac{\partial A_z}{\partial y}

    同理可得

    (\nabla \times A)_y=\frac{\partial A_z}{\partial x}-\frac{\partial A_x}{\partial z}
    (\nabla \times A)_z=\frac{\partial A_x}{\partial y}-\frac{\partial A_y}{\partial x}

    这可以用理论分析来说明。令曲线圈越来越小,收缩到一点M,得到旋度在直角坐标中的计算公式为

    \lim_{S \rightarrow 0}{\frac{\Delta \Gamma}{\Delta S}}= \nabla \times \overrightarrow{A} =\left(\frac{\partial A_y}{\partial z}-\frac{\partial A_z}{\partial y},\frac{\partial A_z}{\partial x}-\frac{\partial A_x}{\partial z},\frac{\partial A_x}{\partial y}-\frac{\partial A_y}{\partial x}\right)

    这与推理结果是一致的。

    3.场的定解条件

    通过场的散度和旋度求解场的表达式是一个积分过程。只有给出定解条件,才能确定积分过程中产生的任意积分常数。定解条件分为空间上的边界条件和时间上的初始条件。

    位函数

    一个矢量的位函数是这样的一种函数,它的变化率(可以是梯度、旋度、散度)等于该矢量。例如,电位函数\varphi满足

    E=-\nabla \varphi 或 \varphi (x)=\int _{x}^{\infty }E\cdot \mathrm{d}l

    动态位函数A满足

    B=\nabla \times A

    位函数相当于是矢量函数的积分。由于提前进行了一步积分,因此它在求解某些问题时比直接求解场量要简单一些。同时,位函数也能用于描述场在边界上的定解条件。

    场的定解条件有三类,分别是在边界(包括时间边界和空间边界)上的位函数值,在边界上位函数的法向导数,以及这两者的线性组合。

    当空间中只有一种有限分布的场时,定解条件就是边界条件和初始条件。若场的分布区域及于无限远,则需要给出无穷远处的边界条件(特别地,当场源分布有限时,有所谓的自然边界条件,即位函数在无穷远处为有限值)。若空间中存在多种场,则需要给出不同场边界上的的衔接条件。

    给定了这些条件,就可建立定解问题。求解这个定解问题,电磁场的分布问题从理论上来说就得到了解决。而这一切的依据就是亥姆霍兹定理。

    散度和旋度常用关系式

    更多信息请参见

    http://boson4.phys.tku.edu.tw/fundamentals_of_math_phys/unit-03_Vector__grad-div-curl_n_coord-sys.html

    最后,要说的是知乎是个好东西,好多学术性比较抽象的东西,知乎上有通俗易懂的解释。强烈推荐!!!
    作者:Grit
    链接:https://www.zhihu.com/question/29970414/answer/46292024
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 作者:Heinrich 链接:...来源:知乎 很不错的文章!! 复数最直观的理解就是旋转!...另外,e^t是什么样呢? 但当你在指数上加上i之后呢? 变成了一个螺旋线。是不...

    作者:Heinrich
    链接:https://www.zhihu.com/question/23234701/answer/26017000
    来源:知乎

     

    很不错的文章!!

    复数最直观的理解就是旋转!

    4*i*i = -4

    就是“4”在数轴上旋转了180度。

    那么4*i就是旋转了90度。


    另外,e^t是什么样呢?

    但当你在指数上加上i之后呢?

    变成了一个螺旋线。是不是和电磁场很像?(想拿欧拉公式去跟女生炫学术的男生注意了:她们,真的,不CARE)

     

    当然,更重要的意义在于复数运算保留了二维信息。

    假如我让你计算3+5,虽然你可以轻松的计算出8,但是如果让你分解8你会有无数种分解的方法,3和5原始在各自维度上的信息被覆盖了。
    但是计算3+5i的话,你依然可以分解出实部和虚部,就像上图那样。

    基于以上两个理由,用复数来描述电场与磁场简直完美到爆棚!
    我们即可以让电场强度与复数磁场强度相加而不损失各自的信息,又满足了电场与磁场90度垂直的要求。另外,一旦我们需要让任何一个场旋转90度,只要乘一个“i”就可以了

     

    @physixfan

    答案的提醒,再补充一点。
    正弦波在频域可以看作是自然数中的“1”,可以构成其他数字的基础元素。当你需要5的时候,你可以看成是1*5(基础元素的五倍)也看以看成2+3(一个基础元素2倍与基础元素3倍的和)。这些用基础元素构成新元素的运算是线性运算。
    但是现在你如何用线性运算吧2sin(wt)变换成4sin(wt+pi/6)呢?

    利用欧拉公式,我们可以将任何一个正弦波看作其在实轴上的投影。假如两个不同的正弦波,可以用数学表达为:


    好了,现在如果我想用第一个正弦波利用线性变换为第二个,我们就只需要将A乘对应的系数使其放大至B(本例为乘2),然后将θ1加上一定的角度使其变为θ2(本例为加30度),然后将得到的第二个虚数重新投影回实轴,就完成了在实数中完全无法做到的变换。

     

    这种利用复指数来计算正弦波的方法也对电磁波极其适用,因为电磁波都是正弦波,当我们需要一个电磁波在时间上延迟/提前,或是在空间上前移/后移,只需要乘一个复指数就可以完成对相位的调整了。


     

    (图1图3系自制,转载不注明出处注定一辈子学理工没女朋友)

    题主关注我的专栏吧,近期会写科普傅里叶的东西……与时间无关的故事 - 知乎专栏

    展开全文
  • 奇异值的物理意义什么

    千次阅读 2018-04-10 09:56:04
    矩阵奇异值的物理意义什么?或者说,奇异值形象一点的意义是什么?把m*n矩阵看作从m维空间到n维空间的一个线性映射,是否:各奇异向量就是坐标轴,奇异值就是对应坐标的系数?(题目可能问得不好,欢迎帮忙修改)...

    https://www.zhihu.com/question/22237507

    奇异值的物理意义是什么?

    矩阵奇异值的物理意义是什么?
    或者说,奇异值形象一点的意义是什么?

    把m*n矩阵看作从m维空间到n维空间的一个线性映射,
    是否:
    各奇异向量就是坐标轴,奇异值就是对应坐标的系数?

    (题目可能问得不好,欢迎帮忙修改)
    关注者
    3,363
    被浏览
    237,827

    22 个回答

    默认排序
    收录于编辑推荐 · 4,011 人赞同了该回答

    矩阵的奇异值是一个数学意义上的概念,一般是由奇异值分解(Singular Value Decomposition,简称SVD分解)得到。如果要问奇异值表示什么物理意义,那么就必须考虑在不同的实际工程应用中奇异值所对应的含义。下面先尽量避开严格的数学符号推导,直观的从一张图片出发,让我们来看看奇异值代表什么意义。

    这是女神上野树里(Ueno Juri)的一张照片,像素为高度450*宽度333。暂停舔屏先(痴汉脸

    我们都知道,图片实际上对应着一个矩阵,矩阵的大小就是像素大小,比如这张图对应的矩阵阶数就是450*333,矩阵上每个元素的数值对应着像素值。我们记这个像素矩阵为A

    现在我们对矩阵A进行奇异值分解。直观上,奇异值分解将矩阵分解成若干个秩一矩阵之和,用公式表示就是:
    (1) \quad\quad \qquad A = \sigma_1 u_1v_1^{\rm T}+\sigma_2 u_2v_2^{\rm T}+...+\sigma_r u_rv_r^{\rm T}
    其中等式右边每一项前的系数\sigma就是奇异值,uv分别表示列向量,秩一矩阵的意思是矩阵秩为1。注意到每一项uv^{\rm T}都是秩为1的矩阵。我们假定奇异值满足\sigma_1\geq\sigma_2\geq...\geq\sigma_r>0(奇异值大于0是个重要的性质,但这里先别在意),如果不满足的话重新排列顺序即可,这无非是编号顺序的问题。

    既然奇异值有从大到小排列的顺序,我们自然要问,如果只保留大的奇异值,舍去较小的奇异值,这样(1)式里的等式自然不再成立,那会得到怎样的矩阵——也就是图像?

    A_1=\sigma_1 u_1v_1^{\rm T},这只保留(1)中等式右边第一项,然后作图:

    结果就是完全看不清是啥……我们试着多增加几项进来:A_5=\sigma_1 u_1v_1^{\rm T}+\sigma_2 u_2v_2^{\rm T}+\sigma_3 u_3v_3^{\rm T}+\sigma_4 u_4v_4^{\rm T}+\sigma_5 u_5v_5^{\rm T},再作图

    隐约可以辨别这是短发伽椰子的脸……但还是很模糊,毕竟我们只取了5个奇异值而已。下面我们取20个奇异值试试,也就是(1)式等式右边取前20项构成A_{20}

    虽然还有些马赛克般的模糊,但我们总算能辨别出这是Juri酱的脸。当我们取到(1)式等式右边前50项时:

    我们得到和原图差别不大的图像。也就是说当k从1不断增大时,A_k不断的逼近A。让我们回到公式
    (1) \quad\quad \qquad A = \sigma_1 u_1v_1^{\rm T}+\sigma_2 u_2v_2^{\rm T}+...+\sigma_r u_rv_r^{\rm T}
    矩阵A表示一个450*333的矩阵,需要保存450\times 333=149850个元素的值。等式右边uv分别是450*1和333*1的向量,每一项有1+450+333=784个元素。如果我们要存储很多高清的图片,而又受限于存储空间的限制,在尽可能保证图像可被识别的精度的前提下,我们可以保留奇异值较大的若干项,舍去奇异值较小的项即可。例如在上面的例子中,如果我们只保留奇异值分解的前50项,则需要存储的元素为784\times50=39200,和存储原始矩阵A相比,存储量仅为后者的26%。

    下面可以回答题主的问题:奇异值往往对应着矩阵中隐含的重要信息,且重要性和奇异值大小正相关。每个矩阵A都可以表示为一系列秩为1的“小矩阵”之和,而奇异值则衡量了这些“小矩阵”对于A的权重。

    在图像处理领域,奇异值不仅可以应用在数据压缩上,还可以对图像去噪。如果一副图像包含噪声,我们有理由相信那些较小的奇异值就是由于噪声引起的。当我们强行令这些较小的奇异值为0时,就可以去除图片中的噪声。如下是一张25*15的图像(本例来源于[1])

    但往往我们只能得到如下带有噪声的图像(和无噪声图像相比,下图的部分白格子中带有灰色):

    通过奇异值分解,我们发现矩阵的奇异值从大到小分别为:14.15,4.67,3.00,0.21,……,0.05。除了前3个奇异值较大以外,其余奇异值相比之下都很小。强行令这些小奇异值为0,然后只用前3个奇异值构造新的矩阵,得到

    可以明显看出噪声减少了(白格子上灰白相间的图案减少了)。

    奇异值分解还广泛的用于主成分分析(Principle Component Analysis,简称PCA)和推荐系统(如Netflex的电影推荐系统)等。在这些应用领域,奇异值也有相应的意义。

    考虑题主在问题描述中的叙述:“把m*n矩阵看作从m维空间到n维空间的一个线性映射,是否:各奇异向量就是坐标轴,奇异值就是对应坐标的系数?”我猜测,题主更想知道的是奇异值在数学上的几何含义,而非应用中的物理意义。下面简单介绍一下奇异值的几何含义,主要参考文献是美国数学协会网站上的文章[1]。

    下面的讨论需要一点点线性代数的知识。线性代数中最让人印象深刻的一点是,要将矩阵和空间中的线性变换视为同样的事物。比如对角矩阵M作用在任何一个向量上

    \begin{bmatrix} 3 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 3x \\ y \end{bmatrix}

    其几何意义为在水平x方向上拉伸3倍,y方向保持不变的线性变换。换言之对角矩阵起到作用是将水平垂直网格作水平拉伸(或者反射后水平拉伸)的线性变换。

    如果M不是对角矩阵,而是一个对称矩阵

    M= \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}

    那么,我们也总可以找到一组网格线,使得矩阵作用在该网格上仅仅表现为(反射)拉伸变换,而没有旋转变换

    考虑更一般的非对称矩阵

    M= \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}

    很遗憾,此时我们再也找不到一组网格,使得矩阵作用在该网格上之后只有拉伸变换(找不到背后的数学原因是对一般非对称矩阵无法保证在实数域上可对角化,不明白也不要在意)。我们退求其次,找一组网格,使得矩阵作用在该网格上之后允许有拉伸变换旋转变换,但要保证变换后的网格依旧互相垂直。这是可以做到的

    下面我们就可以自然过渡到奇异值分解的引入。奇异值分解的几何含义为:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。下面我们要说明的是,奇异值的几何含义为:这组变换后的新的向量序列的长度。

    当矩阵M作用在正交单位向量v_1v_2上之后,得到Mv_1Mv_2也是正交的。令u_1u_2分别是Mv_1Mv_2方向上的单位向量,即Mv_1=\sigma_1 u_1Mv_2=\sigma_2 u_2,写在一起就是M\left[ v_1\quad v_2 \right]=\left[ \sigma_1u_1\quad \sigma_2u_2 \right],整理得:

    M=M\left[ v_1\quad v_2 \right] \begin{bmatrix} v_1^{\rm T} \\ v_2^{\rm T} \end{bmatrix} =\left[ \sigma_1u_1\quad \sigma_2u_2 \right] \begin{bmatrix} v_1^{\rm T} \\ v_2^{\rm T} \end{bmatrix} =\left[ u_1\quad u_2 \right] \begin{bmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{bmatrix} \begin{bmatrix} v_1^{\rm T} \\ v_2^{\rm T} \end{bmatrix}

    这样就得到矩阵M的奇异值分解。奇异值\sigma_1\sigma_2分别是Mv_1Mv_2的长度。很容易可以把结论推广到一般n维情形。

    下面给出一个更简洁更直观的奇异值的几何意义(参见[2])。先来一段线性代数的推导,不想看也可以略过,直接看黑体字几何意义部分:

    假设矩阵A的奇异值分解为
    A=\left[ u_1\quad u_2 \right] \begin{bmatrix} 3 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} v_1^{\rm T} \\ v_2^{\rm T} \end{bmatrix}
    其中u_1,~u_2,~v_1,~v_2是二维平面的向量。根据奇异值分解的性质,u_1,~u_2线性无关,v_1,~v_2线性无关。那么对二维平面上任意的向量x,都可以表示为:x=\xi_1 v_1+\xi_2 v_2

    A作用在x上时,
    y=Ax=A[v_1\quad v_2] \begin{bmatrix} \xi_1 \\ \xi_2 \end{bmatrix}= \left[ u_1\quad u_2 \right] \begin{bmatrix} 3 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} v_1^{\rm T} \\ v_2^{\rm T} \end{bmatrix} [v_1\quad v_2] \begin{bmatrix} \xi_1 \\ \xi_2 \end{bmatrix}=3\xi_1u_1+\xi_2u_2

    \eta_1=3\xi_1,~\eta_2=\xi_2,我们可以得出结论:如果x是在单位圆\xi_1^2+\xi_2^2=1上,那么y正好在椭圆\eta_1^2/3^2+\eta_2^2/1^2=1上。这表明:矩阵A将二维平面中单位圆变换成椭圆,而两个奇异值正好是椭圆的两个半轴长,长轴所在的直线是{\rm span}\{u_1\},短轴所在的直线是{\rm span}\{u_2\}.

    推广到一般情形:一般矩阵A将单位球\|x\|_2=1变换为超椭球面E_m=\{y\in {\bf C}^m:~y=Ax,~x\in{\bf C}^n,~\|x\|_2=1\},那么矩阵A的每个奇异值恰好就是超椭球的每条半轴长度


    郑宁:人们是如何想到奇异值分解的?


    参考文献:

    [1] We Recommend a Singular Value Decomposition(Feature Column from the AMS

    [2] 徐树方,《矩阵计算的理论与方法》,北京大学出版社。

    4K182 条评论
    分享
    收藏感谢收起
    652 人赞同了该回答

    让我们从小时候玩过的翻绳游戏开始这个问题的讲解。

    1 翻绳

    对于翻绳的这个花型而言,是由四只手完成的:

    我们可以认为这个花型是由两个方向的力合成的:

    容易想象,如果其中一个力(相比另外一个力而言)比较小的话,那么绳子的形状基本上由大的那个力来决定:

    2 奇异值分解与奇异值

    类比于翻绳,我们可以认为:

    • 奇异值分解,就是把矩阵分成多个“分力”
    • 奇异值的大小,就是各个“分力”的大小

    2.1 奇异值分解

    下面通过一个具体的矩阵例子来解释下,比如:

    A=\begin{bmatrix} 1 & -2 \\ 1 & 2 \end{bmatrix}

    根据之前的类比,矩阵是“力”,“力”怎么画出来呢?

    翻绳游戏中的“力”要通过绳子的形状来观察。很显然要观察矩阵也需要一个载体。

    我们通过单位圆来观察矩阵:

    把这个单位圆的每一点都通过 A 进行变换,得到一个椭圆(我把单位圆保留下来了,作为一个比较):

    A 进行奇异值分解:

    \begin{align*} A& =\begin{bmatrix} 1 & -2 \\ 1 & 2 \end{bmatrix}\\ & =\begin{bmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{bmatrix}\begin{bmatrix} 2.828 & 0 \\ 0 & 1.414 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}\end{align*}

    实际上,将 A 分为了两个“分力”:

    A=\begin{bmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{bmatrix}\begin{bmatrix} 2.828 & 0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} +\begin{bmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{bmatrix}\begin{bmatrix} 0 & 0 \\ 0 & 1.414 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}

    我们来看看第一个“分力” \begin{bmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{bmatrix}\begin{bmatrix} 2.828 & 0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}=\begin{bmatrix} 0 & -2 \\ 0 & 2 \end{bmatrix},作用在单位圆这个“橡皮筋”上的效果:

    可怜的“橡皮筋”被拉成了一根线段。

    我们来看看第二个“分力” \begin{bmatrix} -0.707 & -0.707 \\ 0.707 & -0.707 \end{bmatrix}\begin{bmatrix} 0 & 0 \\ 0 & 1.414 \end{bmatrix}\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}=\begin{bmatrix} 1 & 0 \\ 1 & 0 \end{bmatrix} ,作用在单位圆这个“橡皮筋”上的效果:

    可怜的“橡皮筋”被拉成了另外一根线段。

    这两个“分力”一起作用的时候,可以想象(画面自行脑补),单位圆这个“橡皮筋”被拉成了椭圆:

    2.2 奇异值的大小

    刚才举的矩阵的两个“分力”大小,只相差一倍,如果相差很大会怎么样?

    换一个矩阵 A ,对它进行奇异值分解:

    \begin{align*} A& =\begin{bmatrix} 1 & 1 \\ 1 & 1.1 \end{bmatrix}\\ & =\begin{bmatrix} -0.689 & -0.725 \\ -0.725 & 0.689 \end{bmatrix}\begin{bmatrix} 2.051 & 0 \\ 0 & 0.048 \end{bmatrix}\begin{bmatrix} -0.689 & -0.725 \\ -0.725 & 0.689 \end{bmatrix}\end{align*}

    这两个“分力”的奇异值相差就很大,大概相差了40倍。

    单位圆被 A 映射成了短轴和长轴相差太大的椭圆,看起来和直线差不多:

    我们试试,把小的那个奇异值去掉会怎么样:

    \begin{align*} A& \approx \begin{bmatrix} -0.689 & -0.725 \\ -0.725 & 0.689 \end{bmatrix}\begin{bmatrix} 2.051 & 0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} -0.689 & -0.725 \\ -0.725 & 0.689 \end{bmatrix}\\ & =\begin{bmatrix} 0.974 & 1.024 \\ 1.024 & 1.076 \end{bmatrix}\end{align*}

    \begin{bmatrix} 0.974 & 1.024 \\ 1.024 & 1.076 \end{bmatrix} 把单位圆变为了一根直线:

    这个直线和之前的椭圆看上去差不多。

    回到之前的比喻,两个相差很大的分力作用在“橡皮筋”上,“橡皮筋”的形状可以说完全取决于大的那个分力。

    2.3 奇异值为什么这么神奇?

    奇异值分解实际上把矩阵的变换分为了三部分:

    • 旋转
    • 拉伸
    • 投影

    拿刚才的:

    A=\begin{bmatrix} 1 & -2 \\ 1 & 2 \end{bmatrix}

    举例子(方阵没有投影,不过不影响这里思考):

    单位圆先被旋转,是没有形变的:

    再进行拉伸,这里决定了单位圆的形状,奇异值分别是椭圆的长轴和短轴:

    最后,被旋转到最终的位置,这一过程也没有发生形变:

    所以,奇异值决定了形变,大小决定在形变中的重要性。

    3 总结

    根据奇异值分解、以及奇异值的特点,有很多应用。

    比如,可以把图片转为矩阵,通过丢弃不重要的奇异值,进行压缩:

    比如,可以把很多数据放在矩阵中,通过丢弃不重要的奇异值,来减小处理量。

    还比如,可以从矩阵中,找到最大的奇异值,从而得到数据最重要的特征。

    65246 条评论
    分享
    收藏感谢收起
    185 人赞同了该回答

    我也来贡献个例子!
    首先有请 the first lady of image processing!
    我比较喜欢这张完整的照片!
    ***
    完整照片悲剧了,被举报了。所以想看照片的自己去下载吧!
    The Complete Lenna Story
    我只能做到这里了。。。 。。。
    ***
    我留下部分matalb的实验结果(修改了),看看知乎小编能不能让通过。

    原图是1129x620 (683.57 kb);
    所以SVD分解后,我们有620个奇异值;
    假设我们只保留前50个值;结论是:我们保留了原图约70%的信息,而保留图像只需要 85.45 kb;


    假设我们只保留前200个值;结论是:我们保留了原图约91%的信息,而保留图像只需要 341.80 kb; 几乎是原图的一般,而其此时人眼基本上很难区分了。


    以下下是matlab的代码: 可以修改变量Pos的值来观察结果!

    % Using SVD method to compress images
    % Load the Lenna image and turn rgb image into gray image.
    clc;clear; 
    lenna = imread('lenna_original_1972.jpg');
    lenna = rgb2gray(lenna);
    
    figure(1); clf;
    subplot(1,3,1);
    imshow(lenna);
    title('Original Image');
    xlabel(ByteSize(lenna));
    
    % Using the SVD method to compress the images
    [U,S,V] = svd(double(lenna));
    singularValue = diag(S);
    Rate = cumsum(singularValue)/sum(singularValue);
    subplot(1,3,2)
    
    Pos = 180; % 1 to 620
    
    plot(Rate,'r.');hold on;
    line([Pos Pos], [0 Rate(Pos)], 'linewidth',2,'Marker','o');
    %line([180,0],[180,Rate(180)],'r', 'Marker', 'o'); hold off;
    txt1 = strcat('\leftarrow ',num2str(Rate(Pos)));
    text(Pos,Rate(Pos),txt1);
    
    % Using the first Pos singular value and vectors to reconstruct the image
    lenna_R = U(:,1:Pos)*S(1:Pos,1:Pos)*V(:,1:Pos)';
    lenna_R = mat2gray(lenna_R);
    lenna_R = uint8(255 * mat2gray(lenna_R));
    subplot(1,3,3);
    imshow(lenna_R);
    title(strcat('Reconstructed Image :', num2str(Rate(Pos)*100),'%'));
    
    xlabel(ByteSize(lenna_R));
    ElementNum = size(U,1)*Pos + Pos + size(V,1)*Pos;
    xlabel(ByteSize(uint8(255 * mat2gray(rand(1,ElementNum)))));
    
    % 这个是计算变量体积的函数 
    
    function str = ByteSize(in, fid)
    % BYTESIZE writes the memory usage of the provide variable to the given file
    % identifier. Output is written to screen if fid is 1, empty or not provided.
    if nargin == 1 || isempty(fid)
        fid = 1;
    end
    s = whos('in');
    %fprintf(fid,[Bytes2str(s.bytes) '\n']);
    str = Bytes2str(s.bytes);
    
    end
    
    function str = Bytes2str(NumBytes)
    % BYTES2STR Private function to take integer bytes and convert it to
    % scale-appropriate size.
    
    scale = floor(log(NumBytes)/log(1024));
    switch scale
        case 0
            str = [sprintf('%.0f',NumBytes) ' b'];
        case 1
            str = [sprintf('%.2f',NumBytes/(1024)) ' kb'];
        case 2
            str = [sprintf('%.2f',NumBytes/(1024^2)) ' Mb'];
        case 3
            str = [sprintf('%.2f',NumBytes/(1024^3)) ' Gb'];
        case 4
            str = [sprintf('%.2f',NumBytes/(1024^4)) ' Tb'];
        case -inf
            % Size occasionally returned as zero (eg some Java objects).
            str = 'Not Available';
        otherwise
            str = 'Over a petabyte!!!';
    end
    end
    
    18549 条评论
    分享
    收藏感谢收起
    134 人赞同了该回答

    我从奇异值分解(SVD)和主成分分析(PCA)的关系的角度来谈谈奇异值(以及SVD得到的另外两个矩阵)的物理意义。

    设X是一个n*m的数据矩阵(在此不把它理解成变换),每一列表示一个数据点,每一行表示一维特征。

    对X做主成分分析(PCA)的时候,需要求出各维特征的协方差,这个协方差矩阵是XX^T/n
    (其实需要先把数据平移使得数据的均值为0,不过在此忽略这些细节)
    PCA做的事情,是对这个协方差矩阵做对角化:XX^T/n = P\Lambda P^T
    可以这样理解上式右边各项的物理意义:用一个均值为0的多维正态分布来拟合数据,则正交矩阵P的每一列是正态分布的概率密度函数的等高线(椭圆)的各个轴的方向,而对角矩阵\Lambda的对角线元素是数据在这些方向上的方差,它们的平方根跟椭圆各个轴的长度成正比。

    现在来看数据矩阵X的奇异值分解:X=USV^T,其中U、V各列是单位正交的,S是对角阵,对角元非零。
    由此式可以得到XX^T/n = USV^TVSU^T/n = U(S^2/n)U^T
    也就是说,SVD中的矩阵U相当于PCA中的矩阵P,不过仅保留了\Lambda的非零特征值对应的那些特征向量,而S/\sqrt{n}=\Lambda^{1/2}(也只保留了非零特征值)。
    所以,SVD中的U代表了X中数据形成的正态分布的轴的方向(一组单位正交基),S/\sqrt{n}代表了这些轴的长度(分布的标准差)。
    那么V呢?可以把US放在一起看成一个由伸缩和旋转组成的坐标变换(不包括平移),数据矩阵X是由数据矩阵V^T经此变换得来的,而V^T的各列(V的各行)则服从标准正态分布。这也就是说,V^T的各维特征(V^T的各行,V的各列)是互不相关的且各自的方差均为1,也就是说V的各列是单位正交的。

    现在换一个角度,把X中的各行看作数据,那么X=USV^T就也有了新的理解。
    现在,V^T的各行(V的各列)就成了X的各行形成的正态分布的轴向(单位正交基),S/\sqrt{m}是这些轴的长度,而U中的各行数据服从标准正态分布,U的各列单位正交。

    可以看到,对于X=USV^T这个式子,无论是把X的各行还是各列看成数据,都能解释U、V各列的单位正交性,但它们的单位正交性的含义不同(一个是单位正交基,一个是标准正态分布)。其中S除以数据个数的平方根后是标准正态分布在各个轴上的标准差,从两个角度看得到的标准差是成比例的。
    13410 条评论
    分享
    收藏感谢
    117 人赞同了该回答

    奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景。奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。就像是描述一个人一样,给别人描述说这个人长得浓眉大眼,方脸,络腮胡,而且带个黑框的眼镜,这样寥寥的几个特征,就让别人脑海里面就有一个较为清楚的认识,实际上,人脸上的特征是有着无数种的,之所以能这么描述,是因为人天生就有着非常好的抽取重要特征的能力,让机器学会抽取重要的特征,SVD是一个重要的方法。


    在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做featurereduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(LatentSemantic Indexing)。


    SVD的过程不是很好理解,因为它不够直观,但它对矩阵分解的效果却非常好。比如,Netflix(一个提供在线电影租赁的公司)曾经就悬赏100万美金,如果谁能提高它的电影推荐系统评分预测准确率提高10%的话。令人惊讶的是,这个目标充满了挑战,来自世界各地的团队运用了各种不同的技术。最终的获胜队伍"BellKor'sPragmatic Chaos"采用的核心算法就是基于SVD。


    SVD提供了一种非常便捷的矩阵分解方式,能够发现数据中十分有意思的潜在模式。在这篇文章中,我们将会提供对SVD几何上的理解和一些简单的应用实例。首先从几何层面上去理解二维的SVD:


    这就表明任意的矩阵 A 是可以分解成三个矩阵相乘的形式。V表示了原始域的标准正交基,U表示经过A 变换后的co-domain的标准正交基,Σ表示了V 中的向量与U中相对应向量之间的关系。我们仔细观察上图发现,线性变换A可以分解为旋转缩放旋转这三种基本线性变换。

    A=U \Sigma V ^{T}\Sigma是对角阵,表示奇异值,A矩阵的作用是将一个向量在V这组正交基向量的空间旋转,并对每个方向进行了一定的缩放,缩放因子就是各个奇异值。然后在U这组正交基向量的空间再次旋转。可以说奇异值分解将一个矩阵原本混合在一起的三种作用效果,分解出来了。

    接下来我们从分解的角度重新理解前面的表达式,我们把原来的矩阵A表达成了n个矩阵的和:
    \[A={{\sigma }_{1}}{{u}_{1}}v_{1}^{T}+{{\sigma }_{2}}{{u}_{2}}v_{2}^{T}+\cdots +{{\sigma }_{n}}{{u}_{n}}v_{n}^{T}=\sum\limits_{i=1}^{n}{{{\sigma }_{i}}{{u}_{i}}v_{i}^{T}}=\sum\limits_{i=1}^{n}{{{M}_{i}}}\]

    这个式子有什么用呢?注意到,我们假定\[{{\sigma }_{i}}\]是按降序排列的,它在某种程度上反映了对应项MiA中的“贡献”。\[{{\sigma }_{i}}\]越大,说明对应的MiA的分解中占据的比重也越大。所以一个很自然的想法是,我们是不是可以提取出Mi中那些对A贡献最大的项,把它们的和作为对A的近似?


    答案是肯定的,不过等一下,这个想法好像似曾相识?对了,多元统计分析中经典的主成分分析就是这样做的。在主成分分析中,我们把数据整体的变异分解成若干个主成分之和,然后保留方差最大的若干个主成分,而舍弃那些方差较小的。事实上,主成分分析就是对数据的协方差矩阵进行了类似的分解(特征值分解),但这种分解只适用于对称的矩阵,而 SVD 则是对任意大小和形状的矩阵都成立。(SVD 和特征值分解有着非常紧密的联系,此为后话)


    我们再回顾一下,主成分分析有什么作用?答曰,降维。换言之,就是用几组低维的主成分来记录原始数据的大部分信息,这也可以认为是一种信息的(有损)压缩。十分赞同

    的解释

    一个矩阵越“奇异”,其越少的奇异值蕴含了更多的矩阵信息,矩阵的信息熵越小(这也符合我们的认知,矩阵越“奇异”,其行(或列)向量彼此越线性相关,越能彼此互相解释,矩阵所携带的信息自然也越少)。

    我们用一个图像压缩的例子来说明。我们知道,电脑上的图像(特指位图)都是由像素点组成的,所以存储一张1000×622 大小的图片,实际上就是存储一个1000×622 的矩阵,共622000个元素。这个矩阵用SVD可以分解为622个矩阵之和,如果我们选取其中的前100个之和作为对图像数据的近似,那么只需要存储100个奇异值\[{{\sigma }_{i}}\],100个\[{{u}_{i}}\]向量和 100个\[{{v}_{i}}\]向量,共计100×(1+1000+622)=162300个元素,大约只有原始的26% 大小。



    我们从一个最简单的例子入手。假设我们有如下的一张 15 x 25 的图像数据:
    如图所示,该图像主要由下面三部分构成

    我们将图像表示成15 x 25 的矩阵,矩阵的元素对应着图像的不同像素,如果像素是白色的话,就取 1,黑色的就取0. 我们得到了一个具有375个元素的矩阵,如下图所示


    我们可以看出矩阵的秩是3,也就是主要信息都包含在三个列向量里面,这与上面的图像由个条带组成的认知一致。如果我们对矩阵进行奇异值分解以后,得到奇异值分别是

    σ1 = 14.72
    σ2 = 5.22
    σ3 = 3.31


    矩阵A就可以表示成
    \[A={{u}_{1}}{{\sigma }_{1}}{{v}_{1}}^{T}+{{u}_{2}}{{\sigma }_{2}}{{v}_{2}}^{T}+{{u}_{3}}{{\sigma }_{3}}{{v}_{3}}^{T}\]
    vi具有15个元素,ui具有25个元素,σi对应不同的奇异值。如上图所示,我们就可以用123个元素来表示具有375个元素的图像数据了。

    奇异值分解除了以上答主提到的应用以外,还有很多应用。这里在介绍两个:

    1.潜在语义索引(Latent Semantic Indexing)

    与PCA不太一样,至少不是实现了SVD就可以直接用的,不过LSI也是一个严重依赖于SVD的算法,之前吴军老师在矩阵计算与文本处理中的分类问题中谈到:

    “三个矩阵有非常清楚的物理含义。第一个矩阵X中的每一行表示意思相关的一类词,其中的每个非零元素表示这类词中每个词的重要性(或者说相关性),数值越大越相关。最后一个矩阵Y中的每一列表示同一主题一类文章,其中每个元素表示这类文章中每篇文章的相关性。中间的矩阵则表示类词和文章雷之间的相关性。因此,我们只要对关联矩阵A进行一次奇异值分解,w 我们就可以同时完成了近义词分类和文章的分类。(同时得到每类文章和每类词的相关性)。”


    上面这段话可能不太容易理解,不过这就是LSI的精髓内容,我下面举一个例子来说明一下,下面的例子来自LSA tutorial,具体的网址我将在最后的引用中给出:


    这就是一个矩阵,不过不太一样的是,这里的一行表示一个词在哪些title中出现了(一行就是之前说的一维feature),一列表示一个title中有哪些词,(这个矩阵其实是我们之前说的那种一行是一个sample的形式的一种转置,这个会使得我们的左右奇异向量的意义产生变化,但是不会影响我们计算的过程)。比如说T1这个title中就有guide、investing、market、stock四个词,各出现了一次,我们将这个矩阵进行SVD,得到下面的矩阵:

    左奇异向量表示词的一些特性,右奇异向量表示文档的一些特性,中间的奇异值矩阵表示左奇异向量的一行与右奇异向量的一列的重要程序,数字越大越重要。

    继续看这个矩阵还可以发现一些有意思的东西,首先,左奇异向量的第一列表示每一个词的出现频繁程度,虽然不是线性的,但是可以认为是一个大概的描述,比如book是0.15对应文档中出现的2次,investing是0.74对应了文档中出现了9次,rich是0.36对应文档中出现了3次;


    其次,右奇异向量中的第一行表示每一篇文档中的出现词的个数的近似,比如说,T6是0.49,出现了5个词,T2是0.22,出现了2个词。


    然后我们反过头来看,我们可以将左奇异向量和右奇异向量都取后2维(之前是3维的矩阵),投影到一个平面上,可以得到:

    在图上,每一个红色的点,都表示一个词,每一个蓝色的点,都表示一篇文档,这样我们可以对这些词和文档进行聚类,比如说stock 和 market可以放在一类,因为他们老是出现在一起,real和estate可以放在一类,dads,guide这种词就看起来有点孤立了,我们就不对他们进行合并了。按这样聚类出现的效果,可以提取文档集合中的近义词,这样当用户检索文档的时候,是用语义级别(近义词集合)去检索了,而不是之前的词的级别。这样一减少我们的检索、存储量,因为这样压缩的文档集合和PCA是异曲同工的,二可以提高我们的用户体验,用户输入一个词,我们可以在这个词的近义词的集合中去找,这是传统的索引无法做到的。


    2.数据分析(dataanalysis)


    我们搜集的数据中总是存在噪声:无论采用的设备多精密,方法有多好,总是会存在一些误差的。如果你们还记得上文提到的,大的奇异值对应了矩阵中的主要信息的话,运用SVD进行数据分析,提取其中的主要部分的话,还是相当合理的。作为例子,假如我们搜集的数据如下所示:

    我们将数据用矩阵的形式表示:

    经过奇异值分解后,得到

    σ1 = 6.04
    σ2 = 0.22

    由于第一个奇异值远比第二个要大,数据中有包含一些噪声,第二个奇异值在原始矩阵分解相对应的部分可以忽略。经过SVD分解后,保留了主要样本点如图所示


    就保留主要样本数据来看,该过程跟PCA( principal componentanalysis)技术有一些联系,PCA也使用了SVD去检测数据间依赖和冗余信息.。




    --------------------------先更到这里,有时间再更-----------------

    更多详细信息可以参考《神奇的矩阵》和《神奇的矩阵第二季》,或者加群了解有关线性代数和矩阵的知识。

    参考文献

    1.We recommend a singular value decomposition

    2. Singular value decomposition

    3. QiuYixuan: 奇异值分解和图像压缩

    4. 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

    5. 本文由LeftNotEasy发布于LeftNotEasy - 博客园,部分修改

    11711 条评论
    分享
    收藏感谢收起
    119 人赞同了该回答
    就如 的说法所言:
    我感觉,无论是特征值分解还是奇异值分解,都是为了让人们对矩阵(或者线性变换)的作用有一个直观的认识。这是因为我们拿过来一个矩阵,很多情况下只能看到一堆排列有序的数字,而看不到这些数字背后的真实含义,特征值分解和奇异值分解告诉了我们这些数字背后的真实含义,换句话说,它告诉了我们关于矩阵作用的本质信息。

    奇异值包含了矩阵的“本质信息”,而具体什么是一个矩阵的“本质信息”呢?这是个很抽象的概念,在不同的应用领域自然有不同的解释,而我将从矩阵本身的角度尽量直观地解释。我认为奇异值分解的结果,解释了矩阵的“奇异程度”。

    我们知道非满秩的矩阵就是奇异矩阵,但是有没有量化的标准衡量哪个矩阵更不满秩,或者更奇异呢?比如同样两个满秩矩阵,能否看出哪个更“满”,或者两个非满秩且同为秩r的矩阵,哪个更“奇异”呢?也许你回答不上来,但你心里隐隐约约觉得似乎是有的。让我们来看看下面这两个n=3,r=2的奇异阵:

    A=\left[\begin{matrix}1 & 1 & 1 \\2 & 2 & 2\\6 & 6 & 7\end{matrix}\right] \qquadB = \left[\begin{matrix}1 & 1 & 1 \\2 & 2 & 2\\1 & 11 & 7\end{matrix}\right]

    虽说都是秩2矩阵,但A显得更奇异,因为它似乎离秩1矩阵更接近。如果A_{3,3}不是7,而是6.9, 6.5, 6.1, 6.001呢?如果很接近6但不是6的话,理论上A依旧是个秩2矩阵,但也许计算机会告诉你这是一个秩1矩阵了。我们不讨论计算机的精度问题,接着看这两个矩阵。我们对其进行SVD,得到的两个奇异值矩阵:

    \Sigma _{A}  =\left[\begin{matrix} 11.66 & 0 & 0\\0 & 0.27 & 0\\0 & 0 & 0\end{matrix}\right] \qquad\Sigma _{B}  =\left[\begin{matrix} 13.48 & 0 & 0\\0 & 2.04 & 0\\0 & 0 & 0\end{matrix}\right]

    \sigma_{A1} /\sum{\sigma_{A} } =98\%\qquad\sigma_{B1} /\sum{\sigma_{B} } =87\%

    这是符合我们的认知的,正如在PCA或者图像压缩方面的例子应用一样,\Sigma的“头部”集中了更多的“质量”,忽略远离“头部”的奇异值对恢复矩阵的影响越小,这意味着:一个矩阵越“奇异”,其越少的奇异值蕴含了更多的矩阵信息,矩阵的信息熵越小(这也符合我们的认知,矩阵越“奇异”,其行(或列)向量彼此越线性相关,越能彼此互相解释,矩阵所携带的信息自然也越少)。这些奇异值就是开头我们所谈论的“本质信息”,而从矩阵\Sigma中也能得到矩阵的“奇异程度”。


    好了,那么你告诉我下面两个波,哪个更奇异呢:


    很明显是第一个,这是一个正弦波,第二个是我随意生成的叠加了若干个正弦波的一个波。之后,我采样了3600个点,并将离散信号reshape成了60\times 60的矩阵,将其SVD分解之后的结果也在我们意料之中(\Sigma取r=10):

    11913 条评论
    分享
    收藏感谢收起
    30 人赞同了该回答
    [多图] && [有码]
    试了下
    方法,果然好使
    活学活用·数学之美·数学的魔法
    换成了RGB图对三个通道分别求SVD再合一起,效果如下
    1/369

    2/369

    3/369

    5/369

    7/369

    369/369
    直接放码:
    #include <opencv2\opencv.hpp>
    using namespace cv;
    
    int main(int argc, char** argv)
    {
    	Mat img = imread("./haha.jpg");
    	if (!img.dims)
    	{
    		return -1;
    	}
    	int channels = img.channels();
    	//分离通道
    	std::vector<Mat> src;
    	split(img, src);
    	for (int i = 0; i < src.size()/*==channels*/; i++)
    	{
    		src[i].convertTo(src[i], CV_32F);
    	}
    	//SVD
    	std::vector<Mat>W, U, VT,S;
    	for (int i = 0; i < channels; i++)
    	{
    		Mat w, u, vt;
    		SVD svd;
    		svd.compute(src[i], w, u, vt);
    		W.push_back(w);
    		U.push_back(u);
    		VT.push_back(vt);
    	}
    	//
    	Mat s1 = Mat::zeros(W[0].rows, W[0].rows, CV_32F);
    	Mat s2 = Mat::zeros(W[1].rows, W[1].rows, CV_32F);
    	Mat s3 = Mat::zeros(W[2].rows, W[2].rows, CV_32F);
    	S.push_back(s1); S.push_back(s2); S.push_back(s3);
    	for (int j = 0; j < img.rows; j++)
    	{
    		printf("%d/%d\n", j, img.rows);
    		for (int i = 0; i < channels; i++)
    		{
    			src[i] = Mat::zeros(img.rows, img.cols, CV_32F);
    			s.at<float>(j, j) = W[i].at<float>(j);
    			src[i] = U[i] * S[i] * VT[i];
    			src[i].convertTo(src[i], CV_8U);
    		}
    		merge(src, img);
    		imshow("img", img);
    		//
    		if (j<img.rows*0.05)
    			waitKey(1000);
    		else
    			waitKey(1);
    		//
    	}
    	getchar();
    	//
    	return 0;
    }
    
    3011 条评论
    分享
    收藏感谢收起
    116 人赞同了该回答

    我感觉,无论是特征值分解还是奇异值分解,都是为了让人们对矩阵(或者线性变换)的作用有一个直观的认识。这是因为我们拿过来一个矩阵,很多情况下只能看到一堆排列有序的数字,而看不到这些数字背后的真实含义,特征值分解和奇异值分解告诉了我们这些数字背后的真实含义,换句话说,它告诉了我们关于矩阵作用的本质信息。

    奇异值分解的含义是,把一个矩阵A看成线性变换(当然也可以看成是数据矩阵或者样本矩阵),那么这个线性变换的作用效果是这样的,我们可以在原空间找到一组标准正交基V,同时可以在像空间找到一组标准正交基U,我们知道,看一个矩阵的作用效果只要看它在一组基上的作用效果即可,在内积空间上,我们更希望看到它在一组标准正交基上的作用效果。而矩阵A在标准正交基V上的作用效果恰好可以表示为在U的对应方向上只进行纯粹的伸缩!这就大大简化了我们对矩阵作用的认识,因为我们知道,我们面前不管是多么复杂的矩阵,它在某组标准正交基上的作用就是在另外一组标准正交基上进行伸缩而已。

    特征分解也是这样的,也可以简化我们对矩阵的认识。对于可对角化的矩阵,该线性变换的作用就是将某些方向(特征向量方向)在该方向上做伸缩。

    有了上述认识,当我们要看该矩阵对任一向量x的作用效果的时候,在特征分解的视角下,我们可以把x往特征向量方向上分解,然后每个方向上做伸缩,最后再把结果加起来即可;在奇异值分解的视角下,我们可以把x往V方向上分解,然后将各个分量分别对应到U方向上做伸缩,最后把各个分量上的结果加起来即可。

    当我们注意到,不是所有的矩阵都能对角化(对称矩阵总是可以),而所有矩阵总是可以做奇异值分解的。那么多类型的矩阵,我们居然总是可以从一个统一且简单的视角去看它,我们就会感叹奇异值分解是多么奇妙了!
    1164 条评论
    分享
    收藏感谢
    14 人赞同了该回答

    简单地说,奇异值的意义在于一个m*n的矩阵会把n维空间的单位球映射到m维空间的一个椭球(可能是退化的),而这些奇异值就对应这个椭球的各个半轴长。而奇异向量就恰好是椭球的半轴的方向,以及它们的原像。

    参考:Trefethen《数值线性代数》
    14添加评论
    分享
    收藏感谢
    12 人赞同了该回答
    其实一句话就可以对奇异值分解所做的工作进行概括,相信你应该学过在平面内用一条直线拟合点的方法,也就是所谓的最小二乘法,那么奇异值分解所做的工作就是将这种方法扩展到高维空间,即寻找一个平面去拟合空间内的点,或者是寻找更高维度的线性子空间去拟合高维点集,唯一与最小二乘法不同的是:最小二乘不要求找到的直线过原点,而奇异值分解要求找到的平面或者更高维线性空间必须过原点(即线性子平面),然而这一差别完全可以先对数据进行中心化而完全消除,X=UDV',在这个分解式子中,X是p*N得矩阵,代表N个p维点,U是p*r,D是r*r,V是N*r,U的前k列(k<=r)张成的空间就是最佳线性子空间。这就是svd的几何含义。
    12添加评论
    分享
    收藏感谢
    5 人赞同了该回答
    5添加评论
    分享
    收藏感谢
    45 人赞同了该回答

    首先实名反对

    的女神女神上野树里(Ueno Juri)
    大lena神王道

    工程里,用一些比较简单的东西去表达一个复杂的东西,是很有用的。

    对应到数学,
    比如一个复杂的函数,我们可以用泰勒级数去模拟他,这样泰勒级数前几项,就可以近似当做这个函数的值。
    更自然的是三角函数的级数去模拟一个函数, 工具是傅里叶分析。

    在矩阵来说,我们想用一个简单的矩阵,或者说几个数字,去代表一个复杂的矩阵。
    奇异值就是很好的一个选择。
    4512 条评论
    分享
    收藏感谢收起
    12 人赞同了该回答
    可以参考:《科学网—奇异值分解(SVD) --- 几何意义》 进行了解。
    122 条评论
    分享
    收藏感谢
    1 人赞同了该回答

    有两类理解方式
    1 线性变换的角度: 注意,任何一个矩阵都对应一个线性变换,反之任何一个线性变换都对应唯一一个矩阵
    奇异值分解公式如下:
    M = U\Sigma V^*   \Rightarrow MV = U\Sigma  \Rightarrow Mv_i = u_i \Sigma_{ii}
    其中 VV^* = I
    M代表线性变换\tau : K^n \rightarrow K^m, 奇异值分解在原空间与像空间中分别找到一组标准正交基,使得\tauK^n的第i个基向量v_i映射为K^m的第i个基向量u_i的非负倍数(Mv_i = u_i \Sigma_{ii}),并将余下的基向量映射为零向量。即在这两组标准基向量下,M代表的线性变换是最简洁的形式。

    2 但是在很多工程应用中,矩阵代表的是存储的数据,并没有明显的线性变换的意义
    这时可以从另一个角度理解,数值角度理解
    如果我们把奇异值按照从大到小排列,又以知数据M可以(唯一)表示成 M = U\Sigma V^*;从数值角度看,我们把 \Sigma中较小的值置为0,那么 将得到M很好的低秩近似M\sim \hat{M},方便我们对数据进一步处理。所以从工程角度理解,不必牵扯到物理意义,可以直接理解为取数据低秩近似的一种数值算法。或者说,此时的问题不是奇异值分解的物理意义,而应该是为什么所有数据矩阵M都可以(唯一)表示成 M = U\Sigma V^*这种形式?

    为什么数据常常有低秩近似呢?
    因为数据样本间是相关联的,而低秩近似就是为了最大化提取数据间的线性相关关系。

    PS:
    物理意义能帮助人理解,但很多时候过分执着于物理意义也会让人陷入一种思维桎梏中去
    PSS:我这里只是举了低秩近似的一个例子,在工程领域有很多其他不同应用,我不太理解,但我感觉这些工程领域都只是利用SVD分解的数学上的性质,根本不需要去深究物理意义。如果硬是要讲物理意义的话,就是当你把某些物理量表达成矩阵的时候,你就可以用SVD去提取其中的线性相关关系,至于线性相关关系到底代表什么,从数学工具角度看并不关心。
    12 条评论
    分享
    收藏感谢
    1 人赞同了该回答
    奇异值分解,其中的一种理解就是基变换。就是将行空间中的一组正交基变换为一组在列的正交基。A[V1,V2,……Vn]=[U1,U2,……Un]\Sigma,其中[V1,V2,……Vn]是行空间的基向量组,[U1,U2,……Un]是列空间基向量组。[V1,V2,……Vn]如果是标准正交基,则其逆矩阵就是他自身的转置。则就可以得出奇异值分解的形式。
    1添加评论
    分享
    收藏感谢
    1 人赞同了该回答

    奇异值分解的用途之一是可以用来计算矩阵的秩。那么可以从秩定义的角度来理解奇异值分解的物理意义:所谓矩阵的秩,就是该矩阵的线性独立的列(或行)的极大数目

    线性代数课上介绍了用初等变换(或求矩阵子式)的传统方法来计算矩阵的秩,而用奇异值分解的方法来求矩阵的秩:首先对矩阵M进行奇异值分解,即M = U\Omega V^{T},其中\Omega _{i, i} =\sigma _{i}\sigma _{i}就是矩阵M的第i个奇异值;那么矩阵M的秩就是非零奇异值的个数。

    可别小看矩阵的秩,在形如A=MxB的运算中(M为算子),若知道了M的秩,你就可以知道输出A的维数大小以及M为方阵时是否可逆等信息。
    1添加评论
    分享
    收藏感谢

    一个m*n的矩阵是一个n维线性空间到一个m维线性空间的一个线性映射,而m维线性空间内是天然有一个二范数的(自然基下的坐标平方和)。那么这个线性映射在原来的n维线性空间上就诱导了一个半正定二次型,利用shimidt正交化可以在n维空间中取出一组标准正交基底使得这个半正定二次型对角化。

    几何意义则是说,你可以在n维空间中找出来一组标准正交基,使得他们在象空间的那个m维空间中是彼此正交的(当然,有一些的象会是0向量),而这组标准正交基中每个基向量被伸长的倍数就是奇异值。

    0添加评论
    分享
    收藏感谢

    SVD分解,类似于信号功率谱分析,都是一种将信号按照特征来分解的方法,即是按照信号固有的分布去展开。


    时域信号x(t)可以通过傅里叶变换展开到频域里去。傅里叶变换的基函数为exp(jwt),这是一个单位正交的基函数,傅里叶变换结果中的幅度就是信号在单位正交基函数上投影的模长,因此,幅度即对应SVD分解中的特征值,基函数就是其对应的特征向量。将信号转换成频域信号,可以揭示一些系统的结构特征,比如固有频率、模态。因此,傅里叶变换可以理解为将信号按照其固有的频率分布去展开。


    对于一些空间分布的信号,我们可以按照其空间的固有的分布形式将其展开,比如说常见的PCA主成分析,比如一个椭圆面分布的二维数据集,可以沿着椭圆俩主轴的方向将其分解开来,当然,PCA可以看成SVD的一种封装,因此不难理解SVD也是将数据按其固有的空间分布去展开的一种手段。奇异值大小即表征分布的强弱,奇异向量即为其对应的空间分布的“方向”。


    舍去几个小的奇异值来降噪可以看成将空间分布比较弱的信号剔除的过程。

    0添加评论
    分享
    收藏感谢

    问题的题法有些不恰当。

    奇异值是一个数学概念,在不同的物理模型中有不同的物理意义,有时候甚至可以没有明显的意义。在很多答案中提到的图像问题,奇异值大小反映了不同基函数(小波或三角函数)所对应的能量;在声波方程中,不同奇异值可以反应不同频率的planewave能量/振幅。

    0添加评论
    分享
    收藏感谢

    我的籠統理解是:

    A(A為m*n矩陣)的矩陣變換作用是以A^T*A的n個正交特征方向向量作基表示n維空間時,以A^T*A的n個特征值構成的奇異矩陣變換作用在m維空間的投影。而奇異矩陣中的奇異值為該投影到m維空間過程中的最優值。也就是說,上帝在創造多維空間時,它讓不同維度的空間變化都是全力以赴的。

    0添加评论
    分享
    收藏感谢
    25=5×5,请问5有什么物理意义?并没有什么意义。就是这样分解人脑似乎容易抓住规律,简化计算。同理矩阵也是一样。很多人拿矩阵这种数据形式的几何实例化,譬如旋转伸缩来强行解释什么“本质”,那是本质么?
    0添加评论
    分享
    收藏感谢
    2 人赞同了该回答
    说实话,上面的说了一大堆,还是没清晰的说明物理意义,我个人感觉如果能有机械里涉及的特征值的意义才是物理意义,一个图像你做奇异喜好分解,如果只取前几个奇异值,恢复重建图像到底物理意义是什么?上面举的所有例子都是奇异值的表象,谈不上真正的物理意义,舍去几个奇异值重建对做图像处理的人只能算最普通的工作,这并不是奇异值的物理本质,期待有机械振动的高人来解答下,毕竟特征值在机械振动中有非常具体的物理意义。
    21 条评论
    分享
    收藏感谢



    展开全文
  • 1、为什么要进行傅里叶变换,其物理意义什么? 傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都...
  • 复数的物理意义什么

    千次阅读 2017-05-25 21:31:55
    另外,e^t是什么样呢? 但当你在指数上加上i之后呢?但当你在指数上加上i之后呢? 变成了一个螺旋线。是不是和电磁场很像?(想拿欧拉公式去跟女生炫学术的男生注意了:她们,真的,不CARE) 变成了一个螺旋线。...
  • 【转载】复数的物理意义什么?知乎专栏 作者:Heinrich,生娃工打折腿 来源: http://www.zhihu.com/question/23234701/answer/26017000复数最直观的理解就是旋转!4*i*i = -4就是“4”在数轴上旋转了180度。...
  • 1、为什么要进行傅里叶变换,其物理意义什么? 傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号...
  • 虚数的现实、物理意义什么

    千次阅读 2019-02-01 21:14:10
    作者:瑾瑜 ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   有人在Stack Exchange问了一个问题: ...我一直觉得虚数(imaginary number)很难懂。... 可是,什么数的...
  • 什么要进行傅里叶变换,其物理意义什么?  傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理表明:任何连续测量的时序或信号,都可以...
  • 傅里叶变换,其物理意义什么?(转) 1、为什么要进行傅里叶变换,其物理意义什么? 傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。傅立叶原理...
  • 【数学】复数的物理意义什么

    千次阅读 2018-01-11 15:24:54
    作者:Heinrich ... 来源:知乎 著作权归作者所有。...(图1图3系自制,转载不注明出处注定一辈子理工没女朋友) 题主关注我的专栏吧,近期会写科普傅里叶的东西…… 与时间无关的故事 - 知乎专栏
  • 物理学习

    2021-05-10 16:37:41
    物理层的特性 首先,我们需要弄明白物理层主要任务是:解决如何在连接计算机上的传输媒体上传输数据比特流,而不是指具体的传输媒体(光纤,电缆等等)。 而物理层的主要任务是确定与传输介质的接口的一些特性: ...
  • 采矿地球物理学是地球物理学的分支之一,是用地球 物理方法来解决采矿现场的实际问题,即与矿物的开采有关 的采矿与地质问题,特别是井下的开采与地质问题。其基本 任务是解决采矿作业的安全性和保证矿井生产的连续....
  • 物理意思

    2015-04-28 16:36:27
    今天老师讲了,我们学习功课的学生,不能纠结于数字和公式,我们学习是为了应用,所以,在这类课程的学习中,我们不能局限于死记硬背,应该活活用,深刻理解公式背后的物理意义。这句话给了我很大的启发
  • 作者:郑宁 ... 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ...矩阵的奇异值是一个数学意义上的概念,一般是由奇异值分解(Singular ...如果要问奇异值表示什么物理意义,那么
  • 爱因斯坦是怎样学习物理的?

    千次阅读 2018-07-30 21:52:11
    想要了解爱因斯坦怎样学习物理,这个想法咋看似乎毫无意义,就如同望着飞鸟并用力摆动胳膊并不能让你展翅飞翔。你如何仿效一个成为“天才”代名词的人? 即使你我可能并没有引发物理变革的聪明才智,但我认为对他...
  • 学习物理体系结构后我们就知道加大共享池,如果是自动管理模式,就是加大sga得大小!  如果数据缓存区过小导致大数据量得数据库产生大量得物理读,怎么办?(加大sga大小)  如果一个尺寸很大...
  • 作者简介 张泽稷,人大附中2020届毕业生,北京大学元培学院2020级本科生。 写在前面 物理、化学、生物在某种意义上正是由虚入实、层层递进的三门学科:物理最抽象,最概括,...指望像学习物理一样学习生物,抛开课本,
  • 首先阐明了物理学物理学史之间的关系,然后从培养学生的科学素质、创新素质、人文素质三个方面论述了物理学史在大学物理教学中的重要意义
  • 是特殊意义下求和的数学问题,和量子力学间的联系目前科学家还没有彻底弄清楚,有点类似量子场论中的重整化问题。 初等证明过程: 令S=1+2+3+4+5+6+……; S1=1-1+1-1+1-1+……; 1-S1=1-1+1-1+1-1+……=...
  • unity物理仿真基础学习问题1:物理仿真基础问题1:物理仿真基础问题2:物理仿真的子弹问题3:关节结构问题4:碰撞事件 本文所有学习内容来自 夏村散人韩老师-unity入门教程 问题1:物理仿真基础 问题1:物理仿真...
  • 物理学上有四大神兽,薛定谔的猫,芝诺的乌龟,麦克斯韦的妖精和拉普拉斯妖。这四大神兽都是难以理解,且有着深刻内涵的假设。 物理四神兽-拉普拉斯妖 拉普拉斯妖是一种关于宇宙学说的科学假设。 拉普拉斯图片 ...
  • 类似问题答案计算机科学与技术主要学什么?对物理的要求高不高?可以软件编程吗?业务培养目标:本专业培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本...
  • 摘 要:现今,计算机发展迅速,电子商务、电子政务、网上办公、网上学习和网上娱乐等活动应用普遍,这些依附于计算机发展而实现的功能给人类工作、生活、学习带来了翻天覆地的变化。作为理科基础学科的物理学在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,254
精华内容 66,501
关键字:

学物理的意义是什么