22 Sep

一个人的数学建模:碎纸复原

suizhiji

suizhiji

笔者一直无心参加数学竞赛,主要原因是我喜欢能够持续深入地思考一个问题,而不想被竞赛的时间限制所束缚。我并不是一个机灵的人,因此很难有竞赛所需要的“灵光一现”。大概一个多星期前全国数学建模的预赛开始了,我也饶有兴致地关注了一下,并且留意到了B题这道有趣的题目——碎纸复原,然后就开始思考算法了。那时候应该是9月13日中午,我开始了一个人的数学建模,“一个人”并不是说我一个人就组成一支队了,而是我一个人自由高效地在构思算法、摸索代码,不为比赛,只为达到目的,那种兴奋一直持续到了当晚凌晨三点。

点击阅读全文...

9 Sep

[欧拉数学]找出严谨的答案

在之前的一些文章中,我们已经谈到过欧拉数学。总体上来讲,欧拉数学就是具有创造性的、直觉性的技巧和方法,这些方法能够推导出一些漂亮的结果,而方法本身却并不严密。然而,在很多情况下,严密与直觉只是一步之遥。接下来要介绍的是我上学期《数学分析》期末考的一道试题,而我解答这道题的灵感来源便是“欧拉数学”。

数列${a_n}$是递增的正数列,求证:$\sum\limits_{n=1}^{\infty}\left(1-\frac{a_n}{a_{n+1}}\right)$收敛等价于${a_n}$收敛。

据说参考答案给出的方法是利用数列的柯西收敛准则,我也没有仔细去看,我在探索自己的更富有直觉型的方法。这就是所谓的“I do not understand what I can not create.”。下面是我的思路。

点击阅读全文...

30 Jul

变分法的一个技巧及其“误用”

不可否认,变分法是非常有用而绝妙的一个数学工具,它“自动地”为我们在众多函数中选出了最优的一个,而免除了具体的分析过程。物理中的最小作用量原理则让变分法有了巨大的用武之地,并反过来也推动了变分法的发展。但是变分法的一个很明显的特点就是在大多数情况下计算相当复杂,甚至如果“蛮干”的话我们几乎连微分方程组都列不出来。因此,一些有用的技巧是很受欢迎的。本文就打算介绍这样的一个小技巧,来让某些变分问题得到一定的化简。

我是怎么得到这个技巧的呢?事实上,那是几个月前我在阅读《引力与时空》时,读到变分原理那一块时我怎么也读不懂,想不明白。明明我觉得是错误的东西,为什么可以得到正确的结果?我的数学直觉告诉我绝对是作者的错,可是我又想不出作者哪里错了,所以就一直把这个问题搁置着。最近我终于得到了自己比较满意的答案,并且窃认为是本文所要讲的这个技巧却被物理学家“误用”了。

技巧

首先来看通常我们是怎么处理变分问题的,以一元函数为例,对于求
$$S=\int L(x,\dot{x},t)dt$$

点击阅读全文...

5 Jul

齐次对称多项式初等表示的新尝试

这是我的这学期高等代数课的一个小论文。说到这里,其实我挺喜欢那些不用考试,通过平时考核以及写论文、报告或者做实验的方式来评成绩的方式,毕竟我觉得这才是比较综合地体现了知识和技能的水平(当然更重要的一个原因是我比较喜欢写作啦~~)。我们高等代数有两门课程,一是基本的上课,二是研讨课,分别考核。老师照顾我们,研讨课不用考试,写小论文就行了。Yeah~~

我写的是有关对称多项式的。其实这文章在半个学期之前就酝酿着了,当时刚学到对称多项式的初等表示。所谓初等表示,就是将一个多元对称多项式表示为$\sigma_1,\sigma_2,\sigma_3,...$的组合。其中
$$\begin{aligned}\sigma_1=x_1+x_2+...+x_n \\ \sigma_2=x_1 x_2+x_1 x_3+...+x_1 x_n+x_2 x_3+...+x_{n-1} x_n \\ ... \\ \sigma_n=x_1 x_2 ... x_n\end{aligned}$$
书本上给出了待定系数法,但是每次都要求解方程组,让我甚是烦恼,所以我研究直接展开的方案,最终得出了两种方法。当时也刚好接触着张量的知识,了解到“爱因斯坦求和约定”,于是想充分发挥其威力,就促成了这篇文章。其实我自定义了“方括弧”和“圆括弧”两种运算,都是符号上的简化。两种方法在某种意义上相互补充,笔者自感颇为满意,遂与大家分享。具体内容就不贴出来了,请大家下载pdf文件观看吧。

点击阅读全文...

22 May

当Matlab遇上牛顿法

牛顿法是求方程近似根的一个相当有用而且快捷的方法,我们最近科学计算软件课程(Matlab)的一个作业就是编写求方程近似解的程序,其中涉及到牛顿法。我们要实现的目标是,用户输入一道方程,脚本就自动求出根来。这看起来是一个挺简单的循环迭代程序,但是由于Matlab本身的特殊性,却产生了不少困难。

Matlab是为了数值计算(尤其是矩阵运算)而生的,因此它并不擅长处理符号计算。这就给我们编程带来了困难。在网上随便一搜,就可以发现,网上的Matlab牛顿法程序都是要求用户同时输入方程及其导函数,这显然是不方便的,因为Matlab本身就具备了求导功能。下面我们来分析一下困难在哪里。

我们要实现的最基本功能是定义一个函数,然后可以根据该函数求具体的函数值,并且自动求该函数的导数,接着求导数值。这些看起来很基本的功能在Matlab中却很难调和,因为Matlab的“函数”定义很广,一个具有特定功能的M文件叫“函数”,一个运算式$f(x)$也可能是一个函数,显然后者是可以求导的,前者却不行,所以Matlab一刀砍——不能对函数求导!!

点击阅读全文...

17 May

正项级数敛散性最有力的判别法?

在学习正项级数的时候,我们的数学分析教材提供了各种判别法,比如积分判别法、比较判别法,并由此衍生出了根植法、比值法等,在最后提供了一个比较精细的“Raabe判别法”。这些方法的精度(强度)各不相同,一般认为“Raabe判别法”的应用范围最广的。但是在我看来,基于p级数的比较判别法已经可以用于所有题目了,它才是最强的方法。

p级数就是我们熟悉的
$$\sum_{n=1}^{\infty} \frac{1}{n^p}$$

通过积分判别法可以得到当p>1时该级数收敛,反之发散。虽然我不能证明,但是我觉得以下结论是成立的:

若正项级数$\sum_{n=1}^{\infty} a_n$收敛,则总可以找到一个常数A以及一个大于1的常数p,使每项都有$a_n < \frac{A}{n^p}$。

点击阅读全文...

24 Apr

“抢15”游戏简析

昨天在上“科学计算软件”课时,讲到了一个“抢15”游戏(Pick15),就是在1~9这9个数字中,双方轮流选一个数字,不可重复,谁的数字中有三个数字的和为15的,谁就是赢家。

这是个简单的游戏,属于博弈论范畴。在博弈论中有一个著名的“策梅洛定理”(Zermelo's theorem),它指出在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。比如中国象棋就属于这一类游戏,它告诉我们对于其中一方必有一种必不败策略(有可能和棋,有可能胜,反正不会输)。当然,策梅洛定理只是告诉我们其存在性,并没有告诉我们怎么发现这个策略,甚至连哪一方有这种最优策略都没有给出判别方法。这是幸运的,因为如果真有一天发现了这种策略,那么像象棋这类博弈就失去了意义了

上述的抢15游戏当然也属于这类游戏。不同于象棋的千变万化,它的变化比较简单,而且很容易看出它对先手有着明显的优势。下面我们来分析一下。

点击阅读全文...

15 Apr

第四波:2^29360741-1不是素数!

第四个数字也完成了测试,这次的结果依然是否定的:$2^{29360741}-1$不是素数!
大概半年内不会有新的结果了,呵呵。

[Comm thread Apr 15 19:04] Sending result to server: UID: bojone/bojone, M29360741 is not prime. Res64: 622E909193F04555. We4: CA6D304A,26268761,00000000, AID:
[Comm thread Apr 15 19:04]
[Comm thread Apr 15 19:05] PrimeNet success code with additional info:
[Comm thread Apr 15 19:05] LL test successfully completes double-check of M29360741
[Comm thread Apr 15 19:05] CPU credit is 29.1976 GHz-days.
[Comm thread Apr 15 19:05] Done communicating with server.