Polynomial class of attractors


6 attractors based on variations on a polynomial expression



Polynomial class

Attractors based on variations on a polynomial expression

In the following expressions p(x,y,z) is current point, k[i](x,y,z) are vectors of constants initially calculated randomly, and pNew(x,y,z) is the new point that we will calculate

 


PolynomialA

    pNew.x = k[0].x+ p.y - p.y*p.z;
    pNew.y = k[0].y+ p.z - p.x*p.z;
    pNew.z = k[0].z+ p.x - p.x*p.y;

 


PolynomialB

    pNew.x = k[0].x+p.y-p.z*(k[1].x+p.y);
    pNew.y = k[0].y+p.z-p.x*(k[1].y+p.z);
    pNew.z = k[0].z+p.x-p.y*(k[1].z+p.x);

 


PolynomialC

    pNew.x = k[0].x +p.x*(k[1].x +k[2].x *p.x+k[3].x *p.y)+p.y*(k[4].x+k[5].x*p.y);
    pNew.y = k[0].y +p.y*(k[1].y +k[2].y *p.y+k[3].y *p.z)+p.z*(k[4].y+k[5].y*p.z);
    pNew.z = k[0].z +p.z*(k[1].z +k[2].z *p.z+k[3].z *p.x)+p.x*(k[4].z+k[5].z*p.x);

 


PolynomialAbs

    pNew.x = k[0].x + k[1].x*p.x + k[2].x*p.y + k[3].x*p.z + k[4].x*abs(p.x) + k[5].x*abs(p.y) +k[6].x*abs(p.z);
    pNew.y = k[0].y + k[1].y*p.x + k[2].y*p.y + k[3].y*p.z + k[4].y*abs(p.x) + k[5].y*abs(p.y) +k[6].y*abs(p.z);
    pNew.z = k[0].z + k[1].z*p.x + k[2].z*p.y + k[3].z*p.z + k[4].z*abs(p.x) + k[5].z*abs(p.y) +k[6].z*abs(p.z);

 


PolynomialPower

    pNew.x = k[0].x + k[1].x*p.x + k[2].x*p.y + k[3].x*p.z + k[4].x*abs(p.x) + k[5].x*abs(p.y) +k[6].x*pow(abs(p.z),k[7].x);
    pNew.y = k[0].y + k[1].y*p.x + k[2].y*p.y + k[3].y*p.z + k[4].y*abs(p.x) + k[5].y*abs(p.y) +k[6].y*pow(abs(p.z),k[7].y);
    pNew.z = k[0].z + k[1].z*p.x + k[2].z*p.y + k[3].z*p.z + k[4].z*abs(p.x) + k[5].z*abs(p.y) +k[6].z*pow(abs(p.z),k[7].z);

 


PolynomialSin

    pNew.x = k[0].x + k[1].x*p.x + k[2].x*p.y + k[3].x*p.z + k[4].x*sin(k[5].x*k[6].x*p.x) + k[7].x*sin(k[8].x*k[9].x*p.y) +k[10].x*sin(k[11].x*k[12].x*p.z);
    pNew.y = k[0].y + k[1].y*p.x + k[2].y*p.y + k[3].y*p.z + k[4].y*sin(k[5].y*k[6].y*p.x) + k[7].y*sin(k[8].y*k[9].y*p.y) +k[10].y*sin(k[11].y*k[12].y*p.z);
    pNew.z = k[0].z + k[1].z*p.x + k[2].z*p.y + k[3].z*p.z + k[4].z*sin(k[5].z*k[6].z*p.x) + k[7].z*sin(k[8].z*k[9].z*p.y) +k[10].z*sin(k[11].z*k[12].z*p.z);