确定给定点x,y是否在mandelbrot集中的函数

问题描述

| 因此,给定任意点(a + ib),如果函数位于mandelbrot集中,则该函数将返回1;否则,如果不进行n次迭代,则该函数将返回0。 我在尝试编写此函数时遇到困难,尤其是对于复杂的数字。谁能帮助我或提供一些建议让我开始? 到目前为止,我只能想出一种方法来确定mandelbrot集中是否存在实数(任何x,y = 0)。 编辑:抱歉忘了说我在C语言中进行编码,虽然我主要是在寻找一些伪代码的想法。     

解决方法

集合上的Wikipedia页面上有一些伪代码可以完成基本工作,并提示您可以采用这样的项目的许多方向。了解复杂的数学是关键。传统上将复数的实部和虚部保持为一对,并通过手工或宏对其执行所需的任何操作。 (这些天,如果您的编译器使用C99,则可以使用
complex
类型,但是这样做的乐趣何在...?:-))     ,您需要重复平方并添加一个复数:
double a = real input component;
double b = imag input component;

double zReal = a;
double zImag = b;
for(int i = 0; i< LIMIT; i++){
   double temp = zReal;
   zReal = zReal * zReal - zImag * zImag;
   zImag = 2 * temp * zImag;
   if(zReal * zReal + zImag * zImag > 4){
      return 0;
   }
}
return 1;