Solved

# Testing wheter a complex number is in the mandelbrot set

Posted on 2003-10-27

Hi,

Im trying to write some C that will test whether a complex number in the form a + bi lies within the madelbrot set.

To lie within the set C has to be iterated 200 times without the result going over 2.

to start with the values are set to 0 and the first iteration is does on the zero values, then the real and imaginary parts of C are added and if the modulus of the new answer is less then 2 then the loop continues, if not it outputs that C is not in the mandelbrot set.

For some reason my code always outputs

Time until 2 is exceeded = 2

I cant quite see where Im going wrong, I am pretty new to C.

Here is my code.

Thanks for any help

#include <stdio.h>

#include <math.h>

int main() {

mSetTest(2.0, 2.0);

return (0);

}

int mSetTest(double c_re, double c_im)

{

int i, count;

float real = c_re;

float imag = c_im;

float zreal, zimag = 0;

float zrealans,zimagans,testreal,testimag;

//Perform 200 Iterations to test wheter C is in Mandelbrot set

for(i=1; i<200; i++)

{

zrealans = (zreal*zreal)-(zimag*zimag);

zimagans = (zreal * zimag) * 2;

testreal = zrealans+real;

testimag = zimagans + imag;

if (sqrt((testreal*testreal) + (testimag*testimag))>2)

{ /*Increase the counter and print how many

iterations were performed before exceeding 2

*/

count ++;

printf("Times until 2 is exceeded =%i\n", count);

return (0);

}

else

{ /*Increase the counter and set the initial variables to the new ones */

count ++;

zreal=testreal;

zimag=testimag;

}

return (i);

}

/*If iterations go greater than 200 then C is in the mandelbrot set*/

printf("C is in the mandelbrot set");

}