26 Dec

高维空间的叉积及其几何意义

向量之间的运算有点积和叉积(Cross Product,向量积、外积),其中点积是比较简单的,而且很容易推广到高维;但是叉积不同,一般来说它只不过是三维空间中的东西。叉积的难以推广在于它的多重含义性,如果将向量及其叉积放到张量里边来看(这属于微分形式的内容),那么三维以上的向量叉积是不存在的;但是如果只是把叉积看成是“由两个向量生成第三个与其正交的向量”的工具的话,那么叉积也是可以高维推广的,而且推广的技巧非常巧妙,与三维空间的叉积也非常相似。

回顾三维空间

为了推广三维空间的叉积,首先回顾三维空间的叉积来源是有益的。叉积起源于四元数乘法,但是从目的性来讲,我们希望构造一个向量$\boldsymbol{w}=(w_1,w_2,w_3)$,使得它与已知的两个不共线的向量$\boldsymbol{u}=(u_1,u_2,u_3),\boldsymbol{v}=(v_1,v_2,v_3)$垂直(正交)。从普适性的角度来讲,我们还希望构造出来的向量没有任何“奇点”,为此,我们只用乘法构造。至于叉积的几何意义,则是后话,毕竟,先达到基本的目的再说。

点击阅读全文...

6 Jan

2013年全年天象

Astronomy Calendar of Celestial Events
2013年全年天象

翻译自NASA:http://eclipse.gsfc.nasa.gov/SKYCAL/SKYCAL.html

(北京时间)

2011年版本

2012年版本

日期 星期 时刻 天象

一月
01 二 金星:20.9° W
02 三 08:59 地球过近日点: 0.9833 AU
03 四 21:33 象限仪座流星雨极大: ZHR = 120
05 六 11:58 下弦月
06 日 03:54 月合角宿一(Spica): 0.6° N

点击阅读全文...

4 Mar

平面曲线的曲率的复数表示

开学已经是第二周了,我的《微分几何》也上课两周了,进度比较慢,现在才讲到平面曲线的曲率。在平面曲线$\boldsymbol{t}(t)=(x(t),y(t))$某点上可以找出单位切向量。
$$\boldsymbol{t}=\left(\frac{dx}{ds},\frac{dy}{ds}\right)$$
其中$ds^2 =dx^2+dy^2$,将这个向量逆时针旋转90度之后,就可以定义相应的单位法向量$\boldsymbol{n}$,即$\boldsymbol{t}\cdot\boldsymbol{n}=0$。

常规写法

让我们用弧长$s$作为参数来描述曲线方程,$\boldsymbol{t}(s)=(x(s),y(s))$,函数上的一点表示对$s$求导。那么我们来考虑$\dot{\boldsymbol{t}}$,由于$\boldsymbol{t}^2=1$,对s求导得到
$$\boldsymbol{t}\cdot\dot{\boldsymbol{t}}=0$$

点击阅读全文...

11 Jun

用PyPy提高Python脚本执行效率

《两百万前素数之和与前两百万素数之和》中,我们用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

点击阅读全文...

10 Jun

两百万前素数之和与前两百万素数之和

标题说了两道比较好玩的编程题,如果读者觉得标题绕的让人眩晕的话,那么让我再说得清晰一点:

两百万前素数之和指的是所有不超过两百万的素数的和;
前两百万素数之和指的是前两百万个素数的和。

我是从子谋的blog中看到这道题目的,前一道题目是Project Euler的第10题,后一道则是我跟子谋探索着玩的。关于子谋的研究和代码,大家可以去他的blog上学习。本文分享一下我自己的想法。

点击阅读全文...

22 Jul

初试在Python中使用PARI/GP

BoJone很喜欢Python,也很喜欢数论,所以就喜欢利用Python玩数论了。平时也喜欢自己动手写一些数论函数,毕竟Python支持大整数高精度运算,这点是非常好的;但是,在很多实际应用中,还是希望能有一个现成的数论函数库来调用。之前尝试过数学研发网的HugeCalc库,但是由于各种不熟悉不了了之。后来论坛上的无心老兄推荐了PARI/GP,小试一下,居然在Python上成功调用了。以后再也不用担心Python上的数论计算问题了,呵呵~

点击阅读全文...

1 Sep

从费马大定理谈起(九):n=3

现在可以开始$n=3$的证明了。在实整数范围内n=3的证明看起来相当复杂,而且跟n=4的证明似乎没有相通之处。然而,如果我们在$\mathbb{Z}[\omega]$中考虑$x^3+y^3+z^3=0$无解的证明,就会跟n=4时有很多类似的地方,而且事实上证明比n=4时简单(要注意在实整数范围内的证明,n=4比n=3简单。费马完成了n=4的证明,但是没完成n=3的证明。)。我想,正是这样的类似之处,才让当初还没有完成证明的数学家拉梅就自信他从这条路可以完成费马大定理的证明。(不过,这自信却是失败的案例:拉梅的路不能完全走通,而沿着这条路走得更远的当属库默,但即便这样,库默也没有证明费马大定理。)

证明跟$n=4$的第二个证明是类似的。我们先往方程中添加一个单位数,然后证明无论单位数是什么,方程在$\mathbb{Z}[\omega]$中都无解。这是一个很妙的技巧,让我们证明了更多的方程无解,但是却用到了更少的步骤。事实上,存在着只证明$x^3+y^3+z^3=0$无解的证明,但需要非常仔细地分析里边的单位数情况,这是相当麻烦的。本证明是我参考了Fermats last theorem blogspot上的证明,然后结合本系列n=4的第二个证明,简化而来,主要是减少了对单位数的仔细分析。

点击阅读全文...

19 Aug

从费马大定理谈起(五):n=4

是时候了!

前面用好几篇文章为费马大定理的证明铺设了道路,当然,相当于完整的费马大定理证明来说,这几篇文章只不过是沧海一粟而已。不过,它们已经足够用来完成费马大定理在n=4时的证明了。我们很快会看到高斯整数为n=4所带来的简洁的证明,而这让我们坚信,这一道路可以走得更远。

不定方程$x^4+y^4=z^2$在$\mathbb{Z}[i]$中没有全不为0的解。

点击阅读全文...