西西河

主题:【原创】随便聊聊算法、应用数学和数学 -- hokmen

共:💬39 🌺41 新:
分页树展主题 · 全看首页 上页
/ 3
下页 末页
  • 家园 【原创】随便聊聊算法、应用数学和数学

    -----BEGIN PGP SIGNED MESSAGE-----

    Hash: SHA1

    随便聊聊算法、应用数学和数学

    下面仅仅是从我自己的观察和结合一些历史所得出的一点点体会。

    似乎很多学校的物理系,其数学课程之多和难,很出名。因而物理系的人往往能比CS、EE、economics出身的人能更娴熟地运用数学这个工具。

    一部分理工科学生对数学工具的崇拜往往来源于这样的历史:数学和应用数学这两个学科在物理、化学这两个重要学科的发展过程中起了举足轻重的作用。但崇拜数学工具并不代表他们能比较透彻地掌握数学这个学科里,像极限、集合、函数、概率论等比较基础的科目。就拿概率论来说说。概率论内的一些知识,和基于概率论的数理统计、随机过程在CS、EE的领域内很有用,很好用,于是他们就不假思索地拿来就用,随便用,到处用。

    但从学科设置上,应用数学和它的基础──数学,现在已经是两门完全不同的学科。我觉得,由于物理本身的需要,物理系的人大多对数学这门学科的理解,要远比对它的上层建筑──应用数学的学习更深刻。也就是说,物理系的人能凭着他们对数学的理解能力,制作和改良、改造他们所需要的应用数学和计算科学这两样重要的工具。因此,我可以说,除了数学系的人,CS、EE、economics的人(当然这里面也包括我自己),向物理系出身的人讨教数学,就像业余选手向专业选手请益运动常识。

    我觉得,现代计算机科学的理论基础是应用数学,其核心是算法,物质基础是物理学。也许,像冯.诺依曼、图灵和高德纳这样的先驱在为计算科学、计算机科学奠基和添砖加瓦的时候,大概就是二战和二战后的50、60年代,他们并没有想像到计算机这个工具会普及到几乎每个学科,经济领域里的每个行业,甚至每个人的衣食住行都能得益于计算机的帮助。这些先驱们已经是数学家或者物理学家,或者两者兼具,后来人们才称他们是计算机科学的奠基人。我现在可以理解到,为什么高德纳的算法书已经出了三卷,那么长那么厚,老高还在继续添加新的内容、新的章节。这对于一位功底深厚的数学家来说太正常了:制作工具的原材料有了,大概怎么制作也很清楚,于是在遇到问题和解决问题的过程中需要什么样的工具,就能制作出什么样的趁手、合用,并且别人也觉得很好用的工具。这也不难理解,一个个算法的制作过程,对于高德纳这样的数学家来说,就像我们所知道的那些工厂制作山寨机那样容易。而且这些工具对于当时的人来说还很新颖,很时尚,一直用到现在,甚至可能未来几十年都非常好用。

    我不是CS、EE出身的,只有个economics小本的学位,希望版上一帮人砸砖的时候轻一点,最好能砸点玉石之类。(en,最后那句还是学西西河的。)

    本文是在本版发出来的第一篇用GnuPG数字签名的文章,以示郑重。像我几年前开始写,还没写完的《Telnet-based BBS八卦》一样(顺便做广告),本文的发布与再发布须遵循Gnu Free Documentation License(http://www.gnu.org/licenses/fdl.html)。

    Hokmen Chan

    2008年9月6日

    ======

    PGP Public Key: http://hokmen.chan.googlepages.com/hokmen.pub.asc

    Finger Print: 86C5 7EAC 112A 309F EFC0 41A4 3D2E 60BB FD79 0443

    ======

    -----BEGIN PGP SIGNATURE-----

    Version: GnuPG v1.4.6 (GNU/Linux)

    iD8DBQFIwurGPS5gu/15BEMRAgjcAJ9yX5ICR5ZvcQpFCMGJmINU9IbIdgCeIPz2

    DOC7tL4SwWcQQtRRs0pKs0U=

    =yzXB

    -----END PGP SIGNATURE-----

    • 家园 高德纳的算法书

      我有两本,看过第一本的一半不到的时候,然后我在那个类似汇编的语言面前彻底崩溃了

      是很经典的书,里面的东西也很有用,但是用那个连实践的地方都找不到的语言实在是太不爽了

      我很期待能有高级语言版本的,或者至少给我一个可以编译的编译器让我看看运行的结果吧

      我找过,可能因为功力太差,没找到

      555

      说起来谁能给我一个那个语言的编译器的下载连接啊,这里的各位老大们

      • 家园 我们当时汇编学的就是这个mmix

        俺在德国的Uni. Tübingen. 当时这个mmix搞得所有同学当时是怨声载道,苦不堪言,图书馆一共就两本参考书快被抢疯了。网上有关资料相对很少,中文的就更不好找了。国内似乎清华也是学这个。

        给您贴一个当时教授给的自动安装脚本。

        # Wie man einen MMIX-Cross-Compiler hochzieht

        # (OK, 04.03.2006)

        # Hier wird alles hin installiert! Bitte anpassen

        export MMIXHOME=/gpp

        if test "$MMIXHOME" = "aendern" ; then

        echo "Bitte Installationspfad anpassen!"

        exit

        fi

        # Ueberpruefen ob g++, cweb und wget im Pfad sind

        if test ! `which g++`; then echo "g++ ist nicht im Pfad!"; exit; fi

        if test ! `which cweave`; then echo "cweave ist nicht im Pfad!"; exit; fi

        if test ! `which wget`; then echo "wget ist nicht im Pfad!"; exit; fi

        # Zutaten:

        # - gcc

        # - binutils

        # - mmix

        # - newlib

        GCC=gcc-4.0.2.tar.bz2

        BINUTILS=binutils-2.16.1.tar.gz

        MMIX=mmix-20050922.tar.gz

        NEWLIB=newlib-1.14.0.tar.gz

        # Man lege ein Verzeichnis an, das den MMIX-Kram aufnehmen soll:

        #

        export MAKE="make"

        export PATH=$MMIXHOME/bin:$PATH

        mkdir -p $MMIXHOME

        echo "Preparing to install MMIX tools in $MMIXHOME"

        mkdir -p $MMIXHOME/bin

        mkdir -p $MMIXHOME/src

        cd $MMIXHOME/src

        # Zuerst besorgen wir alle Pakete per wget:

        #

        echo ""

        echo " --- Download --- "

        echo "Falls das Skript beim Download abbricht, mu wahrscheinlich ein Proxy genutzt werden."

        echo "Setzen sie dazu die Umgebungsvaraiblen 'http_proxy' und 'ftp_proxy'!"

        echo ""

        echo "Downloading $MMIX..."

        #wget -q http://www-cs-faculty.stanford.edu/~knuth/programs/$MMIX || exit

        echo "Downloading $BINUTILS..."

        #wget -q http://ftp.gnu.org/gnu/binutils/$BINUTILS || exit

        echo "Downloading $GCC..."

        #wget -q http://ftp.gnu.org/gnu/gcc/gcc-4.0.2/$GCC || exit

        echo "Downloading $NEWLIB..."

        #wget -q ftp://sources.redhat.com/pub/newlib/$NEWLIB || exit

        # Dann bauen wir die MMIX-Tools.

        # Dummerweise ist das TAR-Archiv etwas ungeschickt verpackt. Daher zuerst

        # ein Verzeichnis anlegen und dort auspacken, sonst hat man den ganzen Klump

        # in $MMIXHOME/src liegen.

        echo "Unpacking MMIX ware..."

        mkdir mmix-ware

        cd mmix-ware

        tar zxf ../$MMIX || exit

        # Dann bauen und installieren wir alle notwendigen Werkzeuge und kopieren

        # sie an die richtige Stelle:

        # (CWEB muss dafuer installiert und im Pfad sein!)

        echo "Building MMIX ware..."

        $MAKE all || exit

        cp mmixal mmix mmotype mmmix $MMIXHOME/bin

        # Dann bauen wir die binutils und einen Cross-GCC:

        # Man packe GCC und binutils aus und lege passende

        # build-Verzeichnisse jeweils daneben:

        cd $MMIXHOME/src

        echo "Unpacking GCC..."

        tar jxf $GCC || exit

        echo "Unpacking binutils..."

        tar zxf $BINUTILS || exit

        mkdir build-gcc build-binutils

        # Man konfiguriere, baue und installiere die binutils fuer mmix:

        echo "Building binutils..."

        cd build-binutils

        ../binutils-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls || exit

        $MAKE all install || exit

        # Man tue das selbe fuer den gcc:

        echo "Building binutils..."

        cd ../build-gcc

        ../gcc-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls --enable-languages=c,c++ || exit

        $MAKE all-gcc install-gcc || exit

        # Dann brauchen wir noch die newlib.

        # Die packen wir aus, konfigurieren und bauen sie:

        cd $MMIXHOME/src

        echo "Unpacking newlib..."

        tar zxf $NEWLIB || exit

        mkdir build-newlib

        echo "Building newlib..."

        cd build-newlib

        ../newlib*/configure --target=mmix --prefix=$MMIXHOME || exit

        $MAKE all install || exit

        # Fertig.

        echo ""

        echo ""

        echo "Ready."

      • 家园 您看看这个行不行

        外链出处

        这个东西好像是MMIX的simulator

        顺便崇拜您一下,竟然有写MMIX程序的欲望,我看一会儿就看不下去了

    • 家园 事实并不如你所想象的那样

      如果光说数学知识的多寡或应用,物理系的未必比得上EE CS等。

      就我所知,搞物理的人,除了某些做统计场论和弦论的,对数学的理解大多还停留在十九世纪,有的甚至还在十八世纪。

      他们对现代数学的态度,不是毫无保留顶礼膜拜,就是狂妄自大不屑一顾。其中后者居多。

      形式化而言,反而是经济学最像现代数学。翻开讲微观经济,特别是关于general equilibrium的书,通篇的 Definition, Axiom, Proposition, Lemma, Theorem, Example···。原因也简单:这些理论建于20世纪中叶,那时的数学书都布尔巴基化了,而建立理论的人如Yves Balasko,Werner Hildenbrand,Herbert Scarf都是数学博士。

      而做物理的,历史包袱太大。明明有更强大的方法,偏只能用老掉牙的工具。

      没办法,经典文献就是这么写的,你的同事也用这个写文章,你老师的老师就是这么教你老师的,你老师就是这么教你的。当你发现有新方法,打开书后,却发现是本天书,一切还得从最基础的学起,只得放弃。于是你也这样教你的学生。

      • 家园 花~

        谈到一般均衡怎能漏了cole Normale de Musique de Paris的Gérard Debreu ,嘿嘿

        • 花~
          家园

          Debreu也是先学数学,再转经济。

          好久不见,近来可好?

          • 家园 近来比较忙,来的少了。

            Doob兄别来无恙?

      • 家园 似乎是言过其实了。

        这谈不上不是多么开创性的工作吧。数学在于物理归根结底是个工具,好用性易用性是第一位的。严格性不那么重要。

        《数学原本》有七千多页,是有史以来最大的数学巨著。彻底追求严格性和一般性的叙述方法被称为“布尔巴基风格”。

        布尔巴基对严格性的强调在当时产生了很大的影响。这与当时儒热-亨利·彭加莱所强调的数学要依靠自由想象的直觉的说法分庭抗礼。布尔巴基的影响力随时间而减弱,一个原因是由于布尔巴基的抽象并不显得比发明者原初的想法更为有用,另一个原因是因为没有包含像范畴论等重要的现代数学理论。尽管范畴论是由布尔巴基的成员艾伦堡所创立,格罗登迪克所推广的,但是如果要容纳范畴论,就不得不对已经出版的著作进行根本性的改写。

        尽管布尔巴基的一部分著作在相应的领域成了标准的参考书,但是那种近于严峻的表达方式使其难以成为教科书。布尔巴基书籍的鼎盛时期是在1950和1960年之间,那时很少有适合能用于研究生水平的关于纯数学的教科书。

        布尔巴基引入的记号有: \varnothing ;代表空集,黑板粗体字母表示数集(例如:\mathbb{N}表示自然数集,\mathbb{Q}表示有理数集 ,\mathbb{R}表示实数集,\mathbb{Z}表示整数集),还发明了术语“单射”、“满射”和“双射”。

        布尔巴基讲座在战后立即于巴黎开设,这个讲座接连不断地公开发表了各种综述性论文,这些论文采用一种固定格式,用谨慎的风格写成。

        • 家园 我不明白你的意思

          这谈不上不是多么开创性的工作吧

          你指的是什么?我文中没有提到“开创性的工作”啊,难道你指的是这一句

          那时的数学书都布尔巴基化了

          可能我没写清楚,这句话的意思是说受布尔巴基的影响,数学家写的书都千篇一律地变为

          Definition, Axiom, Proposition, Lemma, Theorem, Example···
          ,继而影响到经济学家。

          • 家园 我指的是这句

            而做物理的,历史包袱太大。明明有更强大的方法,偏只能用老掉牙的工具。

            然而

            布尔巴基的影响力随时间而减弱,一个原因是由于布尔巴基的抽象并不显得比发明者原初的想法更为有用,另一个原因是因为没有包含像范畴论等重要的现代数学理论。

            不见得更强大吧?

            • 家园 我还是没懂你的意思

              你引用我的那句话和下面那段对布尔巴基的评论有什么逻辑上的关系?

              难道你以为布尔巴基在数学抽象化公理化方面的工作就是全部的20世纪的数学成就?

分页树展主题 · 全看首页 上页
/ 3
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河