Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

Science and art, life in between.科学与艺术,生活在其间。

284 Blogs博客
173 Tags标签
Changkun's Blog欧长坤的博客

MeanShift 均值漂移跟踪算法原理

Published at发布于:: 2013-09-04   |   Reading阅读:: 4 min
概述 整个暑假都在做Tracking,其中最为重要的核心就是均值漂移了,均值漂移算法指的是一个迭代的步骤,即先算出当前点的漂移均值,移动该点到其漂移均值,然后以此为新的起始点,继续移动,知道满足一定条件结束。所以,均值漂移实际上是一种在一种数据的密度分布中寻找局部极值的稳定的方法。如果分布连续,那么处理则变得非常容易,在这种情况下本质上只需要对数据的密度直方图应用爬山算法。更加准确的说,均值漂移是与核密度估计的规则有关的算法。而所谓“核”,实际上是一个如同高斯分布的局部函数。如果在充足的点处拥有足够合适的带权重和尺度的核,数据的分布则可以完全根据这些核来表示。然而又与核密度的估计不同,均值漂移仅仅估计数据分布的梯度。如果变化为0的地方则表示是这个分布的峰值(当然,也有可能是局部的)。当然在附近或其他尺度上还是有可能有峰值的。 定义 给定$d$维空间$R^{d}$中$n$个样本点$x_{i},i=1,2,…,n$,$n$在$x$点的均值漂移向量的基本形式定义为: $$ \begin{equation} M_{h}(x)=\frac{1}{k}\sum_{x_{i}\in S_{k}}\left(x_{i}-x\right) \end{equation} $$ 目标模型 均值漂移采用的是特征值的加权概率分布来描述目标模型,属于模式识别中主要描述目标的模型,不同于自动控制理论中采用的状态方程。 目标模型一共具有$m$个特征值(可以理解为像素的灰度值),于是对于序列$q={q_{n}}$,而$u\in {1,…,m}$有 $$ \begin{equation} q\left(u\right)=C\sum_{i=1}^{n}k\left( \left\Vert \frac{X_{i}-X_{0}}{H} \right\Vert ^{2}\right) \end{equation} $$ 其中,$X_{0}$为窗口中心点向量值(可能为RGB向量或者灰度值),$X_{i}$是窗口内第$i$点向量值。$C$为归一化常数,保障$\sum_{i=1}^{m}q_{i}=1$ ,$H$为核函数的带宽向量。$M$为特征值的个数,对于图像处理可以理解为灰度等级划分的个数,从而特征值$u$为对应的灰度等级。 $\delta$函数为脉冲函数,保证只具有$u$特征值的像素才对概率分布作出贡献。从而$k$函数可以理解为$u$灰度值的一个加权频数。 匹配对象 同样采用的是特征值加权概率分布: $$ \begin{equation} P_{u}(Y)=C_{h} \sum_{i=1}^{n_{k}}k\left( \left\Vert \frac{X_{i}-Y}{H_{h}} \right\Vert ^{2}\right) \delta\left(b(X_{i})-u\right) \end{equation} $$ 其中$i\in [1,…,n_{h}]$,$Y$为匹配对象的中心, $X_{i}$是匹配窗口内第$i$点向量值。 $H_{h}$为匹配窗口的核函数带宽向量,$C_{h}$为匹配窗口特征向量的归一化常数。 匹配相似 匹配对象与目标模型的相似程度,相似函数采用的是Bhattacharyya函数 $$ \begin{equation} \rho\left(p(Y),q\right)=\sum_{u=1}^{m}\sqrt{P_{u}(Y)q_{u}} \end{equation} $$ 匹配过程 均值漂移采用梯度下降法,首先$$\rho(Y)$$在\rho(Y_{0})附近进行泰勒展开,去前两项,得到 $$ \begin{equation} \rho(Y) \approx \rho(Y_{0})+\frac{d\rho}{dp}\left(p(Y)-p(Y_{0})\right) \end{equation} $$ 定义 $$ \begin{equation} \rho_{u}(Y)=\sqrt{p_{u}(Y)q_{u}} \end{equation} $$ 从而 $ \begin{equation} \rho_{u}(Y)=\rho_{u}(Y_{0})+\frac{q_{u}}{ 2 \sqrt{p_{u}(Y_{0})q_{u}} }\left( p_{u}(Y) - p_{u}(Y_{0}) \right) \end{equation} $
Read More阅读更多 »

下一次的数学突破?

Published at发布于:: 2013-09-03   |   Reading阅读:: 1 min
今天有人问我这个问题,就抽零碎时间在手机上敲敲我的看法。 数学界从来不缺天才,数学界从来不缺重大的突破。就我大学一年零碎所了解到的(以前高中还是太肤浅,当时只是道听途说),现代社会从事科研的人数比以前多了不知多少倍,所以现代科学(包括数学)的发展和突破的速度超越了以往任何一个时代(即《三体》里大刘所说的“技术爆炸”)。 只不过,相对于无理数、复数、微积分这样受过正常理工科教育的人都能理解的简单知识而言,现代数学的突破是almost everyone看不懂的了。我说的“看不懂”是真的看不懂——即数学圈外的人、甚至数学圈内不是一个方向的研究者,连这个“突破”的成果是啥意思都看不明白,更别提理解这个成果是怎么得到的了。(所以大部分民科也只会在像哥德巴赫猜想这类问题上纠结一样) 所以,圈外人会有一种“科学发展停滞了”的错觉,虽然他们每天用着的手机、电脑等由几十年前的“旧数学成果”奠基的工业产品在日新月异地更新换代。(不要觉得现在的产品有多么先进,只是几十年前的数学家不想去做产品化这种无聊的东西。) “整数与小数之间的映射关系”、“离散和连续的关系”、“拓展数的概念”,都是很初等的东西,距离现代数学差得太远了。所以也就能理解为什么会提出这样的问题。 如果没有做过数学、物理等前沿学科问题的研究,是完全无法想象现代前沿科学是什么样的。其抽象程度、推导的复杂程度、需要的知识储备是大大超出一般圈外人的想象的。 举一些20世纪以后数学重大突破的实例吧: 哥德尔不完全性定理:由Godel证明,它使得人们一直以来寻求“完美的数学公理系统”的希望破灭——你永远不可能找到一个完美的数学公理系统,使得所有的数学命题都可以被证明或证伪。一个著名的例子就是连续统假设(CH)——以前数学家们孜孜以求的连续统假设的答案,是它和现代数学所采用的ZFC公理系统独立,即ZFC+CH不会有矛盾,ZFC+CH也不会有矛盾。 范畴论:一个不同于集合论的、可以作为现代数学基础的理论基石。由Samuel和Saunders创立,另外Lawvere、Alexander等数学家都为之做出了巨大贡献。集合论的基本概念是“元素”,而范畴论不再关心元素,而关心不同对象之间的联系,这更能抓住很多抽象数学机构的本质特征。例如,一个经典的例子是Gelfand representation,交换C*代数构成的范畴和紧Housdorff空间构成的范畴是等价的。范畴论不仅是代数几何等前沿数学分支的理论基础,还为理论计算机和物理的发展提供了强大的范畴论工具。 庞加莱猜想:1961年Smale证明了五维以上的情形,1981年Freedman证明了四维情形,2003年Perelman证明了三维情形,从而彻底解决。三人都因其对庞加莱猜想的贡献各自获得菲尔兹奖。关于它的意义我不想也不愿意用初等语言来描述(其实是我自己也不是很明白),微分几何与现代物理的深刻联系需要许多预备知识才能理解。事实上,现代数学最难且最热门的分支就是几何(包括微分几何、代数几何等),它是与现代物理关系最紧密的数学分支,也是聚集了最多数学天才的分支,最近几十年里这方面的突破性进展数不胜数,只可惜我资质愚钝表示都看不懂。

Kalman滤波器数学原理与应用

Published at发布于:: 2013-08-29   |   Reading阅读:: 3 min
前段时间做Tracking,了解到Kalman滤波,感觉很不错。wikipedia上内容有点多,整理过后发现只有五个核心公式。 原理 Kalman滤波器不断把协方差递归,估算出最优值,并且保留了上一时刻的协方差(Kalman增益),因此它的运行很快,可以随不同的时刻而改变他的值。 首先,我们要引入一个离散控制过程系统,该系统可以用一个线性随机微分方程来描述: $$ \begin{equation} X(k)=AX(k-1)+BU(k)+W(k) \end{equation} $$ 加上系统的测量值: $$ \begin{equation} Z(k)=HX(k)+V(k) \end{equation} $$ 上面式子中,$X(k)$是$k$时刻的系统状态,$U(k)$是$k$时刻对系统的控制量。$AB$是系统参数,对于多模型系统,他们为矩阵。$Z(k)$是$k$时刻的测量值,$H$是测量系统的参数,对于多测量系统,$H$为矩阵。 $W(k)$和$V(k)$分别表示过程和测量的噪声。他们被假设成高斯白噪声他们的协方差分别为$Q$,$R$(假设不随系统状态变化而变化)。 对于满足上面条件(线性随机微分系统,过程和测量都是高斯白噪声),Kalman滤波器是最优的信息处理器。下面则用其自身和自身的协方差来估计系统的最优化输出。 首先,要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统上一状态而预测出现在状态: $$ \begin{equation} X(k|k-1)=AX(k-1|k-1)+BU(k) \end{equation} $$ 上式中,$X(k|k-1)$是利用上一状态预测的结果,$X(k-1|k-1)$是上一状态最优的结果,$U(k)$为现在状态的控制量,如果没有控制量,它可以为0。 至此,系统结果已经更新,但对于$X(k|k-1)$的协方差还未更新,用$Cov$表示协方差则: $$ \begin{equation} Cov(k|k-1)=ACov(k-1|k-1)A^{T}+Q \end{equation} $$ 上式中,$Cov(k|k-1)$是$X(k|k-1)$对应的协方差,$Cov(k-1|k-1)$是$X(k-1|k-1)$对应的协方差,$A^{T}$表示$A$的转置,$Q$是系统过程的协方差。上面两个式子为对系统的预测。 当有了现在状态的预测结果,我们再收集现在状态的预测值。结合预测值和测量值,我们可以得到现在状态$k$的最优化估计值$X(k|k)$: $$ \begin{equation} X(k|k)=X(k|k-1)+K_{g}(k)(Z(k)-HX(k|k-1)) \end{equation} $$ 其中,$K_{g}$为Kalman增益: $$ \begin{equation} K_{g}=Cov(k|k-1)H^{T}(HCov(k|k-1)H^{T}+R(k))^{-1} \end{equation} $$ 于此,已经得到了k状态下的最优估算值$X(k|k)$。但是为了要另Kalman滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下$X(k|k)$的协方差: $$ \begin{equation} Cov(k|k)=(E-K_{g}H)Cov(k|k-1) \end{equation} $$ 其中,$E$为单位矩阵。当系统进入$k+1$状态时,$Cov(k|k)$就是第二个公式的,因此,可以自回归下去。 应用 Kalman滤波器作为一个很好的预测模型,可以根据现有情况来预测未来情况,在做Tracking中则变得很有用处。对于一个对象$S$的Tracking,$S$的pos在域中漂移,利用Tracking可以使得pos平滑稳定。 在OpenCV中提供了CvKalman结构,但是使用起来仍然需要建立模型,前几天我根据上述原理对整个过程进行了封装: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 // // CvKalmanPoint.
Read More阅读更多 »

在堆上分配内存

Published at发布于:: 2013-08-26   |   Reading阅读:: 1 min
之前一直对内存分配上的“stack”和"heap"理解虽说明白但不是很调理。今天写个文章来整理一下。 简单来将,stack上分配的内存系统自动释放,heap上分配的内存,系统不自动释放,哪怕程序退出,那一块内存还是在哪里。所以stack一般指的是金泰分配的内存,heap上一般是动态分配内存。 由于malloc系统函数的内存就是从堆上分配内存,从堆上分配的内存必须手动释放(free)。否则会出现内存泄露。当出现内存泄露时,系统可分配的内存会随着malloc的进一步使用而越来越少,直至系统崩溃。 下面来比较一下二者的区别。 1 2 3 4 5 char *allocStrFormStack(void) { char str[100]; return str; } 1 2 3 4 5 6 7 char *allocStrFromeHeap(int lenth) { char *str; if (lenth <= 0) return NULL; return (char *)malloc(lenth); } 对于第一个函数,函数返回时str所占用的内存被系统所释放,因此,返回值不可被使用。第二个函数使用malloc在堆上分配了内存,因此函数返回时,该段内存并不会因为函数的出栈而释放该内存,从而返回的地址正确。但是一旦不使用free释放或者不小心将指针所移走将会造成内存泄露。

MFC系列(一)创建空白窗口

Published at发布于:: 2013-08-26   |   Reading阅读:: 2 min
首先,我们需要创建一个MFC的项目。 创建完成后,我们点击下一步来到如图所示的设置界面,选择单个文档,取消文档/视图结构支持,取消使用 Unicode 库。 点击下一步,选择无数据库支持。再点击下一步,主要框架仅勾选最小化框和系统菜单,并选择使用菜单栏和工具栏,然后直接点击完成。 在右侧我们可以看到解决方案资源管理器中的文件列表。 直接运行程序会发现已经自行生成了很多内容,包括菜单栏等,下面我们删除它。 我们的项目名称为MFCTest,因此在MFCTest.cpp中,函数BOOL CMFCTestApp::InitInstance()的最后三行代码为自动生成的代码: 1 2 3 4 // 唯一的一个窗口已初始化,因此显示它并对其进行更新 pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); return TRUE; 我们将其改为: 1 2 3 4 5 // 调整窗口大小 m_pMainWnd->SetWindowPos(NULL,0,0,811,632,SWP_NOMOVE); //800*600 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; 更改后的代码将窗口渲染为811*632的大小,而实际上用于显示的部分仅800*600。 在文件MainFrm.cpp中,找到函数 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct): 可以发现为了兼容性和创建各种控件已经生成了很多的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWndEx::OnCreate(lpCreateStruct) == -1) return -1; BOOL bNameValid; if (!
Read More阅读更多 »

在 Mac 中配置OpenCV

Published at发布于:: 2013-08-26   |   Reading阅读:: 2 min
笔者初次配置Mac下的OpenCV过程中花了很多精力,出现了很多状况,这些状况在互联网上根本不存在统一说法甚至没有,关于Mac下的OpenCV的各类文献都年代久远且OpenCV更新换代较快导致它们都严重过期。本文则希望能够帮助初次配置OpenCV for Mac少走弯路。 本文平台:Macbook Air 2013 OS X 10.8.4, OpenCV 4.6.1 本文时间:2013-08-26 方法已经过期, 可供观赏, 请不要模仿 第一步:安装Xcode及关键组件 OpenCV在Mackintosh中的配置不同与windows,需要自行在Mac下编译OpenCV。首先我们要保证完整的安装好Xcode。之所以是要求完整,是因为在App Store中下载的Xcode很多组建并未安装成功,在菜单栏中:Xcode-Preferences-Downloads-Components,安装Command Line Tools,安装完成这个后我们才能在接下来的步骤(CMake阶段)顺利进行。 第二步:安装、配置Homebrew和cmake 经常使用Ubuntu的同志们都知道sudo apt-get install命令,Mac下知名的有Homebrew(http://brew.sh/)、Macport。Homebrew使用的是ruby比macport更为优越,因此我们安装Homebrew,打开Mac下的终端,输入: 1 ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" 安装完成后,继续输入: 1 2 brew selfupdate brew install cmake 第三步:编译与安装OpenCV 由于brew中的OpenCV做过调整,无法直接使用brew install opencv直接安装opencv,因此安装完cmake后,在官网(http://opencv.org/)上下载适用于Mac平台的源。管网上的下载对于新手来说或许具有迷惑性,有一个OpenCV for linux/Mac,还有一个 OpenCV for iOS(这个适用于在iOS平台上的开发),我们是Mackintosh自然选择前者。 解压完成后会看到上图所展示的文件夹,在终端中使用cd和ls两命令配合进入该文件夹中,例如:我的opencv位于如图位置: 在终端中,进入该目录下:(注意:由于我已经编译完成过,所以多了一个build文件夹) 这时通过cmake来编译opencv: 1 2 3 4 5 mkdir build cd build cmake -G "Unix Makefiles" .
Read More阅读更多 »

从两个例子谈起:条件收敛与一致收敛的深刻背景分析

Published at发布于:: 2013-07-29   |   Reading阅读:: 1 min
条件收敛和一致收敛 无穷级数理论作为一种工具很有它发明(我们不去讨论它到底是发明还是发现)的必要性。 而一致收敛的引入在现在的数学分析教材上已经变得彻底避而不谈。我们先来讨论一下条件收敛引入的必要性。 我们先来看一个例子,我们知道: $$ f(n) = 1 - \frac{1}{2} + \frac{1}{3} - \cdots + \left( -1 \right)^{n+1}\frac{1}{n} + \cdots = \ln 2 $$ 我们把左边的式子做一些小小的变动,我们把交换一些项的顺序那么: $$ \begin{split} f(n) &= 1 - \frac{1}{2} + \frac{1}{3} - \frac{1}{4} + \frac{1}{5} - \frac{1}{6} + \frac{1}{7} \cdots + \left( -1 \right)^{n+1}\frac{1}{n} + \cdots \ &= \left( 1 - \frac{1}{2} \right) - \frac{1}{4} + \left( \frac{1}{3} - \frac{1}{6} \right) - \frac{1}{8} + \left( \frac{1}{5} - \frac{1}{10} \right) - \frac{1}{12} + \cdots \ &= \frac{1}{2} - \frac{1}{4} + \frac{1}{6} - \frac{1}{8} + \cdots \ &= \frac{1}{2} f(n) \ &= \frac{1}{2} \ln 2 \end{split} $$
Read More阅读更多 »

大一总结

Published at发布于:: 2013-07-10   |   Reading阅读:: 1 min
我发现我这人好像特别好这口,大一生活已经过去了,回头想想高考填志愿似乎还是昨天的事情,转眼就要开始迎接学弟学 妹们了。我想是时候该模糊的简短的总结总结这一年的所谓风雨兼程了。 生活 开篇自然应该从校园生活谈起吧,大学开学的时候有一个非常“仁慈”的销售小姐这么问我:“你准备怎样度过你的大学四年?”当时我毫不犹豫的回答到:“学习”。我至今都十分清晰的记得我当时的心态(现在回想起来这位销售小姐期望我回答她想要拓宽人脉找到好的工作之类的,因为这样我这个客户就会自然而然的跳进她的圈子里),我因为某些历史原因进了计算机专业,到这个时候我甚至对计算机这个专业的了解程度趋近于零,尽管高中阶段受同学的影响接触过“Hello World”。所以后来这个销售小姐看我基本上上不了她的圈就以“根本不想和你这种人交流”为由把我给打发走了(或许我确实比较惹人烦呢)。 开始大学生活后我才知道真正感受到“地球Online”的复杂性,我才真正感受到以前的我是生活在天真的梦里。大学里的大学生们代表了一个时代,来自不同地域的同学们怀揣着各自的思想,在大学里产生激烈的碰撞,正在为这个时代创造新的事物。 学习 我是什么时候爱上科学、以至于现在狂热到无法自拔?我已经记不起来了。但是有三个人是脱不了干系的,我的父亲以及我的两位数学老师。我的父亲在我小学的时候代领我领略过从已知到未知(未知的引入),初中老师指点我从实在到虚无(数系的扩充),高中老师指明我从形象到抽象(抽象的结构)。 大学一年中逐渐认识到计算机科学后便一步步思考了太多太多想干的事,但是受到生活上那些逃避不了的事,并没有干出太多重要的事情出来,直到这个学期一半过去了之后才最终选定方向。 回过头来想想这一年某种程度上能够算称得上是虚无缥缈。因为有课的日子上完课回到寝室便打开了电脑,统计下来一个学期花在学习上的日子算下来估计不超过三个星期,剩下的时间便是“消磨”在互联网中。一年中我逐渐认识到了以前我在小县城里面从未感受到的科技氛围。 高三那会儿无非就是每天对着一堆无聊的试卷,甚至我真正接触安卓的时候还才是高二买了Defy,自然也就不知道 Google I/O、WWDC 什么的。这一年中又逐步了解到了很多移动设备的知识(其实就是看了很多很多的评测),介绍这些的人带有不同的观点看法,通过互联网的形式向外界展示,这些不同的观点在我大脑中筛选、重组。通过这些,我甚至还接触到了工业设计、商业等知识,极大限度的满足了我闲暇的无聊时光。 计划 计划匿于心。 写在后面的 Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them.
Read More阅读更多 »

陈老爷子

Published at发布于:: 2013-06-10   |   Reading阅读:: 1 min
我对陈老爷子的了解不过是在各大社交网络上道听途说,不过足矣让我产生对他老爷子的无比敬意,因此我还是想写一篇日志来记一记。 “这是我们三个学期的总结,是我们数学分析课的最后一节,也是我个人的最后一节课!”——陈天权 陈老爷子的数学分析课划上了句号,即便我没有听到过他的课,心里也还是有点失落,不知道为什么,可能就是因为上面的这一句话吧。对于一个年过古稀的老人,讲台上的一生也许比这灯光更加的璀璨吧。 有人说陈老上课太磨蹭,老讲一些数学史什么的,对于我来说,数学史这个东西就是一种数学素养,如果一个人连自己所研究的问题的过去是什么都不清楚,那么那些前车之鉴也就无从得知了。网上的同学们说,陈老上课讲数学史,更多的是对我们这一代的“21世纪的数学家”的一种希冀和展望,希望我们不要重复以往的错误,而要汲取成功的经验: Gottingen的四杰,Gauss,Dirichlet,Riemann,Hilbert,他们一直传承者这所学校的精神衣钵,网上的朋友说陈老总是讲Riemann的故事,包括Hilbert怎样发展Riemann的工作,并且解决了Weierstrass对于Riemann的博士论文提出的问题,可以说这四位数学家的工作都很卓越。这四位都可以称为数学家,他们在数学的各个领域都有很深的研究和很大的建树,奠定了几个世纪的数学发展脉络和基础。 陈省身的老师Elie Cartan,是公认的20世纪伟大的几何学大师,是他创造性的认识到了Grassmann的重线性代数理论的重要性,并且将重线性代数用于发展外微分和外代数。开始的时候,Grassmann的理论并不受到人们的重视,也许除了Mobius之外,同时代的数学家都没有注意。Cartan的理论出来后,依然没有多少人注意。直到Hilbert的大弟子Hermann Weyl将外代数大规模用到自己的工作中,人们才意识到了外微分的重要性。陈省身自己说,当时Cartan给了他三道题,他一道也不会做,“后来,我终于弄懂了Cartan的那一套”。 Newton是Barrow的学生,Newton和Leibniz同时独立的做出了微积分基本定理,但是却为了优先权争得不可开交,后来,Bernoulli在Barrow的讲义中找到了微积分基本定理的雏形,但是这场争端并没有因为这个而停下。Newton的朋友一起攻击Leibniz集团,说他抄袭了Newton的文章……从历史的发展上面,这场战争没有真正的赢家,欧洲大陆上的数学家们接受了Leibniz的简单的符号,于是在他之后诞生了像Euler,Lagrange,Laplace,Legendre,Gauss等等的大数学家,而在英伦三岛上面却没有能与这些人相提并论的哪怕一位数学家。 Einstein花了七年的时间搞懂了Riemann几何,当时他去向他的老师Minkowski询问有关相对论的想法,Minkowski告诉他需要去看Riemann几何。七年后,当他把自己的成果弄成一个小册子给当时的量子力学家Max Bone看的时候,Max正在旅行结婚,由于总是研究这个小册子,Max的新娘甚至发火了…… 数学是一种科学的科学,更是一种文化,与其说数学是一种科学,不如说数学是一门数的哲学。我觉得,也许陈老想要告诉我们的就是这样一种理念吧。网上的同学说他们有一次的答疑课上,陈老告诉他们,他从59年第一次站上讲台讲习题课,到今年已经有52个年头了,清华北大都呆过,今年应该是最后一年了。后来陈老笑着让他们给他的书提提意见,他好回去修改。听到这里,瞬间有些心酸了。为祖国健康工作五十年,他,是一个标杆。实话说,当时我在贴吧里面听到网友推荐陈老的这套讲义时,第三本还没出版。拿到头两本的时候,刚开始真心很难,很难,难到难以置信,国内没有任何一本书能够比得过陈老的这本。所以后来第三册出版的时候我迫不及待的在网上唯一能买到的网站上下了单。等了半个月的平邮才拿到第三册。拿到的时候确实很兴奋。毕竟从那书后面一长串的参考书目,陈老在这本书上倾注了很多的心血。即使没有见过这样一个老师,能够读到他的书,觉得没有白白度过!

物理世界是离散的却为什么可以大量的使用微分和积分?

Published at发布于:: 2013-05-27   |   Reading阅读:: 1 min
学习物理的时候可能会有如下疑问: 1、难道物理上可以证明不可测点集的测度为0吗? 2、或者说物理的核心理念仅仅在于构建数学模型却只在乎实验结果是否吻合? 3、究竟是数学物理模型决定了这个世界,还是这个世界决定了数学物理模型,如果我们用一堆连续的理论得出了一切都是离散的结论? 以下内容转载自: http://www.guokr.com/question/465025/ https://www.zhihu.com/question/21274309 至于物理世界到底是连续的还是离散的,目前还暂无定论,相关的实验还在进行中(貌似是哪一期《环球科学》上看到的,用的是Michelson干涉仪的一个超级强化版)。 所谓物理世界是连续的,不要被“量子力学”所误导。“量子”说的只是本来认为是连续的一些量_在一定的条件下_量子化了。例如束缚于原子内的电子,其能量是量子化的,但是自由电子的能量还是可以任意连续取值的。事实上,量子场论甚至把一些经典意义上离散的东西连续化了,例如“点粒子”。 因为说白了讲,量子力学的核心——薛定谔方程,是连续的,而它的量子化性质,是我们给它加以定态限制后才显现出来的。 这里要说说普朗克长度和普朗克时间。顾名思义,普朗克长度是由普朗克同学提出的,而它的起因是这位同学比较懒,希望计算时不要捣鼓那么多的物理常数,因此创造了一个新的单位制,其中G啊c啊什么的都等于1(详见http://zh.wikipedia.org/wiki/普朗克單位制)。而普朗克长度和普朗克时间即是其中的长度和时间单位。 由于在SI单位制下,普朗克长度同时包含了引力常量与普朗克常量,它的尺度很自然地便有了一定的物理意义。通行的解释是:在小于普朗克尺度的空间内,引力将会表现出量子效应。然而广义相对论已经把引力与时空画上了等号,因此这句话可以转述成:在小于普朗克尺度的空间内,时空将会表现出量子效应。 …由此而推出“时空是离散的,其基本单位是普朗克长度和普朗克时间”,似乎还不是那么令人信服(再次强调,“量子效应”不等于“xxx是量子化的”)。 退一步的说法是:小于普朗克尺度的时空不是现有理论(量子力学+广义相对论)所能描述的,对它的理解,有待于更好的量子引力理论。 弦论,就我的理解,试图通过为小于普朗克尺度的时空增添维度来解决这一问题。 其他众多理论我不熟悉,但认为时空确实是量子化的理论肯定是有的。好像有一个就叫“格点量子力学”,它的离散性可是写在名字里的。 如果时空真的是离散的,那么理论上我们就可以使用计算机搭建格点模型精确地模拟出一个“小”宇宙。而如果上述为真,那么我们的宇宙本身便很有可能是一个程序模拟。继续推下去,一个有趣但不那么严谨的结论便是:由于不管是连续还是离散的宇宙的智慧生物理论上都有能力模拟出一个离散的宇宙,因此随便挑一个宇宙(例如我们这个),它是离散的的概率要远大于它是连续的的概率。 至于如果宇宙真是离散,为何能使用微积分?早先物理学家还认为物质是连续分布的呢,他们推出的连续体力学、流体力学等等的结论,不是现在还适用吗?还是一个近似以及我们关心的精度的问题。 然而诚然对离散分布的物质不能进行积分,我们必须考虑一个尺度问题。一般来说,在宏观尺度(阿伏加德罗常数)上,连续和离散的区别已是微乎其微了。个别原因,在于物理上的“微元”,与数学上的dx, dt的含义是不同的。物理上的微元不需要严苛地趋向于0,它只需相对我们关心的尺度非常非常小就可以了(“无穷大”也有同样的情况)。譬如研究流体力学,我们往往会取一小块“质元”当作dm。然而就这一块质元可能就包含了几万亿个分子——这没关系,只要相比我们关心的尺度($10^{23}$个分子)小得多就行了。如果非要一个一个分子去分析,岂不是要烦死? 所以但凡你看到一个物理的微分方程,你都要明白它实质上是一个差分,只是因为∆足够小,我们便把它换成了d以简化计算(实际上,很多物理方程的导出,就是循着“先差分,再把所有∆换成d”的做法来的)。换言之,物理方程必然是有一定的尺度范围的——不管这范围是已知还是未知。你硬要把描述宏观物体的热力学方程套到一两个原子组成的系统上,不失效才怪呢。 那么多小是“足够小”——或者说,多大的尺度是“足够大”?有时我们是通过定性地比较一些“标准尺度”,例如上面一直谈及的阿伏加德罗常数,例如普朗克长度和普朗克时间。当然更多情况下我们可以通过实验验证。
23 24 25 26 27 28 29 30 31
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%