线性分式变换(linear fractional transformation)的名称来源于其定义的形式:(ax+b)/(cx+d),其中分子分母是线性的,然后最外层是一个分式形式,所以叫做这个名字,但是这个名字其实基本没有对其几何的或者(可能的)物理内涵进行任何的解释或者表达,根据《Convex Optimization》中Remark 2.2对其的解释,这个线性分式变换可以分解为:P^-1QP(x),其中x就是初始的n维变量,首先P是一个逆透视变换(perspective transformation是透视变换,会将一个维度,那么逆透视变换自然是升一个维度了),称为投影变换(projective transformation,很明显这里的投影变换是升维度变换,和我以前常遇到的降维度变换不同,或许投影变换既可以表示升维度也可以降维度),经过第一个P就变成了n+1维变量,然后Q是一个矩阵变换,既然是矩阵变换那就存在非常多的可能性了,其中可以包括(平移、旋转、缩放、倒置等),然后将变换后的n+1维变量再进行一次透视变换(降一个维度,既然P是逆透视变换,那么P^-1自然就是透视变换了),又变成了n维的变量。可见这个线性分式变换的目的就是把变量提高一个维度(以统一的方式,也就是透视变换的方式,这种方式可以维持凸性和仿射性),然后在这个高维度的空间中对其进行一些处理(这个就需要由Q=[a,b;c,d]来决定了),然后再用同样的方式将其送回到原来的维度空间。这个过程,特别是透视变换中对变量最后一项元素必须等于1的强调,让我想起了在黄家祥论文中看到过的四元数变换,其实归根结底他想做的是,对三维空间变量进行一系列的操作(平行、旋转、缩放等),但是却硬是将变量变成了四维的(这个过程很简单,原来的三维变量最后加一项元素,这个元素就是1),这样的好处是什么呢,据我观察就是变换矩阵变得简单了。这其实是很有道理的,一个直观的理解就是,例如在二维平面xy(空间)中,我们想把一个封闭圆形内的一个三角形移到圆形外,这几乎是不可能的任务,非常难,但是如果在三维空间中这就非常简单了,只要将这个三角形在第三个维度z进行一个平移,然后再在二维平面xy的任意方向上进行平移, 然后再将这个三角形在z方向进行平移,将其还原到原来的xy平面内,就实现了二维平面内无法完成的任务。这个例子说明,在低维空间内很难(甚至不可能)的事情,在高维(甚至只需要高一个维度)空间中就会变得简单很多。我们将这个例子与线性分式变换进行对比发现了一些非常相似的地方,首先由二维空间到三维空间的出现,其实就是将变量进行了升维操作,也就对应于逆透视变换P,然后再三维空间的一系列操作就对应于Q,再然后由三维空间的消失恢复到二维空间就对应于透视变换P^-1,可以发现,在这个过程中,透视变换的主要作用其实就是一个规范化的升维(降维)操作。其实关于这个例子,我最初想到的是刘慈欣先生《三体》里地球的远航舰队碰到四维时空碎片时的情节,通过”四维空间通道“,一艘舰船里的人神不知鬼不觉得到了另一艘舰上,真是让人神迷的描述啊。后来由此很自然得想到了《兔子洞里到底是什么》里关于高维空间与低维空间关系的介绍。

线性分式变换(linear fractional transformation)的更多相关文章

  1. <<Differential Geometry of Curves and Surfaces>>笔记

    <Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...

  2. <Differential Geometry of Curves and Surfaces>(by Manfredo P. do Carmo) Notes

    <Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...

  3. H∞一般控制问题的鲁棒叙述性说明

    Robust Control System:反馈控制有承受一定类不确定能力的影响,这一直保持在这种不确定的条件(制)稳定.动态特性(灵敏度)和稳态特性(逐步调整)的能力. 非结构不确定性(Unstru ...

  4. martini-拓扑映射

    如何为一个新的分子创建拓扑文件? 这是martini应用的关键.http://jerkwin.github.io/2016/08/31/Martini%E5%B8%B8%E8%A7%81%E9%97% ...

  5. (邹博ML)凸优化

    目录 凸集的基本概念 凸函数的基本概念 凸优化的一般提法 凸集基本概念 思考两个不能式 两个正数的算术平均数大于等于几何平均数 给定可逆对称阵Q,对于任意向量x,y,有: 思考凸集和凸函数 在机器学习 ...

  6. 【线性代数】7-2:线性变化的矩阵(The Matrix of a Linear Transformation)

    title: [线性代数]7-2:线性变化的矩阵(The Matrix of a Linear Transformation) categories: Mathematic Linear Algebr ...

  7. 【线性代数】7-1:线性变换思想(The Idea of a Linear Transformation)

    title: [线性代数]7-1:线性变换思想(The Idea of a Linear Transformation) categories: Mathematic Linear Algebra k ...

  8. linear map (also called a linear mapping, linear transformation or, in some contexts, linear function

    Linear map - Wikipedia https://en.wikipedia.org/wiki/Linear_map

  9. Linear Algebra From Data

    Linear Algebra Learning From Data 1.1 Multiplication Ax Using Columns of A 有关于矩阵乘法的理解深入 矩阵乘法理解为左侧有是一 ...

随机推荐

  1. 使用zxing生成二维码

    public static Bitmap Create2DCode(String str) throws WriterException {                 // 生成二维矩阵,编码时 ...

  2. mui学习记录

    1.页面间传值 2.mui如何增加自定义icon图标 http://ask.dcloud.net.cn/article/128 3.设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇) h ...

  3. 解决ftp上传connection reset错误

    切换到管理员,cmd下面执行:netsh advfirewall set global StatefulFTP disable MS对此的解释:https://technet.microsoft.co ...

  4. 【转载】SSM框架整合

    http://blog.csdn.net/gebitan505/article/details/44455235/ 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于20 ...

  5. 3.2 配置构建Angular应用——简单的笔记存储应用

    本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...

  6. vnc远程运行3D游戏

    使用的版本:VNC-5.2.3-Windows.exe   vnc官网 安装的过程中需要输入license key,以下给出一些enterprise license(最大权限的License): K5 ...

  7. 【Java并发系列02】Object的wait()、notify()、notifyAll()方法使用

    一.前言 对于并发编程而言,除了Thread以外,对Object对象的wati和notify对象也应该深入了解其用法,虽然知识点不多. 二.线程安全基本知识 首先应该记住以下基本点,先背下来也无妨: ...

  8. Cocos2d-x 版本小游戏 《是男人就下100层》 项目开源

    这个是很久就开始动手写的一个小游戏了,直到最近才把它收尾了,拖拖拉拉的毛病总是很难改啊. 项目是基于 cocos2d-x v2.2 版本 ,目前只编译到了 Win8 平台上,并且已经上传到了商店,支持 ...

  9. Ubuntu菜鸟入门(八)—— QQ安装

    一.下载 http://www.ubuntukylin.com/application/show.php?lang=cn&id=279 二.安装流程 1.解压,到解压文件夹中运行 sudo d ...

  10. Centos 6.5 x64环境下 spark 1.6 maven 编译-- 已验证

    Centos 6.5 x64 jdk 1.7 scala 2.10 maven 3.3.3 cd spark-1.6 export MAVEN_OPTS="-Xmx2g -XX:MaxPer ...