28 Sep

开始学习数学软件Scilab

其实很早之前我就想学习一款数学软件的使用,以前很感兴趣的是mathematica,也玩弄过一阵子,但毕竟在高中没有多大需要,也就没有坚持下来。更重要的是,这些软件都是要收费的。上了大学后,听了师兄姐对数学建模的讲述,发现他们基本上也是用mathematica或者matlab的,但这两个软件都是要收费的,我不大想用破解版本。既然我都已经用上了ubuntu了,那么我就该好好利用它。据说命令跟matlab很相似的软件是scilab,还有octave,不同的是这些都是开源免费的。

出于熟悉代码操作和数学软件编程的目的,我选择了学习scilab。虽然网上说octave与matlab的相似程度更高,但是我感觉scilab比octave用的更广一些,所以就用它。所谓“一理通百理明”,先专心学好一个。

下面是我编写的第一个scialb程序,利用威尔逊方法来进行素性测试。这个代码的主要目的是练习条件语句和循环语句,以及一些输出输入的技巧而已。程序本身比较丑陋。

//我的第一个scilab程序
//完成于2012.09.27

label1=['p:';];  //定义标签
B=x_mdialog(['本程序使用威尔逊方法判断进行素数测试。';'请输入要判断的数'],label1,['127';]);  //输入框
p=evstr(B(1));  //提取输入框里边的数字进行赋值
i=1;
j=1;
q=p-1;
while i<q
    j=j*i;
    j=modulo(j,p);//这个是模函数。
    i=i+1;
end
if j==1
    messagebox(['这是一个素数';],['测试结果']);  //输出,其中后边的“测试结果”是输入框的标题
else
    messagebox(['这是一个合数';],['测试结果']);
end

点击阅读全文...

24 Apr

“抢15”游戏简析

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

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

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

点击阅读全文...

22 Sep

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

suizhiji

suizhiji

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

点击阅读全文...

18 Mar

倒立单摆之分离频率

Mathieu方程

在文章《有质动力:倒立单摆的稳定性》中,我们分析了通过高频低幅振荡来使得倒立单摆稳定的可能性,并且得出了运动方程
$$l\ddot{\theta}+[h_0 \omega^2 \cos(\omega t)-g]\sin\theta=0$$

由此对单摆频率的下限提出了要求$\omega \gg \sqrt{\frac{g}{h_0}}$。然而,那个下限只不过是必要的,却不是充分的。如果要完整地分析该单摆的运动方程,最理想的方法当然是写出上述常微分方程的解析解。不过很遗憾,我们并没有办法做到这一点。我们只能够采取各种近似方法来求解。近似方法一般指数值计算方法,然后笔者偏爱的是解析方法,也就是说,即使是近似解,也希望能够求出近似的解析解。

点击阅读全文...

10 Jun

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

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

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

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

点击阅读全文...

7 Jul

百科翻译:草原上的狐狸(Swift Fox)

“维基百科”翻译又开始了,这次我们来关注下北美洲的一种珍贵动物——草原狐。
这个条目在中文的维基上没有出现过,但英文上有,现在我把它翻译过来了。由于只有两年的初中生物学习经验,所以一定有很多翻译不当的地方,请大家多提意见!谢谢

图片说明:草原狐,来自“维击百科”

图片说明:草原狐,来自“维击百科”

点击阅读全文...

7 Aug

湖泊沉积物引来争议:是否彗星造成冰期灾难?

笔者:翻译完这篇文章,感觉可以用一个字来形容:累!的确,这篇文章的不少句子都让人很模糊,我也只是意译+请教+google出来的,有任何的错误欢迎指出!翻译过程中,不断地使用了词典、Google,加上向人请教,才勉强完成了。 冰期、史前文明、灭绝、天体撞击,这些被谈论得越来越多了,究竟真相如何呢?又或者会不会发生在我们的将来呢?

点击阅读全文...

8 Jul

【个人翻译】变暖的地球对冷血动物来说过热?

翻译语录:
这是一篇关于气候变暖对变温动物的影响的文章。原文很长,来自“科学美国人”网站,本文有所删减。
在人类不断报道气候变化对人类所造成的影响的时候,自然界的其他生物也在受着气候的影响。也许,自然界的其他生物才是最大的受害者。无论如何,为了我们,为了自然,为了地球,为了后代,我们都应该自觉地去减少温室效应。只要人人都节约一点点,世界就会多一片绿色、一片蓝天!

点击阅读全文...