我知道如何绘制(二维)“逃逸时间组”分形(Julia和Mandelbrot),但我似乎无法得到Mobius变换或牛顿盆地的渲染。
我试图用同样的方法呈现它们(递归地使用每个像素'n‘次上的多项式方程),但是我有一种感觉,这些分形是用完全不同的方法呈现的。莫比乌斯“变换”意味着图像必须已经存在,然后被转换成几何学,牛顿盆地似乎绘制了每个点,而不仅仅是落入一个集合中的点。
这些分形是如何绘制的?它们是否使用与Julia和Mandelbrot相同的迭代方法绘制?
我用的方程式:
Julia: Zn+1 = Zn^2 + C其中Z是表示像素的复数,C是复数常量(正确)。
Mandelbrot: Cn+1 = Cn^2 + Z其中Z是表示像素的复数,C是复数(0,0),每一步都是复合的( Julia的反面,正确)。
Newton Basin: Zn+1 = Zn - (Zn^x - a) / (Zn^y - a)其中Z是一个代表像素的复数,x和y是不同程度的指数,a是一个复常数(不正确-创建一个中心的,八条腿的‘直线星’)。
Mobius Transformation: Zn+1 = (aZn + b) / (cZn + d)其中Z是表示像素的复数,a、b、c和d是复常量(不正确,一切都归到集合中)。
那么,牛顿盆地和莫比乌斯变换是如何在复杂平面上绘制的呢?
更新: Mobius转换就是这样;转换。
"Every Möbius transformation is
a composition of translations,
rotations, zooms (dilations) and
inversions."要执行Mobius变换,必须已经存在形状、图像、涂片等,以便对其进行转换。
那牛顿盆地呢?
更新2:我的数学对牛顿盆地来说是错误的。方程末尾的分母是(假定)原始函数的导数。这个函数可以通过研究麻省理工学院MatLab源代码中的“NewtonRoot.m”来理解。搜索引擎可以很容易地找到它。但是我仍然不知道如何在复杂的平面上绘制它.
牛顿盆地:
f(x) = x - f(x) / f'(x)发布于 2015-04-13 11:55:20
在Mandelbrot和Julia设置的条件下,如果内环超过某一阈值,则终止它作为轨道“到达”无穷远的速度的测量。
if(|z| > 4) { stop }对于牛顿分形,情况正好相反:由于牛顿法通常是向某个值收敛,我们对它达到极限的速度很感兴趣,这可以通过检查两个连续值的差值低于某一值(通常是10^-9是一个好值)来实现。
if(|z[n] - z[n-1]| < epsilon) { stop }https://stackoverflow.com/questions/26880327
复制相似问题