是否可以将mandelbrot集的公式(默认为f(z)= z ^ 2 + c)更改为不同的公式(f(z)= z ^ 2 + c * e ^( - z)是我需要的)使用逃生时算法,如果可能的话怎么样? 我目前正在使用FB36的这段代码
netapi32.dll
答案 0 :(得分:0)
从代码中我推断出z = x + y * i
和c = a + b * i
。这对应f(z) - z ^2 + c
。你想要f(z) = z ^2 + c * e^(-z)
。
回想一下e^(-z) = e^-(x + yi) = e^(-x) * e^i(-y) = e^(-x)(cos(y) - i*sin(y)) = e^(-x)cos(y) - i (e^(-x)sin(y))
。因此,您应该将您的行更新为以下内容:
x0 = x * x - y * y + a * exp(-x) * cos(y) + b * exp(-x) * sin(y);
y = 2.0 * x * y + a * exp(-x) * sin(y) - b * exp(-x) * cos(y)
x = x0
您可能需要调整maxIt
,如果您没有达到您之后的功能差异级别(平均可能需要更多或更少的迭代才能逃脱),但这应该是你追求的数学表达。
正如评论中指出的那样,您可能需要调整标准本身,而不仅仅是最大迭代次数,以便达到理想的区分水平:更改最大值并不会帮助那些永不逃避的标准。 / p>
你可以尝试获得一个良好的逃避条件或只是尝试一些东西,看看你得到了什么。