FractalPark
奇异入门

Zubieta

一种二次映射:每一步都把 z² + c 的两个分量折进非负象限,形成双重镜像和紧凑的曼陀罗状图案。

在探索器中打开
Zubieta 分形:镜像楔形与曼陀罗状瓣体,暖琥珀色调(「Kaleido Amber Mandala」)
FractalPark 渲染的 Zubieta 分形(「Kaleido Amber Mandala」):双镜像对称将紧凑瓣体与铺排丝线组成万花筒图案。

概览

Zubieta 是经典 Mandelbrot 迭代的“绝对值”近亲。它先做标准二次更新 zₙ² + c,再分别对实部和虚部取绝对值。这不是复数模长,后者会把两个分量压成一个实数。可以把它想成沿两条轴折一张纸:复数结构还在,两个坐标却每一步都回到非负象限。

反复折叠后,轨道会一次次经过或回到第一象限,镜像对称便叠起来。标准 Mandelbrot 集只有实轴这一条镜像轴;Zubieta 在两个轴上都映出自己,排成万花筒般的布局。

Burning Ship 和 Buffalo 也在迭代的别处用逐分量绝对值,所以是它的近亲。Zubieta 把折叠放在平方和加 c 之后,因而有自己的紧凑瓣体、楔形铺排和镜像丝线。

数学原理

分量折叠迭代

z(n+1) is the component-wise absolute value of z(n)^2 + c

这里的竖线指逐分量绝对值,不是复数模长。对 u = x + iy,|u| 表示 |x| + i|y|:两个分量各取绝对值。把点折进复平面的第一象限来想就行。

试取 c = −0.5 + 0i。标准 Mandelbrot 迭代里,z₀ = 0 给出 z₁ = −0.5、z₂ = −0.25、z₃ ≈ −0.4375……并收敛到不动点。Zubieta 折叠同样的值:第一步后 |−0.5| = 0.5,z₁ 因而是 0.5,不是 −0.5。一折,轨道的方向和 c 的分类都改了。

逃逸阈值沿用二次 Mandelbrot 测试:一旦 |zₙ| 模长超过 2,发散即确定。逐分量折叠会让某些轨道比不折叠时更久地保持有界。

历史

Zubieta 属于更广泛的"绝对值"分形变体家族——在二次迭代的不同阶段应用绝对值折叠操作。该家族中最著名的成员是 Burning Ship 分形,由 Michael Michelitsch 与 Otto E. Rössler 于 1992 年发现,它在平方前折叠分量。另一近亲 Buffalo 分形则在平方之后、加 c 之前折叠。

Zubieta 变体在平方和加 c 之后施加逐分量绝对值。与许多命名的绝对值变体相同,其确切起源难以追溯至单一的公开学术来源;这类变体在 1990–2000 年代的分形渲染社区和软件(Ultra Fractal、Fractint、XaoS)中流传,通常以在特定软件中首先实现或推广该变体的个人命名。

FractalPark 的实现采用标准逐分量折叠,以 Mandelbrot 模式渲染参数平面。

视觉特征

反复逐分量折叠带来强烈的双镜像对称。图像在实轴和虚轴上都对称,形成万花筒般的楔形、紧凑的曼陀罗状瓣体和铺排丝线。

Buffalo 在平方前折叠;Zubieta 在更新后折叠,瓣体因而更紧、更密。FractalPark 标准渲染图("Kaleido Amber Mandala")以琥珀色为主,边界布满重复的楔形纹路。

再创作与示例

从 canonical Document 开始

打开本指南使用的同一份已审定公式状态,再在交互式探索器中调整视图、着色、变换或动画。

常见问题

这里的绝对值是复数模长吗?

不是。FractalPark 分别对实部和虚部取绝对值,也就是对 x 取 |x|、对 y 取 |y|。每个坐标会被反射到非负范围,复数却不会塌成单一实数。

为什么画面镜像感很强?

每次迭代都把两个输出分量折进第一象限,双重反射对称便出现了。轨道不断回到非负区域,参数平面也沿两个轴镜像。Burning Ship 的逐分量折叠以相近方式造出火焰状对称;Zubieta 则把图案压得更紧,像曼陀罗。

参考资料

源码导读

  1. frm-v1:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:init/0

    初始化节点执行: `if ismand`

  2. frm-v1:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:loop/0

    循环节点执行: `z2 = z * z`

  3. frm-v1:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:bailout

    终止测试为: `|z| <= 256`

语法特征

source-sequence

此结构把所引用的源代码步骤组织为一个可检查的顺序。 e435bbb6-d866-5876-9f16-f04fbe61ff2b:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:init, e435bbb6-d866-5876-9f16-f04fbe61ff2b:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:loop, e435bbb6-d866-5876-9f16-f04fbe61ff2b:04817a2a54e195117685266ac9b569e294050cd4617bf3df518390c17ca0cf5f:bailout

参数实验

步骤

  1. 使用固定配置:mode parameter-plane; center (-0.5, 0); zoom 0.4; rotation 0; iterations 96。运行一次并记录结果;再以同一配置重复运行。

观察要点

比较两次运行,记录在`z2 = z * z`之后执行`z = abs(z2 + c)`时,可见结果和迭代行为是否一致。

练习

找出包含`if ismand`、`z2 = z * z; z = abs(z2 + c)`和`|z| <= 256`的源注释,并说明它们的顺序。

完成检查

完成时列出所引用的三个注释键,并按`if ismand`、`z2 = z * z; z = abs(z2 + c)`、`|z| <= 256`的源顺序排列。

来源与权利

来源:

权利:

公式档案

zubieta

该 FractalPark 规范实现已发布并可运行。

zubieta 的确定性预览

规范源码

语言
frm-like/1
标准库
1
Profile 模式
parameter-plane
Profile 中心
-0.5, 0
Profile 缩放
0.4
Profile 迭代次数
96
Profile 证据等级
mechanical

参数

没有声明参数

规范源码

这是经过验证的只读规范版本。Remix 会创建一份独立的可编辑分支。

正在加载规范源码…

来源与当前实现

公式 ID
e435bbb6-d866-5876-9f16-f04fbe61ff2b
规范名称
zubieta
原始名称
zubieta
历史来源
FractalPark
当前实现
项目自有

这是 FractalPark 项目自有实现。所链接文件是固定版本的规范 Definition。

对权利或署名有异议?

请附上公式 ID 和支持证据。维护者可在复核期间暂缓或撤下该实现。 contact@fractalpark.com