この企画も今回を含めてあと2回となりました。
今回もグラフィックスものです。結局3Dグラフィックスの重ね書きが出来るので、どれでも同じなのですが、やはり華麗なカラビ・ヤウ空間を選びました。Maximaで描画するとこんな感じです。
この本のp98に載っているGnuplot向けのプログラムを書き直して実行したものです。
(%i1) load(draw)$
(%i2) u1(a,b):=0.5*(exp(a+%i*b)+exp(-a-%i*b));
$$ \tag{%o2} \mathrm{u1}\left(a , b\right):=0.5\,\left(\exp \left(-i\,b-a\right)+\exp \left(i\,b+a\right)\right) $$
(%i3) u3(a,b):=0.5*(exp(a+%i*b)-exp(-a-%i*b));
$$ \tag{%o3} \mathrm{u3}\left(a , b\right):=0.5\,\left(\exp \left(i\,b+a\right)-\exp \left(-i\,b-a\right)\right) $$
(%i4) z1k(a,b,n,k):=exp(k*2*%pi*%i/n)*u1(a,b)^(2.0/n);
$$ \tag{%o4} \mathrm{z1k}\left(a , b , n , k\right):=\exp \left(\frac{k\,2\,\pi\,i}{n}\right)\,\mathrm{u1}\left(a , b\right)^{\frac{2.0}{n}} $$
(%i5) z2k(a,b,n,k):=exp(k*2*%pi*%i/n)*u3(a,b)^(2.0/n);
$$ \tag{%o5} \mathrm{z2k}\left(a , b , n , k\right):=\exp \left(\frac{k\,2\,\pi\,i}{n}\right)\,\mathrm{u3}\left(a , b\right)^{\frac{2.0}{n}} $$
(%i6) n:3;
$$ \tag{%o6} 3 $$
(%i7) alpha:0.6*%pi;
$$ \tag{%o7} 0.6\,\pi $$
(%i8) gx(a,b,k1,k2):=realpart(z1k(a,b,n,k1));
$$ \tag{%o8} \mathrm{gx}\left(a , b , \mathrm{k1} , \mathrm{k2}\right):=\mathrm{realpart}\left(\mathrm{z1k}\left(a , b , n , \mathrm{k1}\right)\right) $$
(%i9) gy(a,b,k1,k2):=realpart(z2k(a,b,n,k2));
$$ \tag{%o9} \mathrm{gy}\left(a , b , \mathrm{k1} , \mathrm{k2}\right):=\mathrm{realpart}\left(\mathrm{z2k}\left(a , b , n , \mathrm{k2}\right)\right) $$
(%i10) gz(a,b,k1,k2):=cos(alpha)*imagpart(z1k(a,b,n,k1))+sin(alpha)*imagpart(z2k(a,b,n,k2));
$$ \tag{%o10} \mathrm{gz}\left(a , b , \mathrm{k1} , \mathrm{k2}\right):=\sin \alpha\,\mathrm{imagpart}\left(\mathrm{z2k}\left(a , b , n , \mathrm{k2}\right)\right)\\+\cos \alpha\,\mathrm{imagpart}\left(\mathrm{z1k}\left(a , b , n , \mathrm{k1}\right)\right) $$
(%i11) draw3d(proportional_axes = xy, zrange=auto, dimensions=[1200,1200],axis_3d=true,
surface_hide = true,
parametric_surface(gx(u,v,0,0),gy(u,v,0,0),gz(u,v,0,0), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,0,1),gy(u,v,0,1),gz(u,v,0,1), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,0,2),gy(u,v,0,2),gz(u,v,0,2), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,1,0),gy(u,v,1,0),gz(u,v,1,0), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,1,1),gy(u,v,1,1),gz(u,v,1,1), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,1,2),gy(u,v,1,2),gz(u,v,1,2), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,2,0),gy(u,v,2,0),gz(u,v,2,0), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,2,1),gy(u,v,2,1),gz(u,v,2,1), u,-1,1,v,0,%pi/2),
parametric_surface(gx(u,v,2,2),gy(u,v,2,2),gz(u,v,2,2), u,-1,1,v,0,%pi/2))$