FractalPark
凤凰进阶

多重凤凰

一种带记忆的二次递推:复系数把上一个轨道值带进下一步,画出羽毛状和火焰状结构。

在探索器中打开
多重凤凰分形:羽毛状辐条与余烬般的丝线簇(「Ember Compass」)
FractalPark 渲染的多重凤凰分形(「Ember Compass」):罗盘状辐条穿过发光的丝线簇。

概览

多重凤凰记得上一步。这是二阶递推:新值同时取决于当前 z 和紧邻的前一个轨道值,后者由复记忆系数 p 加权。这点“记忆”会改变特征的走向,也会改变它延续多久。

标准 Julia 的 z → z² + c 没有记忆;Phoenix 把更早的 z 以 p·zₙ₋₁ 带回来。改变 p,就是调整过去在下一步中的分量;p 是复数,所以这个值既能旋转也能缩放。羽毛辐条、火焰扇面、罗盘花饰和余烬簇,便从这里长出来。

丝线像神话鸟的翅膀和尾羽,“凤凰”因而得名。京都大学的 Shigehiro Ushiki 发现了这一分形,并于 1988 年发表。

数学原理

凤凰递推

z(n+1) = z(n)^2 + c + p times z(n-1)

先取标准二次步 zₙ² + c,再加上两步之前的轨道值乘以 p。二阶递推在开场需要两个初值:起始 z₀ 和“前一步”值(通常设为 0)。FractalPark 把 p 作为可调的复参数。

试试经典 Phoenix 参数对 c = 0.5667、p = −0.5。从 z₀ = 0 和 z₋₁ = 0 起步,前几次迭代保持有界,画出角向的翼状弧线。把 p 改成幅度相近的正值,记忆项不再抵消而是顺着原方向推,羽毛状结构便会破碎或旋转。

历史

凤凰分形由京都大学人类·环境学研究科的数学家 Shigehiro Ushiki 发现。1988 年,他在 IEEE Transactions on Circuits and Systems 上发表 Phoenix 迭代,将其描述为从复化 Hénon 映射导出的类 Julia 集的复一维截面。论文标题即为 "Phoenix"。经典参数对(c = 0.5667, p = −0.5)产生了后来在分形渲染社区中广为人知的凤凰曲线。

Ushiki 的研究涵盖复动力系统、多面体对称 Julia 集、高维复 Hénon 映射及曲面向自同构的动力学。他的京都大学主页列出从 1980 年代至今的论文。

凤凰族后来出现在 Ultra Fractal 等分形软件中,兼具 Julia 模式和 Mandelbrot 模式变体。FractalPark 的多重凤凰沿用相同的核心递推,并增加了多预览参数界面。

视觉特征

这一步记忆在画面上留下痕迹:从中心射出的羽毛辐条、沿丝线卷起的火焰扇面、像指针一样的罗盘结构。它们来自 p·zₙ₋₁ 带来的方向延续——标准 Julia 集没有这个机制,因此长不出同样的形状。

参数一换,同一条规则可以收成紧密的余烬簇,展开成辐射风车,也能碎成尘埃区。FractalPark 的标准渲染图“Ember Compass”突出罗盘状辐条和温暖发亮的丝线簇。

参数

记忆系数
复记忆系数 p 决定前一轨道值对下一步的影响强度和旋转方向。

再创作与示例

从 canonical Document 开始

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

常见问题

为什么公式需要前一个值?

这是二阶递推:下一状态同时依赖当前值和紧邻的前一值。它是延迟微分方程的离散类比——过去会反馈到现在。额外的参数 p 决定有多少“过去”继续往前走。

初始的前一值重要吗?

重要。二阶递推需要两个初始条件——z₀ 和开始迭代前的“前一步”值(z₋₁)——才能得到确定的轨道。FractalPark 默认将 z₋₁ 初始化为 0,这是 Phoenix 族的惯例。

参考资料

源码导读

  1. frm-v1:a9fa9931913aeafac8b527f31cae7b519db79c8d54829ffcea20bcb6fc9dce4d:init/0

    此标注执行 `if ismand: z = 0; else: z = pixel`.

  2. frm-v1:a9fa9931913aeafac8b527f31cae7b519db79c8d54829ffcea20bcb6fc9dce4d:loop/1

    此标注执行 `nextZ = z2 + c + phoenixMultiP * previousZ`.

  3. frm-v1:a9fa9931913aeafac8b527f31cae7b519db79c8d54829ffcea20bcb6fc9dce4d:loop/2

    此标注执行 `previousZ = z`.

  4. frm-v1:a9fa9931913aeafac8b527f31cae7b519db79c8d54829ffcea20bcb6fc9dce4d:bailout

    此标注执行 `|z| <= 256`. 它终结本公式上方所述的迭代序列。

语法特征

source-sequence

该源顺序特征依次串联与 `ismand` 和 `previousZ` 相关的已引用操作。

参数实验

phoenixMultiP

步骤

  1. 在固定配置下先以 `phoenixMultiP = 0.5` 渲染基线。保持中心、缩放、旋转、迭代次数和其他槽位不变,每次只做一项变更并渲染:`phoenixMultiP = 0.0`、`phoenixMultiP = 1.0`;每次新试验前恢复基线。

观察要点

针对 phoenixMulti 的 `phoenixMultiP`、`previousZ` 试验,记录相对基线是否出现可见差异;没有差异也如实记录。

练习

说明 `ismand` 和 `previousZ` 在源顺序中的作用,并按照参数实验步骤比较各次运行。

完成检查

答案必须说明全部 4 个标注操作,记录实验比较,并提及 `ismand` 和 `previousZ`。

来源与权利

来源:固定运行时修订与发布决定。

权利信息见英文事实单元。

公式档案

phoenixMulti

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

phoenixMulti 的确定性预览

规范源码

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

参数

  • phoenixMultiP: real

规范源码

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

正在加载规范源码…

来源与当前实现

公式 ID
0f49d971-917e-50a5-ae83-20e11fd4854c
规范名称
phoenixMulti
原始名称
phoenixMulti
历史来源
FractalPark
当前实现
项目自有

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

对权利或署名有异议?

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