PROGRAM Newtons_Basin_Z5 !© W.van Duyn May 2nd 2004
!Plots the cube roots of F(z)=z^5-1
!F(z)= f(z)/f'(z)
OPTION ANGLE degrees
SET MODE "COLOR"
SET window 0,1199,0,903
SET background color "white"
INPUT PROMPT "side try 1... ": side
INPUT PROMPT "size try 400... ": f
CLEAR
SET COLOR 16
FLOOD 1,1
LET n=50
LET lim=0.01
LET k=20
LET m=f/(2*side)
FOR x=-f/2 TO f/2
FOR y=-f/2 TO f/2
LET a=x/m
LET b=y/m
FOR i=1 TO n
LET p=a^4+b^4-6*(b^2)*a^2
LET q=4*a*b*(a^2-b^2)
IF p=0 AND q=0 THEN EXIT FOR
LET at= (4*a*p^2+4*a*q^2+p)/(5*(p^2+q^2))
LET b=(4*b*p^2+4*b*q^2-q)/(5*(p^2+q^2))
LET a=at
IF abs(a-1)
SET COLOR MIX(i+100) 1-i/k,1-i/k,1
LET col=9
CALL create(i,x,y,col,k)
EXIT FOR
END IF
IF abs(a-cos(72)) < lim AND abs(b-sin(72)) < lim THEN
SET COLOR MIX(i+100) 1,1-i/k,1-i/k
LET col=12
CALL create(i,x,y,col,k)
EXIT FOR
END IF
IF abs(a-cos(72)) < lim AND abs(b+sin(72)) < lim THEN
SET COLOR MIX(i+100) 1-i/k,1,1-i/k
LET col=10
CALL create(i,x,y,col,k)
EXIT FOR
END IF
IF abs(a+cos(36)) < lim AND abs(b-sin(36)) < lim THEN
SET COLOR MIX(i+100) 1,1,1-i/k
LET col=14
CALL create(i,x,y,col,k)
EXIT FOR
END IF
IF abs(a+cos(36)) < lim AND abs(b+sin(36)) < lim THEN
SET COLOR MIX(i+100) 1-i/k,1-i/k,1-i/k
LET col=16
CALL create(i,x,y,col,k)
EXIT FOR
END IF
NEXT i
NEXT y
NEXT x
END
SUB create(i,x,y,col,k)
IF i<=k THEN SET COLOR i+100
IF i>k THEN SET COLOR col
PLOT x+600,y+450
END SUB
|