费曼路径积分思想的发展(四)
By 苏剑林 | 2012-12-27 | 38722位读者 | 引用4、量子场论中的泛函方法
路径积分出现之初,大多数物理学家反映都很冷淡,甚至怀疑它的正确性。这一方面是对路径积分方法的陌生与误解所致。在泊珂淖会议上,玻尔就把费曼图误解成粒子运动的轨迹,并对之进行了尖锐的批评。([19],P.459)另一方面,费曼并没有用公理化的方法,从作用量或拉格朗日量出发系统地推导出费曼规则,他是靠经验、猜测、检验和比较来给出与各种图相应的规则的。尽管如此,费曼却能把他的方法推广到当时热门的介子理论,并且只需一个晚上就可解决他人用正则哈密顿方法要用几个月的时间才能解决的问题。费曼方法的有效性,使戴逊大为惊讶,并促使他相信路径积分“必定是根本上正确的”([1],P.54)理论。随之,戴逊便决定把“理解费曼(的思想)并用一种他人能理解的语言来加以阐述”([1],p.54)作为自己的主要工作。1948年,戴逊成功地证明了朝永振一朗、施温格和费曼三人的理论“在其共同适用领域内”[25]的等价性。费曼的粒子图像的路径积分方法由此改头换面,变成了场论形式的泛函积分方法。
当Matlab遇上牛顿法
By 苏剑林 | 2013-05-22 | 58987位读者 | 引用牛顿法是求方程近似根的一个相当有用而且快捷的方法,我们最近科学计算软件课程(Matlab)的一个作业就是编写求方程近似解的程序,其中涉及到牛顿法。我们要实现的目标是,用户输入一道方程,脚本就自动求出根来。这看起来是一个挺简单的循环迭代程序,但是由于Matlab本身的特殊性,却产生了不少困难。
Matlab是为了数值计算(尤其是矩阵运算)而生的,因此它并不擅长处理符号计算。这就给我们编程带来了困难。在网上随便一搜,就可以发现,网上的Matlab牛顿法程序都是要求用户同时输入方程及其导函数,这显然是不方便的,因为Matlab本身就具备了求导功能。下面我们来分析一下困难在哪里。
我们要实现的最基本功能是定义一个函数,然后可以根据该函数求具体的函数值,并且自动求该函数的导数,接着求导数值。这些看起来很基本的功能在Matlab中却很难调和,因为Matlab的“函数”定义很广,一个具有特定功能的M文件叫“函数”,一个运算式$f(x)$也可能是一个函数,显然后者是可以求导的,前者却不行,所以Matlab一刀砍——不能对函数求导!!
月底回家看彗星C/2012 S1 (ISON)
By 苏剑林 | 2013-11-01 | 23488位读者 | 引用今年的天象中的“重头戏”——C/2012 S1 (ISON)彗星将在月底闪亮登场!
先贴出来自scully.cfa.harvard.edu的数据:
Date TT R. A. (2000) Decl. Delta r Elong. Phase m1 m2
2013 11 24 14 45 42.7 -18 53 56 0.8693 0.3002 17.1 104.3 3.0
2013 11 25 15 01 27.3 -20 05 10 0.8819 0.2551 14.3 107.0 2.5
2013 11 26 15 18 04.6 -21 09 58 0.8998 0.2058 11.4 109.3 1.8
2013 11 27 15 35 58.3 -22 05 30 0.9244 0.1502 8.2 110.4 0.7
2013 11 28 15 56 28.2 -22 43 29 0.9594 0.0826 4.6 106.9 -1.3
2013 11 29 16 23 17.5 -19 52 57 0.9762 0.0322 1.8 107.7 -4.5
2013 11 30 16 21 22.4 -16 20 32 0.9125 0.1145 5.3 127.4 -0.2
2013 12 01 16 19 11.8 -13 59 07 0.8681 0.1757 8.1 128.1 1.2
2013 12 02 16 17 23.9 -11 56 02 0.8309 0.2281 10.6 127.3 2.0
2013 12 03 16 15 54.3 -10 00 54 0.7980 0.2754 13.0 126.1 2.5
Project Euler 454 :五天攻下“擂台”
By 苏剑林 | 2014-06-27 | 28564位读者 | 引用进入期末了,很多同学都开始复习了,这学期我选的几门课到现在还不是很熟悉,本想也在趁着这段时间好好看看。偏生五天前我在浏览数学研发论坛的编程擂台时看到了这样的一道题目:
设对于给定的$L$,方程
$$\frac{1}{x}+\frac{1}{y}=\frac{1}{n}$$
满足$0 < x < y \leq L$的正整数解共有$f(L)$种情况。比如$f(6)=1,f(12)=3,f(1000)=1069$,求$f(10^{12})$。
这道题目的来源是Project Euler的第454题:Diophantine reciprocals III(丢潘图倒数方程),题目简短易懂,但又不失深度,正符合我对理想题目的定义。而且最近在学习Python学习得不亦乐乎,看到这道题目就跃跃欲试。于是乎,我的五天时间就没有了,而且过程中几乎耗尽了我现在懂的所有编程技巧。由于不断地测试运行,我的电脑发热量比平时大了几倍,真是辛苦了我的电脑。最后的代码,自我感觉已经是我目前写的最精彩的代码了。在此与大家共享和共勉~
上述表达式是分式,不利于编程,由于$n=\frac{xy}{x+y}$,于是上述题目也等价于求$(x+y)|xy$(意思是$x+y$整除$xy$)的整数解。
用PyPy提高Python脚本执行效率
By 苏剑林 | 2014-06-11 | 23465位读者 | 引用在《两百万前素数之和与前两百万素数之和》中,我们用Python求了前两百万的素数和以及两百万前的素数和,并且得到了在Python 3.3中的执行时间如下:
两百万前的素数之和:
142913828922
time: 2.4048174478605646前两百万的素数之和:
31381137530481
time: 46.75734807838953
于是想办法提高python脚本的执行效率,我觉得在算法方面,优化空间已经比较小了,于是考虑执行器上的优化。在搜索的无意间我看到了一个名词——Psyco!这是python的一个外部模块,导入后可以加快.py脚本的执行。网上也有《用 Psyco 让 Python 运行得像 C一样快》、《利用 psyco 让 Python 程序执行更快》之类的文章,说明Psyco确实是一个可行的选择,于是就跃跃欲试了,后来了解到Psyco在2012年已经停止开发,只支持到Python 2.4版本,目前它由 PyPy所接替。于是我就下载了PyPy。
两百万前素数之和与前两百万素数之和
By 苏剑林 | 2014-06-10 | 69302位读者 | 引用[追溯]封装界传奇人物
By 苏剑林 | 2014-07-02 | 19134位读者 | 引用转载理由:现在的deepin和ylmf(已经改为StartOs)都已经在制作自己的Linux,而当初它们都是制作GhostXp的大家。我的初中,即2009年以前,是GhostXP流行的时代,而我当时也加入了这一行列中,发表过一些GhostXP的作品。后来随着时代的发展,XP也就慢慢退出了舞台。我也就随之退出了这个舞台,也因此得以专注科学。但是,几乎所有我的电脑知识,都积累于那个时期,因为为了完成一个系统的制作和推广,需要懂得的电脑技术很多很多,我也得到了充分的锻炼。下面列举的一些人,都是当年GhostXP界的神话人物,有些我并不认识,但其名在当时就如雷贯耳;有些人在当时还十分幸运地加上了他们的QQ。这篇文章实际上已经是很久已经的了,但还是值得回味过去的时间,以此为我的初中时代留下一些回忆。
强大的整数数列网站OEIS
By 苏剑林 | 2014-07-17 | 38099位读者 | 引用OEIS?:http://oeis.org/
近段时间在研究解析数论,进一步感觉数论真是个奇妙的东西,通过它,似乎数学的各个方面——离散的和连续的,实数的和复数的,甚至物理的——都联系了起来。由此也不难体会到当初高斯(Gauss)会说“数学是科学的皇后,数论是数学的皇后。”了。今天,由于在研究素数的个数的上下界问题时,需要思考组合数
$$C_{n}^{2n}=\binom{2n}{n}=\frac{(2n)!}{n!\ n!}$$
最多能被2的多少次方整除。直觉告诉我,次数应该是随着$n$的增大而增大的,但事实却不是,比如$C_{15}^{30}$能够被16整除,但是$C_{20}^{40}$却最多只能被4整除,有种毫无规律的感觉,于是到群里问问各大神。其中,wayne提出
这个可以写个小程序算出一些数据,再在oeis上搜搜
最近评论