surfplot

surfについて

surfは綺麗な代数曲線や曲面(多項式の零点の集まりとして表現される集合で, 一次元のものが曲線,二次元のものが曲面となる)を綺麗に描くプログラムである. gtk+を利用しており,基本的にUNIX環境で動作する.

surfに関連するサイト

surfは下記のサイトに様々な情報がある. http://surf.sourceforge.net/ .

勿論,私のサイト Surf - Examples from SuSE Linux Manualsにもsurfの例題等を載せて いるので必要に応じて参照されたい.

surfplotについて

surfplotはMaxima言語で記述した簡単なプログラムである. この函数を使えば,様々な代数曲線や曲面を容易に描く事が可能となる. 尚,この函数ではsurfの大域変数の設定の為,属性を利用している. その為,この函数は属性の使い方の参考になると判断している,

  1. surplot.mc
  2. surplot.dem

使い方

load函数を用いてsurfplot.mcを読込めば良い.尚,surfplotはカレントディレクトリ 上にsurf.tmpファイルを生成するので,カレントディレクトリは書き込みが可能 でなければならない.

以下に実行例を示す.

(%i1) load("surfplot.mc")$
(%i2) delta:-1/4$
(%i3) poly:x^3-3*x*y+y^3-delta$
(%i4) surfplot(poly);

`rat' replaced 10.0E-11 by 1//10000000000 = 10.0E-11
Surf is now drawing  (4*y^3-12*x*y+4*x^3+1)/4 . Please wait .... 
(%o4) 0

    
(%i5) put(surf,0.6,rot_x)$
(%i6) put(surf,0.2,rot_y)$
(%i7) put(surf,0.6,rot_z)$
(%i8) put(surf,0.3,scale_x)$
(%i9) put(surf,0.3,scale_y)$
(%i10) put(surf,0.3,scale_z)$
(%i11) tau:(1+sqrt(5))/2$
(%i12) poly:8*(x^2-tau^4*y^2)*(y^2-tau^4*z^2)*(z^2-tau^4*x^2)*
(x^4+y^4+z^4-2*(x^2*y^2+y^2*z^2+z^2*x^2))+
(3+5*tau)*(x^2+y^2+z^2-1)^2*(x^2+y^2+z^2-(2-tau))^2$
(%i13) surfplot(poly);

`rat' replaced 10.0E-11 by 1//10000000000 = 10.0E-11
Surf is now drawing  (((168*sqrt(5)+376)*y^2+(-24*sqrt(5)-56)*x^2+5*sqrt(5)+11)*z^8
 +((-360*sqrt(5)-808)*y^4+((-1440*sqrt(5)-3200)*x^2+20*sqrt(5)+44)*y^2
                         +(216*sqrt(5)+488)*x^4+(20*sqrt(5)+44)*x^2-14*sqrt(5)
                         -30)
  *z^6
 +((216*sqrt(5)+488)*y^6+((2160*sqrt(5)+4800)*x^2+30*sqrt(5)+66)*y^4
                        +((2160*sqrt(5)+4800)*x^4+(60*sqrt(5)+132)*x^2
                                                 -42*sqrt(5)-90)
                         *y^2+(-360*sqrt(5)-808)*x^6+(30*sqrt(5)+66)*x^4
                        +(-42*sqrt(5)-90)*x^2+14*sqrt(5)+28)
  *z^4
 +((-24*sqrt(5)-56)*y^8+((-1440*sqrt(5)-3200)*x^2+20*sqrt(5)+44)*y^6
                       +((2160*sqrt(5)+4800)*x^4+(60*sqrt(5)+132)*x^2
                                                -42*sqrt(5)-90)
                        *y^4
                       +((-1440*sqrt(5)-3200)*x^6+(60*sqrt(5)+132)*x^4
                                                 +(-84*sqrt(5)-180)*x^2
                                                 +28*sqrt(5)+56)
                        *y^2+(168*sqrt(5)+376)*x^8+(20*sqrt(5)+44)*x^6
                       +(-42*sqrt(5)-90)*x^4+(28*sqrt(5)+56)*x^2-6*sqrt(5)-10)
  *z^2+((168*sqrt(5)+376)*x^2+5*sqrt(5)+11)*y^8
 +((-360*sqrt(5)-808)*x^4+(20*sqrt(5)+44)*x^2-14*sqrt(5)-30)*y^6
 +((216*sqrt(5)+488)*x^6+(30*sqrt(5)+66)*x^4+(-42*sqrt(5)-90)*x^2+14*sqrt(5)
                        +28)
  *y^4
 +((-24*sqrt(5)-56)*x^8+(20*sqrt(5)+44)*x^6+(-42*sqrt(5)-90)*x^4
                       +(28*sqrt(5)+56)*x^2-6*sqrt(5)-10)
  *y^2+(5*sqrt(5)+11)*x^8+(-14*sqrt(5)-30)*x^6+(14*sqrt(5)+28)*x^4
 +(-6*sqrt(5)-10)*x^2+sqrt(5)+1)
 /2 . Please wait .... 

    
Maxima関連に戻る
Ponpoko