4 Apr

数值方法解方程之终极算法

呵呵,做了一回标题党,可能说得夸张了一点。说是“终极算法”,主要是因为它可以任意提高精度、而且几乎可以应付任何非线性方程(至少理论上是这样),提高精度是已知的迭代式上添加一些项,而不是完全改变迭代式的形式,当然在提高精度的同时,计算量也会随之增大。其理论基础依旧是泰勒级数。

我们考虑方程$x=f(y)$,已知y求x是很容易的,但是已知x求y并不容易。我们考虑把y在$(x_0,y_0)$处展开成x的的泰勒级数。关键是求出y的n阶导数$\frac{d^n y}{dx^n}$。我们记$f^{(n)}(y)=\frac{d^n x}{dy^n}$,并且有
$$\frac{dy}{dx}=\frac{1}{(\frac{dx}{dy})}=f'(y)^{-1}$$

点击阅读全文...

10 Feb

【龟猫记2】之“百合花开”

不是说乌龟和猫吗?怎么又扯到了百合花了?

在老师回家前几天,还把他宿舍里的一盆百合花也给带来了,带来的时候都打着朵儿,现在有两朵已经开了!大家一起来欣赏下?

开放之前的:

百合-1

百合-1

点击阅读全文...

19 Nov

[欧拉数学]素数倒数之和

上一篇文章我通过欧拉数学的方式简单地讲了数论中的“黎曼ζ函数”和“金钥匙”。事实上,这把“金钥匙”与很多问题之间的联系已经被建立了起来,换句话说,“金钥匙”已经插入到了相应的“锁孔”中,数学家的工作就是要把这个金钥匙“拧动”,继而打开数学之门

接下来我们看看如何证明所有素数的倒数之和发散的。在入正题之前,我们得需要看一个引理

无限数列${a_n}$的每一项都大于0,那么$\sum\limits_{n=1}^{\infty} a_n$与$\prod\limits_{n=1}^{\infty} \left(1+a_n\right)$的敛散性相同。换句话说,两者互为充分必要条件!

点击阅读全文...

25 Jul

【翻译】星空之夜:夏季恒星的色彩

笔录:在假期基本上是没有什么机会接触到英语的,平时看的数学物理书一般都是中文版的,因为现在学得还很浅,很少会有非找英语资料不可的时候。不过英语的重要性不言而喻,因此多练习一下还是必须的。突然想起很久没有翻译过文章了,就到《科学美国人》杂志上找了一篇有关夏季星空的小短文来练练笔。在此献丑了。

这个夏天的星空之夜,观星爱好者可以看到恒星发出彩虹般的色彩。
By Joe Rao and SPACE.com

点击阅读全文...

27 Sep

数学基本技艺之23、24(下)

在上一篇文章中我们得到了第23题的解,本来想接着类似地求第24题,但是看着23题的答案,又好像发现了一些新的东西,故没有继续写下去。等到今天在课堂上花了一节课研究了一下之后,得到了关于这种拟齐次微分方程的一些新的结果,遂另开一篇新文章,与大家分享。

一、特殊拟齐次微分方程的通解

在上一篇文章中,我们求出了拟齐次微分方程$\frac{dy}{dx}=x+\frac{x^3}{y}$的解:
$$(2y+x^2)(x^2-y)^2=C$$
或者写成这样的形式:
$$(y+\frac{1}{2} x^2)(y-x^2)^2=C$$

点击阅读全文...

9 Aug

素数之美2:Bertrand假设的证明

有了上一篇文章的$\prod\limits_{p\leq n}p < 4^{n-1}$的基础,我们其实已经很接近Bertrand假设的证明了。Bertrand假设的证明基于对二项式系数$C_n^{2n}$的素因子次数的细致考察,而在本篇文章中,我们先得到一个关于素数之积的下限公式,然后由此证明一个比Bertrand假设稍微弱一点的假设。最后,则通过一个简单的技巧,将我们的证明推动至Bertrand假设。

二项式系数的素因子

首先,我们考察$n!$中的素因子$p$的次数,结果是被称为Legendre定理的公式:

$n$中素因子$p$的次数恰好为$\sum\limits_{k\geq 1}\left\lfloor\frac{n}{p^k}\right\rfloor$。

证明很简单,因为$n!=1\times 2\times 3\times 4\times \dots \times n$,每隔$p$就有一个$p$的倍数,每隔$p^2$就有一个$p^2$的倍数,每隔$p^3$就有一个$p^3$的倍数,每增加一次幂,将多贡献一个$p$因子,所以把每个间隔数叠加即可。注意该和虽然写成无穷形式,但是非零项是有限的。

点击阅读全文...

17 Oct

两百万素数之和与“电脑病”

原则上来讲,同样的算法,如果分别在Python和C++上实现,那么Python的速度肯定比不上C++的。但是Python还被称为“胶水语言”,它允许我们把主要计算的部分用C或C++等高效的语言编写好,然后它作为“粘合剂”把两者粘合在一起。正因为如此,Python才有了各种各样的扩展库,这些库中有不少是用C语言编写的。因此,我们在编写Python程序的时候,如果可以用这些现成的库,速度会快很多。本文就是用Numpy来改进之前的《两百万前素数之和与前两百万素数之和》的计算。

算法本身是没有变的,只是用了Numpy来处理数组计算,代码如下:

点击阅读全文...

13 Jun

“噪声对比估计”杂谈:曲径通幽之妙

说到噪声对比估计,或者“负采样”,大家可能立马就想到了Word2Vec。事实上,它的含义远不止于此,噪音对比估计(NCE, Noise Contrastive Estimation)是一个迂回但却异常精美的技巧,它使得我们在没法直接完成归一化因子(也叫配分函数)的计算时,就能够去估算出概率分布的参数。本文就让我们来欣赏一下NCE的曲径通幽般的美妙。

注:由于出发点不同,本文所介绍的“噪声对比估计”实际上更偏向于所谓的“负采样”技巧,但两者本质上是一样的,在此不作区分。

问题起源

问题的根源是难分难舍的指数概率分布~

指数族分布

在很多问题中都会出现指数族分布,即对于某个变量$\boldsymbol{x}$的概率$p(\boldsymbol{x})$,我们将其写成
$$p(\boldsymbol{x}) = \frac{e^{G(\boldsymbol{x})}}{Z}\tag{1}$$
其中$G(\boldsymbol{x})$是$\boldsymbol{x}$的某个“能量”函数,而$Z=\sum_{\boldsymbol{x}} e^{G(\boldsymbol{x})}$则是归一化常数,也叫配分函数。这种分布也称为“玻尔兹曼分布”。

点击阅读全文...