string to identifier



On 22.01.2012 00:07, Richard Fateman wrote:
>
>
> Try
> ?intern(concat("list",123)) :: 32
>
> which assigns 32 to a symbol that you can type in to Maxima as ?LIST123.
>
>
> There is a peculiarity of switching upper and lower case for
> convoluted reasons.
>
> Note that is "::" not ":"
>
> RJF
It works now. Thanks.

Below is code in which I have used it in main and draw sections.
It draws 5 images on the screen.


Adam

==============
kill(all);



/* ---------- functions ---------------------- */

/* conformal map  from circle to cardioid ( boundary
  of period 1 component of Mandelbrot set */
F(w):=w/2-w*w/4;


/*
circle D={w:abs(w)=1 } where w=l(t,r)
t is angle in turns ; 1 turn = 360 degree = 2*Pi radians
r is a radius
*/
ToCircle(t,r):=r*%e^(%i*t*2*%pi);




/*

http://en.wikipedia.org/wiki/Complex_quadratic_polynomial
*/
f(z,c):=z*z+c $

GiveCriticalOrbit(c,iMax):=
    /*
    computes (without escape test)
    critical orbit (forward orbit of critical point )
    and saves it to the list for draw package */
block(
  [z,orbit,temp],
  z:0, /* first point = critical point z:0+0*%i */
  orbit:[[realpart(z),imagpart(z)]],
  for i:1 thru iMax step 1 do
         ( z:expand(f(z,c)),
           orbit:endcons([realpart(z),imagpart(z)],orbit)),

  return(orbit)
)$


/* find fixed point alfa , returns a list */
GiveFixed(c):=
(
  [z],
z:float(rectform((1-sqrt(1-4*c))/2)),
[[realpart(z),imagpart(z)]]
)$



GiveC(angle,radius):=
(
  [w],
  /* point of  unit circle   w:l(internalAngle,internalRadius); */
  w:ToCircle(angle,radius),  /* point of circle */
  float(rectform(F(w)))    /* point on boundary of period 1 component of 
Mandelbrot set */
)$



compile(all)$



/* ---------- constant ---------------------------*/
Numerator :1;
DenominatorMax :5;
InternalRadius:1;
iMax:500;


/* -------------- main ----------------- */



for Denominator:1 thru DenominatorMax step 1 do
(
  InternalAngle: Numerator/Denominator,
  c: GiveC(InternalAngle,InternalRadius),
   /*  */
  ?intern(concat("z",string(Denominator)))::GiveFixed(c),
  /* */
  ?intern(concat("orbit",string(Denominator)))::GiveCriticalOrbit(c,iMax)
);




/*------------------draw -------------------------------------*/
load(draw); /* ( interface to gnuplot ) by Mario Rodriguez Riotorto 
http://www.telefonica.net/web2/biomates */

draw(

     terminal  = screen,
     columns =5,
     gr2d(
         title= "1/1  ",
	user_preamble = "set border 0;set nokey;set size square;set noxtics 
;set noytics;",
	
         point_type    = filled_circle,
	points_joined = false,
         point_size    = 0.7,
         /*  */
	color		  =red,
	key = "critical orbit",
	points(?ORBIT1),
         /*  */
	color		  =black,
	point_size    = 1.4,
	key = "parabolic fixed point",
	points(?Z1),
         /*  */
	color		  =blue,
	key = "criitical point",
	points([0],[0])
         ),

  gr2d(
         title= " 1/2 ",
	user_preamble = "set border 0;set nokey;set size square;set noxtics 
;set noytics;",
	
         point_type    = filled_circle,
	points_joined = false,
         point_size    = 0.7,
         /*  */
	color		  =red,
	key = "critical orbit",
	points(?ORBIT2),
         /*  */
	color		  =black,
	point_size    = 1.4,
	key = "parabolic fixed point",
	points(?Z2),
         /*  */
	color		  =blue,
	key = "criitical point",
	points([0],[0])
         ),

gr2d(
         title= " 1/3 ",
	user_preamble = "set border 0;set nokey;set size square;set noxtics 
;set noytics;;",
	point_type    = filled_circle,
	points_joined = false,
         point_size    = 0.7,
         /*  */
	color		  =red,
	key = "critical orbit",
	points(?ORBIT3),
         /*  */
	color		  =black,
	point_size    = 1.4,
	key = "parabolic fixed point",
	points(?Z3),
         /*  */
	color		  =blue,
	key = "criitical point",
	points([0],[0])
         ),

gr2d(
         title= " 1/4 ",
	user_preamble = "set border 0;set nokey;set size square;set noxtics 
;set noytics;;",
	point_type    = filled_circle,
	points_joined = false,
         point_size    = 0.7,
         /*  */
	color		  =red,
	key = "critical orbit",
	points(?ORBIT4),
         /*  */
	color		  =black,
	point_size    = 1.4,
	key = "parabolic fixed point",
	points(?Z4),
         /*  */
	color		  =blue,
	key = "criitical point",
	points([0],[0])
         ),
gr2d(
         title= " 1/5 ",
	user_preamble = "set border 0;set nokey;set size square;set noxtics 
;set noytics;;",
	point_type    = filled_circle,
	points_joined = false,
         point_size    = 0.7,
         /*  */
	color		  =red,
	key = "critical orbit",
	points(?ORBIT5),
         /*  */
	color		  =black,
	point_size    = 1.4,
	key = "parabolic fixed point",
	points(?Z5),
         /*  */
	color		  =blue,
	key = "criitical point",
	points([0],[0])
         )



  );