分享

用MathCAD绘制美丽的分形图像

 mtjs 2014-05-06

MathCAD 是我最喜欢的数学软件,它将数学的美与实际操作的便利完美的结合起来,这是它吸引像我这样的完美主义者的魅力之源,它的数据展示方式,它的排版,它的内嵌程序的独特形式,无一不体现着美与智慧的统一……



Fractals in Mathcad

Posted on   |  by  

I first plotted the Mandelbrot set on a Spectrum 48k, sometime in my early teens. Writing the code probably took a few hours (hey…I never said I was fast at these things). I left my Spectrum running overnight, chugging away and number crunching. I woke up in the morning to find a highly-pixelated  image of the fractal, plotted in wonderful black and white. I beckoned my sister to witness the mathematical glory I had produced, but she was too busy watching Going Live.

Since those halcyon days, one of the first things I do when I learn a new programming language or maths tool is to plot a fractal (it’s my warped version of  ”Hello World”). For example, here’s an earlier Maple worksheet and blog I wrote about the Mandebrot set.

In my time, I’ve plotted Mandelbrot Sets, Julia Sets, Quanternion fractals, Koch triangles and more. However, I always drift back to the Mandelbrot set. The deeper you dive into its complex canyons, the more beauty you discover.

I won’t discuss the mathematics or the algorithms in detail, but here’s part of a Mathcad worksheet that generates the Mandelbrot set (the download link is at the bottom of this post)

The first program generates a matrix giving the number of iterations before each point in the set tends to infinity (i.e  is greater than a bailout value). The second program colours each point with custom RGB values; this is then plotted in a 2D plot.

A Mathcad routine to generate the Julia set follows the same process (again, the download link is at the bottom of this post).

Here’s a few colourful renderings of the Mandelbrot Set and the Julia Set I’ve generated using these Mathcad worksheets.  The colouring algorithm is where much of the artistry comes into play.  Just by tweaking a few numbers, you can produce remarkably different pictures.

These pictures were generated entirely inside Mathcad, with no other image editing.


So what are the downsides of using Mathcad for generating fractals? Mathcad’s an interpreted environment, so compiled C code will always be many orders of magnitude faster. However, a Mathcad worksheet is good for developing the initial algorithms – it’s a much more interactive, easy-to-use environment than a text editor and a compiler. Mathcad gives you much faster feedback on your algorithms than a traditional programming language.

Mathcad Worksheet for the Julia Set

Mathcad Worksheet for the Mandelbrot Set

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约