首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制分形: Mobius变换与牛顿盆地

绘制分形: Mobius变换与牛顿盆地
EN

Stack Overflow用户
提问于 2014-11-12 06:04:04
回答 1查看 593关注 0票数 3

我知道如何绘制(二维)“逃逸时间组”分形(Julia和Mandelbrot),但我似乎无法得到Mobius变换或牛顿盆地的渲染。

我试图用同样的方法呈现它们(递归地使用每个像素'n‘次上的多项式方程),但是我有一种感觉,这些分形是用完全不同的方法呈现的。莫比乌斯“变换”意味着图像必须已经存在,然后被转换成几何学,牛顿盆地似乎绘制了每个点,而不仅仅是落入一个集合中的点。

这些分形是如何绘制的?它们是否使用与Julia和Mandelbrot相同的迭代方法绘制?

我用的方程式:

代码语言:javascript
复制
Julia: Zn+1 = Zn^2 + C

其中Z是表示像素的复数,C是复数常量(正确)。

代码语言:javascript
复制
Mandelbrot: Cn+1 = Cn^2 + Z

其中Z是表示像素的复数,C是复数(0,0),每一步都是复合的( Julia的反面,正确)。

代码语言:javascript
复制
Newton Basin: Zn+1 = Zn - (Zn^x - a) / (Zn^y - a)

其中Z是一个代表像素的复数,x和y是不同程度的指数,a是一个复常数(不正确-创建一个中心的,八条腿的‘直线星’)。

代码语言:javascript
复制
Mobius Transformation: Zn+1 = (aZn + b) / (cZn + d)

其中Z是表示像素的复数,a、b、c和d是复常量(不正确,一切都归到集合中)。

那么,牛顿盆地和莫比乌斯变换是如何在复杂平面上绘制的呢?

更新: Mobius转换就是这样;转换。

代码语言:javascript
复制
"Every Möbius transformation is
a composition of translations,
rotations, zooms (dilations) and
inversions."

要执行Mobius变换,必须已经存在形状、图像、涂片等,以便对其进行转换。

那牛顿盆地呢?

更新2:我的数学对牛顿盆地来说是错误的。方程末尾的分母是(假定)原始函数的导数。这个函数可以通过研究麻省理工学院MatLab源代码中的“NewtonRoot.m”来理解。搜索引擎可以很容易地找到它。但是我仍然不知道如何在复杂的平面上绘制它.

牛顿盆地:

代码语言:javascript
复制
f(x) = x - f(x) / f'(x)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-13 11:55:20

在Mandelbrot和Julia设置的条件下,如果内环超过某一阈值,则终止它作为轨道“到达”无穷远的速度的测量。

代码语言:javascript
复制
if(|z| > 4) { stop }

对于牛顿分形,情况正好相反:由于牛顿法通常是向某个值收敛,我们对它达到极限的速度很感兴趣,这可以通过检查两个连续值的差值低于某一值(通常是10^-9是一个好值)来实现。

代码语言:javascript
复制
if(|z[n] - z[n-1]| < epsilon) { stop }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26880327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档