Buffon’s Needle problem [蒲丰投针问题]

著名的几何概率问题 —— 蒲丰投针问题(Buffon’s Needle problem ),最初由数学家Georges-Louis Leclerc, Comte de Buffon于18世纪提出。问题可表述为:假定长度为L的的针,随机投到画满间距为T的平行线的纸上,求针和平行线相交的概率。同时有趣的是,该概率值和圆周率(PI)有关系,因此,我们可以利用投针试验来计算圆周率(PI)的值。实际上,这个试验有价值的地方在于:我们可以设计一个试验,它的概率与我们感兴趣的一个变量有关,然后通过大量试验来估算这个量,这其实就是目前使用得十分广泛的蒙塔卡罗法(Monte Carlo method)的主要思想。

Mandelbrot Set & Julia Set [分形]

前两天在网上无意看到了很多关于分形的东西。感觉十分漂亮。分形体现了一种有序和无序的统一。有兴趣的可以上网搜些资料看看,还有很多专门的分形软件、网站、论坛。 最出名的分形我想就是MandelbrotSet和JuliaSet了。因为分形几何学的创始人就是IBM研究室的数学家B.B.Mandelbrot。下面简单介绍一下MandelbrotSet和JuliaSet的算法。其实算法原理还是比较简单。 MandelbrotSet由一个二次迭代方程:zn+1 = zn2 +c,z0=c所得到。也就是对所有的复平面上的点c都进行迭代,不发散的点都属于Mandelbrot集的范围。 JuliaSet由一个二次映射:zn+1 = zn2 +c 产生。c为一定值。也就是选定一个常复数,然后对所有的复平面上的点z进行迭代,不发散的点都属于Julia集的范围。 其中z和c都是复数。迭代的次数越多,图形显示就越精细,可以无限细分,同时分形还有自相似性,就是无限放大一个细小的部分,看起来和原来的部分一样。 由于分形的无限性,对图形的显示和算法都是极大的挑战。一般编程的书都会用这个例子来介绍多核计算、并行计算。哈哈。手痒了,还是编个程序来看一下效果吧。截图如下: 1、先是Mandelbrot Set(迭代次数50): (1)来个黑白调色方案(黑色的就是Mandelbrot集的范围) (2)黑白的调色方案太单调了,来看看彩色的效果如何 2、JuliaSet是什么样的呢,我们接下来看看,这次选择迭代次为500次,从下面的图也可以看到,显示的内容更加细致和漂亮。由于Julia集和选择的复常数C有关,下面选择了几个典型的例子来看看效果。。 (1)c=-0.8+0.17i (2)c=-0.7-0.38i (3)  c=0.3 哈哈,真的很漂亮,配色很重要,配色没配好,在网上随便找了几个配色方案。算法也没有仔细去考虑。很多书有专门的分形算法介绍。 小结:数学真的很美,很好玩。

漂亮的秀曲线图

在网上http://blog.csdn.net/hero82748274/article/details/5304386看到漂亮的秀曲线图。 基本原理很简单,就是沿着某几个方向划分等间距的点,然后将这些方向等间距的点连线。 图形可以有很多种不同的组合情况,比如不同的角度,不同的划分间距。

Morley’s Theorem [莫利定理]

平面几何中,Morley定理 (Morley’s Theorem) 的表述为:任意三角形相邻角三等分线的3个交点组成等边三角形。该定理由英国数学家Frank Morley于1904年发现。 Morley定理十分有趣,后人对该定理有多种不同的证明方式。定理文字描述起来十分拗口,用程序实现一看就明白,如下图: 可见,不管三角形的节点怎么变,相邻的三分角平分线交点组成的图形总是个等边三角形,如图红色三点。 数学很美!

有趣的数学3D曲面

数学是个很好玩的东西。高等数学中,我们学过很多二次曲面,它们都有很漂亮的3D效果,如下图: 1.椭圆锥面 (公式:z^2=(x^2)/(a^2)+(y^2)/(b^2)) 2.双曲抛物面(传说中的马鞍面)真的很像马鞍,哈哈。(公式:z=(x^2)/(a^2)-(y^2)/(b^2)) 3.椭圆抛物面 (公式:z=(x^2)/(a^2)+(y^2)/(b^2)) 4.椭球面,有点像外星巨蛋,可爱,哈哈。(公式:(x^2)/(a^2)+(y^2)/(b^2)+(z^2)/(c^2)=1) 5.单叶双曲面 (公式:(x^2)/(a^2)+(y^2)/(b^2)-(z^2)/(c^2)=1) 6.双叶双曲面 (公式:(x^2)/(a^2)-(y^2)/(b^2)-(z^2)/(c^2)=1) 7.这个不知道怎么称呼,但是经常见到 (公式:(z^2)*sqrt(x^2+y^2)=a*sin(sqrt(x^2+y^2))^2) 8.不知道叫什么名称,网上找的。(公式:z=a*((Sin(x^2) + Sin(y^2))/Exp(x^2 + y^2)) 9.函数类似matlab中的peak函数,初学matlab的绘图一般都讲这个函数 (公式:z=a*x*exp(-(x^2+y^2))) 10.由sin(x)和cos(y)组成的函数,我想说很像章鱼小丸子。哈哈。 (公式:z=a*cos(x/b)*sin(y/c)) 小结: 1.数学很美。 2.上面的曲面可以很简单的在MATLAB中实现,如果你喜欢,不妨去试一试。