雷雨

这些天一直在下雨

前天晚上站在楼顶,看南面的天空,一个闪电接着一个闪电,却听不到雷声,估计距离比较远吧,闪电足足持续了一两个小时,给予我足够的时间去观察它们的形状结构,各种各样都有,实在感叹我们世界的美妙与变化多端。

为什么大块的云层会带上电?也许好多原因吧,比如太阳光线造成的电离,大气运动。当这些能量瞬间释放出来的时候,就形成了千姿百态的电闪雷鸣,给我们的文化添加许多色彩。也许正是闪电启发了人类认识电能,进而一系列的变革,我们今天的文明,没有电能以及相关的衍生,恐怕不比几千年前高明多少。

我看到一滴水凝聚在一个树枝的顶端,几乎是纯圆形,却没有因为重力落向地面。一个个水分子间的拉扯力,表现在我们的宏观世界,造成了水滴的性质。

这滴水里应该包含了足够多的分子,假定一滴水以克为数量级,那么这里包含的分子数大致在10的二十几次方左右数量级,如果用一台计算机来模拟这滴水是否可能?一块现在的显卡每秒能渲染三角形数目大致以亿为级别,cpu就更不用说了,一滴水有万亿亿的级别,就是把世界上的计算机都加起来也基本不可能。

一滴水,一片云,一次闪电,这些简单自然现象背后蕴藏的复杂程度令人咂舌。然而构成我们世界的基础是极其简单,一个个原子,加上电荷,引力,空间时间,还有其他的一些简单事物,通过几条定律方程,构成了我们如此复杂多端的世界,以及拥有自我意志可以思考的人类。

我们是被创造出来的么?我们为什么存在?

预言

今年世界杯最有意思的事情是,未来帝和章鱼哥对球赛的预测,奇准无比。

而我们平时也搞一些类似赌球的游戏,比如猜测结果请吃饭之类。不止足球,很多事情都是类似,这似乎是人们普遍的心态。

在各个古老的文明中,求神问卜,对未来重要事情的预测,似乎都占很重要一席。每一个文明都有类似的于祭司,巫师,先知之类的概念,这些人员都部分或者全部的从事预言的工作,并以此谋生。

预测是如此的普遍且广泛的存在于各个文明之中,必定是有某种更深层次的机制使然。

人的大脑比较复杂,会思考很长一段时间之后的重要事情,假如把这个时间段缩短到几分几秒再来看,似乎显得再也自然不过,比如,门将一个大脚把球开出去,所有队员都知道往前跑,因为大家可以肯定的预测,球将快速飞过中场。这种明显的理所当然的事情,常常被我们忽视而不去思考,在这里,人们同样是对球的走向进行了预测,这种预测跟对球赛结果的预测,似乎有些不同,因为我们根据已知的物理定律,几乎可以百分之百的指出球下一步将出现在哪个位置。但是球赛的结果却是千头万绪,不到最后谁也无法真正断言。

产生这两种不同预测的深层机制应该是相同的,对未来进行预测是人们作为一种生物的本能行为。在遥远的过去,生物为了生存,必须对周围的环境做出相应的反应,对不同的外部环境进行不同判断预测,决定下一步该如何行动。人的大脑会储存以往的经验信息,进行分析判断整理,并对当前环境做出反应。

大致可以认为,预测未来是生物进化出来的求生本能,各自独立发展的文明产生相应的巫师之类的职业,不过是这种深层次原因驱动的一种表现罢了。

近代科学,大部分所做的工作是对这些进行预测的规律进行总结,那些物理定律,数学方程,大多都是经验性的概括推理,只不过在经验领域得到了充分的正确性验证,其实质也许不比那些女巫高明多少。科学在大部分场合,也不过是在做预言,比如航天器未来运行的轨迹,宇宙的过去未来等。

有一种观点是,如果各种初始状态和影响因子都是确定的,抛去复杂度,一切事物的未来某段时间的状态都是可以预测的,这是所谓的拉普拉斯的决定论。之所以做出这种论断,可能是拉普拉斯被数学方程所取得的巨大成功所激励。这种想法很符合我们的想当然的常识,但是后来被量子力学的概率波之类的概念所否定。未来充满几率性很难让人接受,爱因斯坦就一直反对。但如果这样是正确的话,科学就更像巫师般的模棱两可的预言了。

人脑的思考预言,似乎很大程度上建立在推理这个概念的基础上,推理更深层次看来,应该是因果律,由某种先决条件产生相应后果。

经常性的对人的思考模型进行相应的思考(这似乎是个悖论),每次最后都不可避免的归结到因果律。它似乎基本到让人惊讶的地步,从大脑结构上看,神经元的前后传递本身也可能就是为因果律提供了先天的基础。不过因果这种关系隐含了一个假设,就是它必须以时间为前提,这样因果律似乎有了更基本的东西在支撑。

康德说,时间只不过是我们内感官的一种形式罢了。也许正是因为人的思考模式的存在才有时间的概念,对过去的记忆,以及对未来的推测,是这种思考结构上的种种表现。时间和空间这些纯粹概念的存在,是人脑先天的模型。但是因果律这种推理的存在,是先天的纯粹概念,还是时间或者空间的一种表现形式呢?

如果把时间当作基本概念,也许推理作为其表现形式更为自然一些。不过其中应该不可避免的掺杂了其他的因素,很难具体澄清出来。

预言本身就隐含了以时间做为前提,不过是人们无法做出正确推理,而采用的一种安慰形式罢了,我们有个词语叫猜测,就是对这种概念的准确描述。从生物进化的角度来看它,比考虑它的实质更有意义。

噩梦

早上从噩梦中惊醒,天还黑着,翻来覆去睡不着,梦中的情形清晰可见,心里却在想其他事情,一时间绝望,伤心,可惜,怜悯,各种感情纷至匝来,一两个小时的辗转反侧,后来半睡半醒的到了天亮。

我在想梦是如何产生的,大致跟人的想法心情有些关联吧,白天所想,晚上的梦多半与之有些关联。也就是古人所谓的日有所思,夜有所梦了。心情不好,做噩梦的几率也就多一些。

但是我的梦的情形却是与现实毫不相干,惊醒之后,我突然发现一个重要的信息,就是,人思考的时候,大脑是主动状态,而做梦的时候,大脑却处于一个旁观者的角度,如同看电影一般,经历梦中发生的事物。从生物学的角度,也许做梦是大脑某些部分在睡眠中活跃产生,但生物进化如此之久,难道梦没有一些对生物个体影响的进化的因素在内么?我们进化出眼睛来看东西,四肢来行走,也许做梦也有它的目的。

我想到了当初写过的一个马尔科夫链的程序,用来读入一大堆某个作家的文章,然后建立每个词语跟词语跟随的列表,随机的在这些词语链上游走,于是便能输出一段一段的毫无意义的句子,这些句子虽然没有全局的思想上的概念,但似乎能够通顺的读下去,每一句读起来感觉语法上跟这个作家的风格很相似。

人做梦的时候,大脑可能有一个类似于马尔科夫链的算法,用来随机生成预测一些类似现实的事情,每个点上游走的概率跟心情状态有关,这样梦中的一些东西,倒是可以用来增加人的积累经验,预测推断一些发生的事情,加深思想认知。

梦的随机不可知性,如谶语卜言,被人当作神明的指示。各种文明里都普遍把梦当作一种预示,模棱两可,含糊不清的预言。

要想深刻认识梦的原因功能,可能要先从大脑的思考结构模型入手,心理学,生物学,哲学,计算机科学,都有些许关系。在看计算理论和人工智能相关东西时,很容易就会考虑到大脑结构模型的问题,计算机界最具哲学性的一个问题就是,计算机到底能做什么?是不是人思考能达到的事情,计算机都能做?

按照Chomsky hierarchy的结构,大致可以归结出几个能力不同的计算模型,有穷自动机,下推自动机和通用图灵机,计算机的计算能力,是可编程的通用图灵机所达到的,这个计算模型是不是就能达到人的大脑的程度呢?

我一直相信,人脑的结构绝对不会太复杂,只是一个简单的先天模式加上后天的学习。抛去一切经验性的东西,大脑还剩下的是什么?康德认为这些是先天存在于大脑中的纯粹的概念。可能人一出生就被设定好这些模式,甚至,学习认知的方法,也是一种先天存在于大脑中的东西,初生的婴儿,也许有的只是学习的方法。关键在于,这些模式是否能够被计算机先天的写进存储器?然后按照认知的方法执行程序?

梦也许是生物本能模式的一种,但是,它到底是被用来做什么呢?存在的目的又是什么呢?也许前面的一些琐碎的想法,都是用来解释这两个问题的。

写着写着就扯远了,这篇本来是写梦的,改天再写大脑思维相关的东西吧

latex

HTML设计之初,没有考虑到数学公式排版,所以要想在里面添加一些比较复杂的符号就没有标签可以使用,唯一的折衷方法是,利用图片来代替显示,但是这样实在是麻烦。

这种不足很多人都意识到了,W3C的一个recommendation,MathML,就是针对html缺乏数学公式支持提出的,刚发现的时候,我欣喜若狂,没过多久就变成失望了,缘故是,MathML需要浏览器的渲染支持,大部分用户还在使用万恶的IE6,就是现在支持的浏览器,比如最新版的firefox,渲染效果并不好,本来应该很优美的公式,看起来只是大致正确表示出来而已。

MathML最大的弊端是,一个很简单的公式,用标签写起来要浪费一大堆文本,混杂在一起,没有第三方辅助工具的话,很难编辑和阅读。

我一直想,如果能在HTML里面嵌入latex该有多好啊,从语法角度来看,成为W3C标准是没有指望了,但是就像flash一样,能够作为一个插件成为事实上的标准也行啊,这个目标看起来同样很遥远,仔细想想,有几个用户会在web页面上写科学公式呢?

唯一的做法是,把latex作为在服务器端处理的脚本,客户端浏览器请求的时候,自动执行处理,生成相应的图片,就等同于服务器端的php,asp之类的脚本一样,如此就完全不用考虑到不兼容的问题。这种想法很容易被人想到,而且早就有人实现了,这里有一个页面,可以动态生成latex的图片。

wordpress也有相应的支持,提供一个生成latex图像的服务器,把要处理的latex文本作为url里的一个参数传入,就会返回一幅图片,http://l.wordpress.com/latex.php?latex=,后面这个latex=的参数就是latex源数据,只需要加入一个img标签,然后把src写成相应的url,就可支持数学公式的显示。当然,这样毕竟还是麻烦,有时候还要转换url编码,wordpress有一个latex插件,直接支持方括号latex标签,很方便。

下面这个随便写的公式,是个试验

[latex size=”2″]frac{x+sum_{i=0}^{n}{(i^2+int_a^b{3sin^i(x)dx}})}{sqrt[3]{x^2+y^2}piepsilon}[/latex]

看起来效果很不错哦;-)

LHC

一直对欧洲粒子研究中心的印象都很好,不过仅限于计算机领域的一些管窥蠡测,比如,world wide web的创始者Tim Berners-Lee就是CERN的,再据说,CERN的科学家们喜欢用TeX排版。

去年风闻世界上最大的粒子对撞机LHC建好了,开始运行,心里蛮期待的。结果故障频繁出现,吊人胃口,直到一个多星期以前,也就是愚人节的前一天才成功进行第一次碰撞。好吧,既然成功了,我们就擦亮眼睛,看看什么结果,最近有人八卦

近日欧洲物理学会专业期刊Phys. Lett. B以最快的审稿、编辑和出版速度发表了大型强子对撞机ATLAS合作组的首个物理成果。在这篇22页的论文中,从标题到参考文献只占了10页,其他12页用于书写上千位作者和他们的单位,看起来十分滑稽。

这篇论文可以在这里找到,题目为Charged-particle multiplicities in pp interactions at sqrt(s) = 900 GeV measured with the ATLAS detector at the LHC,带电粒子的多样性,具体内容懒得仔细看,估计多半也看不太懂。大致感觉,只是打着LHC的名号,随便翻点花样,功利心居多。

花费如此巨大金钱,人力物力,是否值得,也是见仁见智了,不过感觉科研走到这种地步,丧失初衷居多。科研也许一张纸一支笔,加上兴趣就行了。当然科学家有偏理论研究的,有偏实验的,倒也无可厚非。研究是什么啊,可能也就是几个小孩对一些事物的执着兴趣,捣鼓点小小的经验规律,在大自然的面前,不都是渺小之极么?

现在感觉CERN有点像个迂腐的学术机构,急功近利,忙于出成果。不过,当一个组织变得很大的话,各方面因素影响,也许很多东西都是不可避免的吧。

bezier curve

Bezier曲线很常用,一般2D绘图软件里都有。比如photoshop,flash之类。
它背后的原理简单的超乎想象,体现了数学的美妙。

先从简单的开始,两个点之间进行线性插值。


很容易理解,可以得到

[latex] B(t)=P_0+t(P_1-P_0)=(1-t)P_0+tP_1,tin[0,1] [/latex]

当然这是最简单的情形,如果扩展到三个点该如何插值呢?


从上面图片上可以看到,可以分成三步,从P0到P1进行上面的一维情形,得到点Q0,再从P1到P2,得到Q1,那么就有

[latex]Q_0=(1-t)P_0+tP_1[/latex]
[latex]Q_1=(1-t)P_1+tP_2[/latex]

然后再对Q0和Q1进行线性插值,得到点B

[latex]B=(1-t)Q_0+tQ_1=(1-t)^2P_0+2t(1-t)P_1+t^2P_2[/latex]

t从0到1增加,就得到了一条曲线,如下图


同样可以推广到四个点的情形,这样的曲线中,t的最高幂是三次。三次样条曲线用的最多,因为它提供了足够的可控制性和满足大部分场合的精度,同时又保持了相对的简单。
依照上面的方法,可以得到三次的情形

[latex]B(t)=(1-t)^3P_0+3(1-t)^2tP_1+3(1-t)t^2P_2+t^3P_3,tin[0,1][/latex]

这个时候可以注意到Pi点前面的系数,是不是似曾相识?没错,就是二项式公式。可以看成是相应次幂的[latex](1-t+t)^n[/latex]的展开。这个系数叫做Bernstein多项式。

最常用的三次曲线如下图,其中中间的两个就是控制点,在一些绘图软件里用钢笔拖出来的两条调整曲线形状的直线,就是调节中间两个点的位置。


推广到任意中n的情况

[latex size=”2″]B(t)=sum_{i=0}^{n}{binom{n}{i}(1-t)^{n-i}t^iP_i}[/latex]

[latex size=”1″]=(1-t)^nP_0+binom{n}{1}(1-t)^{n-1}tP_1+..+t^nP_n,tin[0,1][/latex]

不过n大于3的时候就很少用了,除非在一些要求比较高的场合,比如飞机汽车线形的设计。

更多的资料,可以看这里
http://en.wikipedia.org/wiki/B%C3%A9zier_curve