跳转到内容

分形/蜘蛛

来自维基教科书,开放世界开放书籍

蜘蛛算法:

  • John H. Hubbard 和 Dierk Schleicher 的论文[1]
  • Yuval Fisher 的原始论文[2]

Yuval Fisher 的原始程序 Spider:[3]

  • 制作于 1992 年
  • 用 C 语言编写
  • XView 库 - 来自 Sun Microsystems 的小部件工具包[4]

Claude Heiland-Allen 的版本[5]

该程序

  • 使用 Thurston 算法的变体计算 C 在 M 的有理外部角度的值。换句话说:从落在临界点的外部射线的角度计算后临界有限多项式。例如,输入 1/6 并输出 c = i,用于二次情况(注意 1/6 在乘以 2 模 1 下的动力学与 i 在 z2+i 下的轨道之间存在某种关系)。
  • 使用柯比 1/4 定理绘制参数(曼德尔布罗特集合)和动力学空间(朱利亚集合)图像,如《分形图像的科学》中所述。代码的这部分主要由 Marc Parmet 编写,
  • 在朱利亚集合上绘制外部角度。

“如果你想理解曼德尔布罗特集合与朱利亚集合动力学之间的关系,这个程序适合你。”

自述文件

[编辑 | 编辑源代码]

原始自述文件

This directory includes souces and executable for a program
which implements a version of what some people call Thurston's algorithm. 
The program also contains an implementation (using code written
largely by Marc Parmet) of the 1/4 theorem
method of drawing parameter and dynamical space images, as
in The Science of Fractal Images, appendix D.
It also includes a version of a paper on the subject, based
on my thesis.

The program is fully interactive, allowing specification of 
angle(s), iteration of the algorithm until it converges (to a 
polynomial), plotting of the Julia set for the polynomial, and 
plotting of the spiders (and/or external rays of the Julia
sets) which are the data set used in the algorithm. There is on
line help (if your keyboard has a HELP button). There is a 
brief step by step on line tutorial, also. 
The program uses the XView toolkit, under X.

The program takes as input an angle (or set of angles) and
gives as output a polynomial whose dynamics in the complex plane
is determined by the dynamics of multiplication of the angle
by the degree of the desired polynomial modulo 1. For example, 
suppose we choose 1/6 as an angle and wish to find a quadratic
polynomial (d = 2), then 
1/6 -> d*1/6 = 2*1/6 = 1/3 -> 2*2*1/6 = 2/3 -> 2*2*2*1/6 
= 4/3 (modulo 1) = 1/3. It is periodic of period 2 after 
1 step.

Pressing the New 2 button, entering 1/6 as a fraction, and pressing
the Set Repeating Expansion Button, will set up the algorithm. Pressing
LIFT or Many Lifts will iterate the algorithm; The Goings On window will
show the C value of the polynomial z^d + C, which will converge to 
C = i = sqrt(-1). The main window will show some lines, which also
converge to something... p(z) = z^2 + i has the property that 
the critical value i has the same dynamics as 1/6, 
i -> p(i)  = 1-i -> p(i-1) = -i -> p(-i) = 1-i. That is, it is perdiodic
of period two after one step.

Yuval Fisher

November 17, 1992

如何运行它?

[编辑 | 编辑源代码]

一种方法是使用 Claude Heiland-Allen 为 i386 编译的二进制版本[6]

git clone http://code.mathr.co.uk/spider.git

需要 32 位版本的 XView:[7]

# ubuntu
sudo dpkg—add-architecture i386
sudo apt-get update
sudo apt-get install xviewg:i386

然后创建一个 s.sh 文件:[8]

 #!/bin/bash
 export LD_LIBRARY_PATH=/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH
 ./s.bin  -fn fixed $*

并运行它

./s.sh

或者可以编译程序并在虚拟机上运行

参考文献

[编辑 | 编辑源代码]
  1. John H. Hubbard 和 Dierk Schleicher 的蜘蛛算法
  2. Yuval Fisher 的原始论文
  3. Yuval Fisher 的程序 Spider
  4. 维基百科中的 XView
  5. Spider 程序,Claude Heiland-Allen 的版本
  6. Claude Heiland-Allen 为 i386 编译的二进制版本
  7. 复活 Spidersv - Claude Heiland-Allen 的帖子
  8. Steam:加载共享库时出错:libGL.so.1:错误的 ELF 类:ELFCLASS64
华夏公益教科书