This is maxima.info, produced by makeinfo version 6.5 from maxima.texi.

This is a Texinfo Maxima Manual

   Copyright 1994,2001 William F. Schelter

INFO-DIR-SECTION Math
START-INFO-DIR-ENTRY
* Maxima: (maxima).     A computer algebra system.
END-INFO-DIR-ENTRY


File: maxima.info,  Node: Functions and Variables for statistical graphs,  Prev: Functions and Variables for descriptive statistics,  Up: descriptive

45.4 Functions and Variables for statistical graphs
===================================================

 -- 関数: barsplot (<data1>, <data2>, ..., <option_1>, <option_2>, ...)
 -- 関数: barsplot_description (...)

     1変量、多変量どちらの標本でも離散統計変数の棒グラフをプロットします

     <data>は1標本を意味する結果のリストかもしれませんし、 それぞれサイ
     ズ<m>の<n>個の標本を意味する<m>行<n>列の行列かもしれません。

     利用可能なオプションは以下のものです:

        • ‘draw’パッケージで定義されたもの。
        • <box_width> (デフォルト, ‘3/4’): 長方形の相対幅。 値は範囲
          ‘[0,1]’内でなければいけません。

        • <grouping> (デフォルト, ‘clustered’): 複数の標本をいかに表示す
          るか示します。 有効な値: ‘clustered’と ‘stacked’。

        • <groups_gap> (デフォルト, ‘1’): 棒の2つの隣り合うグループの隙
          間を表す正の整数。

        • <bars_colors> (デフォルト, ‘[]’): 複数の標本のための色のリスト
          。 指定された色よりもたくさん標本がある時は、 追加で必要な色は
          ランダムに選ばれます。 更に詳しくは‘color’を参照してください。

        • <frequency> (デフォルト, ‘absolute’): 縦座標のスケールを示しま
          す。 可能な値: ‘absolute’, ‘relative’, ‘percent’。

        • <ordering> (デフォルト, ‘orderlessp’): 可能な値は
          ‘orderlessp’か‘ordergreatp’です。 統計的結果がどちら向きに
          <x>軸に並んでいるかを示します。

        • <sample_keys> (デフォルト, ‘[]’): 凡例に使われる文字列のリスト
          。 リストの長さが0か標本の長さ以外なら、 エラーメッセージを返
          します。

        • <start_at> (デフォルト, ‘0’): x軸上のどこからプロットされるか
          示します。

        • ‘barsplot’が内部で割り当てる ‘xtics’を除くすべてのグローバル
          ‘draw’オプション もしこのオプションに自分の値を設定し、複雑な
          シーンを構築したいなら、 ‘barsplot_description’を使用してくだ
          さい。 以下の例を参照してください。

        • 以下のローカル ‘draw’オプション: ‘key’, ‘color’, ‘fill_color’,
          ‘fill_density’, ‘line_width’。 ‘bars’も参照してください。

     関数‘barsplot_description’は 他のグラフィックオブジェクトと一緒に複
     雑なシーンを生成するために グラフィックオブジェクトを生成します。
     wxMaximaとiMaximaインターフェイスで埋め込みヒストグラムを生成するた
     めの 関数‘wxbarsplot’もあります。

     例:

     行列形式での1変量標本。絶対頻度。

          (%i1) load ("descriptive")$
          (%i2) m : read_matrix (file_search ("biomed.data"))$
          (%i3) barsplot(
                  col(m,2),
                  title        = "Ages",
                  xlabel       = "years",
                  box_width    = 1/2,
                  fill_density = 3/4)$

     異なるサイズの2つの標本。 相対頻度とユーザー宣言の色を使って。

          (%i1) load ("descriptive")$
          (%i2) l1:makelist(random(10),k,1,50)$
          (%i3) l2:makelist(random(10),k,1,100)$
          (%i4) barsplot(
                  l1,l2,
                  box_width    = 1,
                  fill_density = 1,
                  bars_colors  = [black, grey],
                  frequencies = relative,
                  sample_keys = ["A", "B"])$

     サイズが等しい4つの非数標本。

          (%i1) load ("descriptive")$
          (%i2) barsplot(
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  title  = "Asking for something to four groups",
                  ylabel = "# of individuals",
                  groups_gap   = 3,
                  fill_density = 0.5,
                  ordering     = ordergreatp)$

     スタックバー。

          (%i1) load ("descriptive")$
          (%i2) barsplot(
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
                  title  = "Asking for something to four groups",
                  ylabel = "# of individuals",
                  grouping     = stacked,
                  fill_density = 0.5,
                  ordering     = ordergreatp)$

     複数プロット文脈での‘barsplot’。

          (%i1) load ("descriptive")$
          (%i2) l1:makelist(random(10),k,1,50)$
          (%i3) l2:makelist(random(10),k,1,100)$
          (%i4) bp1 :
                  barsplot_description(
                   l1,
                   box_width = 1,
                   fill_density = 0.5,
                   bars_colors = [blue],
                   frequency = relative)$
          (%i5) bp2 :
                  barsplot_description(
                   l2,
                   box_width = 1,
                   fill_density = 0.5,
                   bars_colors = [red],
                   frequency = relative)$
          (%i6) draw(gr2d(bp1), gr2d(bp2))$

     棒グラフ関連オプションについては、パッケージ‘draw’の‘bars’を参照し
     てください。 関数‘histogram’と‘piechart’も参照してください。

 -- 関数: boxplot (<data>)
 -- 関数: boxplot (<data>, <option_1>, <option_2>, ...)
 -- 関数: boxplot_description ( ...)

     この関数は箱ひげ図をプロットします。 引数<data>はリストだったり行列
     だったりします。 箱ひげ図は主に異なる標本の比較に使われるので、リス
     トはあまり興味深くありません。 行列の場合には多変量統計変数の複数成
     分おw比較することが可能です。 しかし、できる限り異なる標本サイズの
     標本のリストも許すようにしています。 実際、これは、パッケージ
     ‘descriptive’の中で この種のデータ構造を許容する唯一の関数です

     利用可能なオプションは以下のものです:

        • <box_width> (デフォルト, ‘3/4’): 箱の相対幅。 この値は範囲
          ‘[0,1]’内でなければいけません。

        • <box_orientation> (デフォルト, ‘vertical’): 可能な値:
          ‘vertical’ と ‘horizontal’。

        • ‘boxplot’が内部で割り当てる ‘points_joined’, ‘point_size’,
          ‘point_type’, ‘xtics’, ‘ytics’, ‘xrange’, ‘yrange’を除く すべ
          ての ‘draw’オプション。 もしこのオプションに自分の値を設定し、
          複雑なシーンを構築したいなら、 ‘boxplot_description’を使用して
          ください。

        • 以下のローカル ‘draw’オプション: ‘key’, ‘color’, ‘line_width’。

     関数‘boxplot_description’は 他のグラフィックオブジェクトと一緒に複
     雑なシーンを生成するために グラフィックオブジェクトを生成します。
     wxMaximaとiMaximaインターフェイスで埋め込みヒストグラムを生成するた
     めの 関数‘wxbarsplot’もあります。

     例:

     多変量標本の箱ひげ図。

          (%i1) load ("descriptive")$
          (%i2) s2 : read_matrix(file_search("wind.data"))$
          (%i3) boxplot(s2,
                  box_width  = 0.2,
                  title      = "Windspeed in knots",
                  xlabel     = "Stations",
                  color      = red,
                  line_width = 2)$

     異なるサイズの3つの標本の箱ひげ図。

          (%i1) load ("descriptive")$
          (%i2) A :
                 [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
                  [8, 10, 7, 9, 12, 8, 10],
                  [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
          (%i3) boxplot (A, box_orientation = horizontal)$

 -- 関数: histogram (<list>)
 -- 関数: histogram (<list>, <option_1>, <option_2>, ...)
 -- 関数: histogram (<one_column_matrix>)
 -- 関数: histogram (<one_column_matrix>, <option_1>, <option_2>, ...)
 -- 関数: histogram (<one_row_matrix>)
 -- 関数: histogram (<one_row_matrix>, <option_1>, <option_2>, ...)
 -- 関数: histogram_description (...)
     この関数は一連の標本からヒストグラムをプロットします。 標本データは
     数のリストか一次元行列に保存しなければいけません。

     利用可能なオプションは以下のものです:

        • <nclasses> (デフォルト, ‘10’): ヒストグラムのクラス数、もしく
          は クラスの境界と数か境界だけを含むリスト。

        • <frequency> (デフォルト, ‘absolute’): 縦座標のスケールを示しま
          す。 可能な値: ‘absolute’, ‘relative’, ‘percent’。

        • <htics> (デフォルト, ‘auto’): ヒストグラムチックのフォーマット
          。 可能な値: ‘auto’, ‘endpoints’, ‘intervals’, かラベルのリス
          ト。

        • ‘histogram’が内部で割り当てる‘xrange’, ‘yrange’, ‘xtics’を除く
          すべてのグローバル ‘draw’オプション。 もしこれらのオプションに
          自分の値を設定したいなら、 ‘histogram_description’を利用してく
          ださい。 以下の例を参照してください。

        • 以下のローカル ‘draw’オプション: ‘key’, ‘color’, ‘fill_color’,
          ‘fill_density’と ‘line_width’.  ‘bars’も参照してください。

     関数 ‘histogram_description’は他のグラフィックオブジェクトと一緒に
     複雑なシーンを生成するのに適したグラフィックオブジェクトを生成しま
     す。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成
     する 関数‘wxhistogram’もあります。

     例:

     8クラスを持つ簡単なヒストグラム。

          (%i1) load ("descriptive")$
          (%i2) s1 : read_list (file_search ("pidigits.data"))$
          (%i3) histogram (
                     s1,
                     nclasses     = 8,
                     title        = "pi digits",
                     xlabel       = "digits",
                     ylabel       = "Absolute frequency",
                     fill_color   = grey,
                     fill_density = 0.6)$

     ヒストグラムの境界を-2と12に、クラス数を3に設定します。 また予め定
     義されたチックを導入します:

          (%i1) load ("descriptive")$
          (%i2) s1 : read_list (file_search ("pidigits.data"))$
          (%i3) histogram (
                     s1,
                     nclasses     = [-2,12,3],
                     htics        = ["A", "B", "C"],
                     terminal     = png,
                     fill_color   = "#23afa0",
                     fill_density = 0.6)$

     ‘xrange’を設定しシーンの中に明示的な曲線を足すのに
     ‘histogram_description’を利用します:

          (%i1) load ("descriptive")$
          (%i2) ( load("distrib"),
                  m: 14, s: 2,
                  s2: random_normal(m, s, 1000) ) $
          (%i3) draw2d(
                  grid   = true,
                  xrange = [5, 25],
                  histogram_description(
                    s2,
                    nclasses     = 9,
                    frequency    = relative,
                    fill_density = 0.5),
                  explicit(pdf_normal(x,m,s), x, m - 3*s, m + 3* s))$

 -- 関数: piechart (<list>)
 -- 関数: piechart (<list>, <option_1>, <option_2>, ...)
 -- 関数: piechart (<one_column_matrix>)
 -- 関数: piechart (<one_column_matrix>, <option_1>, <option_2>, ...)
 -- 関数: piechart (<one_row_matrix>)
 -- 関数: piechart (<one_row_matrix>, <option_1>, <option_2>, ...)
 -- 関数: piechart_description (...)

     ‘barsplot’に似ていますが、長方形の代わりに扇をプロットします。

     利用可能なオプションは以下のものです:

        • <sector_colors> (デフォルト, ‘[]’): セクタの色のリスト。 指定
          した色よりも多くセクタがあるときは、必要な色の超過分がランダム
          に選ばれます。 それらについて更に知るには ‘color’を参照してく
          ださい。

        • <pie_center> (デフォルト, ‘[0,0]’): 円グラフの中心。

        • <pie_radius>　(デフォルト, ‘1’): 円グラフの半径。

        • ‘piechart’が内部で割り当てる‘key’を除いたすべてのグローバル
          ‘draw’オプション。 もしこのオプションに自分の値を設定し、複雑
          なシーンを構築したいなら、 ‘piechart_description’を利用してく
          ださい。

        • 以下のローカル ‘draw’オプション: ‘key’, ‘color’,
          ‘fill_display’, ‘line_width’。 ‘ellipse’も参照してください。

     関数 ‘piechart_description’は他のグラフィックオブジェクトと一緒に 複
     雑なシーンを生成するのに適したグラフィックオブジェクトを生成します
     。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成す
     る 関数‘wxhistogram’もあります。

     例:

          (%i1) load ("descriptive")$
          (%i2) s1 : read_list (file_search ("pidigits.data"))$
          (%i3) piechart(
                  s1,
                  xrange = [-1.1, 1.3],
                  yrange = [-1.1, 1.1],
                  title  = "Digit frequencies in pi")$

     関数‘barsplot’も参照してください。

 -- 関数: scatterplot (<list>)
 -- 関数: scatterplot (<list>, <option_1>, <option_2>, ...)
 -- 関数: scatterplot (<matrix>)
 -- 関数: scatterplot (<matrix>, <option_1>, <option_2>, ...)
 -- 関数: scatterplot_description (...)

     1変量(<list>)や多変量(<matrix>)の標本の散布図をプロットします。

     利用可能なオプションは ‘histogram’が許すものと同じです。

     関数 ‘scatterplot_description’は他のグラフィックオブジェクトと一緒
     に 複雑なシーンを生成するのに適したグラフィックオブジェクトを生成し
     ます。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生
     成する 関数‘wxscatterplot’もあります。

     例:

     シミュレーティッドGauss標本の1変量散布図。

          (%i1) load ("descriptive")$
          (%i2) load ("distrib")$
          (%i3) scatterplot(
                  random_normal(0,1,200),
                  xaxis      = true,
                  point_size = 2,
                  dimensions = [600,150])$

     二次元散布図。

          (%i1) load ("descriptive")$
          (%i2) s2 : read_matrix (file_search ("wind.data"))$
          (%i3) scatterplot(
                 submatrix(s2, 1,2,3),
                 title      = "Data from stations #4 and #5",
                 point_type = diamant,
                 point_size = 2,
                 color      = blue)$

     3次元散布図。

          (%i1) load ("descriptive")$
          (%i2) s2 : read_matrix (file_search ("wind.data"))$
          (%i3) scatterplot(submatrix (s2, 1,2), nclasses=4)$

     5つのクラスのヒストグラムと5次元散布図。

          (%i1) load ("descriptive")$
          (%i2) s2 : read_matrix (file_search ("wind.data"))$
          (%i3) scatterplot(
                  s2,
                  nclasses     = 5,
                  frequency    = relative,
                  fill_color   = blue,
                  fill_density = 0.3,
                  xtics        = 5)$

     2次元か3次元で孤立点か線で結んだ点をプロットすることについては、
     ‘points’を参照してください。 ‘histogram’も参照してください。

 -- 関数: starplot (<data1>, <data2>, ..., <option_1>, <option_2>, ...)
 -- 関数: starplot_description (...)

     1変量、多変量どちらの標本でも離散統計変数のスターダイアグラムをプロ
     ットします

     <data>は1標本を意味する結果のリストかもしれませんし、 それぞれサイ
     ズ<m>の<n>個の標本を意味する<m>行<n>列の行列かもしれません。

     利用可能なオプションは以下のものです:

        • <stars_colors> (デフォルト, ‘[]’): 多変量標本の色のリスト。 指
          定した色よりも多くセクタがあるときは、必要な色の超過分がランダ
          ムに選ばれます。 それらについて更に知るには ‘color’を参照して
          ください。

        • <frequency> (デフォルト, ‘absolute’): 半径のスケールを示します
          。 可能な値: ‘absolute’, ‘relative’, ‘percent’。

        • <ordering> (デフォルト, ‘orderlessp’): 可能な値は
          ‘orderlessp’か‘ordergreatp’です。 統計的結果がどちら向きに
          <x>軸に並んでいるかを示します。

        • <sample_keys> (デフォルト, ‘[]’): 凡例に使われる文字列のリスト
          。 リストの長さが0か標本の長さ以外なら、 エラーメッセージを返
          します。

        • <star_center> (デフォルト, ‘[0,0]’): ダイアグラムの中心。

        • <star_radius> (デフォルト, ‘1’): ダイアグラムの半径。

        • ‘starplot’が内部で割り当てる‘points_joined’, ‘point_type’,
          ‘key’を除いたすべてのグローバル ‘draw’オプション。 もしこのオ
          プションに自分の値を設定し、複雑なシーンを構築したいなら、
          ‘starplot_description’を利用してください。

        • 以下のローカル ‘draw’オプション: ‘line_width’。

     関数 ‘starplot_description’は他のグラフィックオブジェクトと一緒に 複
     雑なシーンを生成するのに適したグラフィックオブジェクトを生成します
     。 wxMaximaと iMaximaインターフェイスで埋め込みヒストグラムを生成す
     る 関数‘wxstarplot’もあります。

     例:

     絶対頻度に基づいたプロット。 ユーザーが定義した位置と半径。

          (%i1) load ("descriptive")$
          (%i2) l1: makelist(random(10),k,1,50)$
          (%i3) l2: makelist(random(10),k,1,200)$
          (%i4) starplot(
                  l1, l2,
                  stars_colors = [blue,red],
                  sample_keys = ["1st sample", "2nd sample"],
                  star_center = [1,2],
                  star_radius = 4,
                  proportional_axes = xy,
                  line_width = 2 ) $

 -- 関数: stemplot (<data>)
 -- 関数: stemplot (<data>, <option>)

     幹葉図をプロットします。

     固有の利用可能なオプションは:

        • <leaf_unit> (デフォルト, ‘1’): 葉の単位を示します; 10のべきで
          なければいけません。

     例:

          (%i1) load ("descriptive")$
          (%i2) load("distrib")$
          (%i3) stemplot(
                  random_normal(15, 6, 100),
                  leaf_unit = 0.1);
          -5|4
           0|37
           1|7
           3|6
           4|4
           5|4
           6|57
           7|0149
           8|3
           9|1334588
          10|07888
          11|01144467789
          12|12566889
          13|24778
          14|047
          15|223458
          16|4
          17|11557
          18|000247
          19|4467799
          20|00
          21|1
          22|2335
          23|01457
          24|12356
          25|455
          27|79
          key: 6|3 =  6.3
          (%o3)                  done


File: maxima.info,  Node: diag,  Next: distrib,  Prev: descriptive,  Up: Top

46 diag
*******

* Menu:

* Functions and Variables for diag::


File: maxima.info,  Node: Functions and Variables for diag,  Prev: diag,  Up: diag

46.1 Functions and Variables for diag
=====================================

 -- 関数: diag (<lm>)
     <lm>の行列を対角に持つ平方行列を構成します。 <lm>は行列かスカラーの
     リストです。

     例:
          (%i1) load("diag")$

          (%i2) a1:matrix([1,2,3],[0,4,5],[0,0,6])$

          (%i3) a2:matrix([1,1],[1,0])$

          (%i4) diag([a1,x,a2]);
                             [ 1  2  3  0  0  0 ]
                             [                  ]
                             [ 0  4  5  0  0  0 ]
                             [                  ]
                             [ 0  0  6  0  0  0 ]
          (%o4)              [                  ]
                             [ 0  0  0  x  0  0 ]
                             [                  ]
                             [ 0  0  0  0  1  1 ]
                             [                  ]
                             [ 0  0  0  0  1  0 ]

     この関数を使うためには、最初に‘load("diag")’を書いてください。

 -- 関数: JF (<lambda>,<n>)
     固有値<lambda>を持つ次数<n>のJordan細胞を返します。

     例:
          (%i1) load("diag")$

          (%i2) JF(2,5);
                              [ 2  1  0  0  0 ]
                              [               ]
                              [ 0  2  1  0  0 ]
                              [               ]
          (%o2)               [ 0  0  2  1  0 ]
                              [               ]
                              [ 0  0  0  2  1 ]
                              [               ]
                              [ 0  0  0  0  2 ]
          (%i3) JF(3,2);
                                   [ 3  1 ]
          (%o3)                    [      ]
                                   [ 0  3 ]

     この関数を使うためには、最初に‘load("diag")’を書いてください。

 -- 関数: jordan (<mat>)
     行列<mat>のJordan形を返しますが、それはMaximaリストでコード化されま
     す。 対応する行列を得るには、 ‘jordan’の出力を引数として使って関数
     ‘dispJordan’をコールしてください。

     例:
          (%i1) load("diag")$

          (%i3) a:matrix([2,0,0,0,0,0,0,0],
                         [1,2,0,0,0,0,0,0],
                         [-4,1,2,0,0,0,0,0],
                         [2,0,0,2,0,0,0,0],
                         [-7,2,0,0,2,0,0,0],
                         [9,0,-2,0,1,2,0,0],
                         [-34,7,1,-2,-1,1,2,0],
                         [145,-17,-16,3,9,-2,0,3])$

          (%i34) jordan(a);
          (%o4)             [[2, 3, 3, 1], [3, 1]]
          (%i5) dispJordan(%);
                          [ 2  1  0  0  0  0  0  0 ]
                          [                        ]
                          [ 0  2  1  0  0  0  0  0 ]
                          [                        ]
                          [ 0  0  2  0  0  0  0  0 ]
                          [                        ]
                          [ 0  0  0  2  1  0  0  0 ]
          (%o5)           [                        ]
                          [ 0  0  0  0  2  1  0  0 ]
                          [                        ]
                          [ 0  0  0  0  0  2  0  0 ]
                          [                        ]
                          [ 0  0  0  0  0  0  2  0 ]
                          [                        ]
                          [ 0  0  0  0  0  0  0  3 ]

     この関数を使うためには、最初に‘load("diag")’を書いてください。
     ‘dispJordan’と‘minimalPoly’も参照してください。

 -- 関数: dispJordan (<l>)
     関数‘jordan’によって与えられる出力である Maximaリスト<l>で与えられ
     たコードに関連付けられた Jordan行列を返します。

     例:
          (%i1) load("diag")$

          (%i2) b1:matrix([0,0,1,1,1],
                          [0,0,0,1,1],
                          [0,0,0,0,1],
                          [0,0,0,0,0],
                          [0,0,0,0,0])$

          (%i3) jordan(b1);
          (%o3)                  [[0, 3, 2]]
          (%i4) dispJordan(%);
                              [ 0  1  0  0  0 ]
                              [               ]
                              [ 0  0  1  0  0 ]
                              [               ]
          (%o4)               [ 0  0  0  0  0 ]
                              [               ]
                              [ 0  0  0  0  1 ]
                              [               ]
                              [ 0  0  0  0  0 ]

     この関数を使うためには、最初に‘load("diag")’を書いてください。
     ‘jordan’と‘minimalPoly’も参照してください。

 -- 関数: minimalPoly (<l>)
     関数‘jordan’によって与えられる出力である Maximaリスト<l>で与えられ
     たコードに関連付けられた 最小多項式を返します。

     例:
          (%i1) load("diag")$

          (%i2) a:matrix([2,1,2,0],
                         [-2,2,1,2],
                         [-2,-1,-1,1],
                         [3,1,2,-1])$

          (%i3) jordan(a);
          (%o3)               [[- 1, 1], [1, 3]]
          (%i4) minimalPoly(%);
                                      3
          (%o4)                (x - 1)  (x + 1)

     この関数を使うためには、最初に‘load("diag")’を書いてください。
     ‘jordan’と‘dispJordan’も参照してください。

 -- 関数: ModeMatrix (<A>,<l>)
     Returns the matrix (M^^-1).A.M=J― ただし<J>は<A>のJordan形とする― の
     ような 行列<M>を返します。 Maximaリスト<l>は 関数‘jordan’が返すよう
     なJordan形のコード化された形式です。

     例:
          (%i1) load("diag")$

          (%i2) a:matrix([2,1,2,0],
                    [-2,2,1,2],
                    [-2,-1,-1,1],
                    [3,1,2,-1])$

          (%i3) jordan(a);
          (%o3)               [[- 1, 1], [1, 3]]
          (%i4) M: ModeMatrix(a,%);
                            [  1    - 1   1   1 ]
                            [                   ]
                            [   1               ]
                            [ - -   - 1   0   0 ]
                            [   9               ]
                            [                   ]
          (%o4)             [   13              ]
                            [ - --   1   - 1  0 ]
                            [   9               ]
                            [                   ]
                            [  17               ]
                            [  --   - 1   1   1 ]
                            [  9                ]
          (%i5) is(  (M^^-1).a.M = dispJordan(%o3)  );
          (%o5)                      true
     ‘dispJordan(%o3)’は 行列‘a’のJordan形であることに注意してください。

     この関数を使うためには、最初に‘load("diag")’を書いてください。
     ‘jordan’と‘dispJordan’も参照してください。

 -- 関数: mat_function (<f>,<mat>)
     f(mat)を返します。 ここで、<f>は解析関数で<mat>は行列です。 この計
     算はCauchyの積分公式に基づきます。 積分公式は、 もし‘f(x)’が解析的
     、かつ、

          mat = diag([JF(m1,n1),...,JF(mk,nk)]),

     なら、

          f(mat) = ModeMatrix*diag([f(JF(m1,n1)), ..., f(JF(mk,nk))])
                                                        *ModeMatrix^^(-1)

     をはっきり述べます。

     この計算に関して約6か8の別の方法があることに注意してください。

     いくつかの例が続きます。

     例 1:
          (%i1) load("diag")$

          (%i2) b2:matrix([0,1,0], [0,0,1], [-1,-3,-3])$

          (%i3) mat_function(exp,t*b2);
                         2   - t
                        t  %e          - t     - t
          (%o3) matrix([-------- + t %e    + %e   ,
                           2
                  - t     - t                           - t
           2    %e      %e        - t           - t   %e
          t  (- ----- - ----- + %e   ) + t (2 %e    - -----)
                  t       2                             t
                         t
                                   - t          - t     - t
                 - t       - t   %e        2  %e      %e
           + 2 %e   , t (%e    - -----) + t  (----- - -----)
                                   t            2       t
                         2   - t            - t     - t
               - t      t  %e        2    %e      %e        - t
           + %e   ], [- --------, - t  (- ----- - ----- + %e   ),
                           2                t       2
                                                   t
                  - t     - t      2   - t
             2  %e      %e        t  %e          - t
          - t  (----- - -----)], [-------- - t %e   ,
                  2       t          2
                  - t     - t                           - t
           2    %e      %e        - t           - t   %e
          t  (- ----- - ----- + %e   ) - t (2 %e    - -----),
                  t       2                             t
                         t
                - t     - t                 - t
           2  %e      %e            - t   %e
          t  (----- - -----) - t (%e    - -----)])
                2       t                   t
          (%i4) ratsimp(%);
                         [   2              - t ]
                         [ (t  + 2 t + 2) %e    ]
                         [ -------------------- ]
                         [          2           ]
                         [                      ]
                         [         2   - t      ]
          (%o4)  Col 1 = [        t  %e         ]
                         [      - --------      ]
                         [           2          ]
                         [                      ]
                         [     2          - t   ]
                         [   (t  - 2 t) %e      ]
                         [   ----------------   ]
                         [          2           ]
                   [      2        - t    ]
                   [    (t  + t) %e       ]
                   [                      ]
           Col 2 = [     2            - t ]
                   [ - (t  - t - 1) %e    ]
                   [                      ]
                   [     2          - t   ]
                   [   (t  - 3 t) %e      ]
                   [        2   - t       ]
                   [       t  %e          ]
                   [       --------       ]
                   [          2           ]
                   [                      ]
                   [      2          - t  ]
           Col 3 = [    (t  - 2 t) %e     ]
                   [  - ----------------  ]
                   [           2          ]
                   [                      ]
                   [   2              - t ]
                   [ (t  - 4 t + 2) %e    ]
                   [ -------------------- ]
                   [          2           ]


     例 2:
          (%i5) b1:matrix([0,0,1,1,1],
                          [0,0,0,1,1],
                          [0,0,0,0,1],
                          [0,0,0,0,0],
                          [0,0,0,0,0])$

          (%i6) mat_function(exp,t*b1);
                            [              2     ]
                            [             t      ]
                            [ 1  0  t  t  -- + t ]
                            [             2      ]
                            [                    ]
          (%o6)             [ 0  1  0  t    t    ]
                            [                    ]
                            [ 0  0  1  0    t    ]
                            [                    ]
                            [ 0  0  0  1    0    ]
                            [                    ]
                            [ 0  0  0  0    1    ]
          (%i7) minimalPoly(jordan(b1));
                                       3
          (%o7)                       x
          (%i8) ident(5)+t*b1+1/2*(t^2)*b1^^2;
                            [              2     ]
                            [             t      ]
                            [ 1  0  t  t  -- + t ]
                            [             2      ]
                            [                    ]
          (%o8)             [ 0  1  0  t    t    ]
                            [                    ]
                            [ 0  0  1  0    t    ]
                            [                    ]
                            [ 0  0  0  1    0    ]
                            [                    ]
                            [ 0  0  0  0    1    ]
          (%i9) mat_function(exp,%i*t*b1);
                       [                           2 ]
                       [                          t  ]
                       [ 1  0  %i t  %i t  %i t - -- ]
                       [                          2  ]
                       [                             ]
          (%o9)        [ 0  1   0    %i t    %i t    ]
                       [                             ]
                       [ 0  0   1     0      %i t    ]
                       [                             ]
                       [ 0  0   0     1        0     ]
                       [                             ]
                       [ 0  0   0     0        1     ]
          (%i10) mat_function(cos,t*b1)+%i*mat_function(sin,t*b1);
                        [                           2 ]
                        [                          t  ]
                        [ 1  0  %i t  %i t  %i t - -- ]
                        [                          2  ]
                        [                             ]
          (%o10)        [ 0  1   0    %i t    %i t    ]
                        [                             ]
                        [ 0  0   1     0      %i t    ]
                        [                             ]
                        [ 0  0   0     1        0     ]
                        [                             ]
                        [ 0  0   0     0        1     ]

     例 3:
          (%i11) a1:matrix([2,1,0,0,0,0],
                           [-1,4,0,0,0,0],
                           [-1,1,2,1,0,0],
                           [-1,1,-1,4,0,0],
                           [-1,1,-1,1,3,0],
                           [-1,1,-1,1,1,2])$

          (%i12) fpow(x):=block([k],declare(k,integer),x^k)$

          (%i13) mat_function(fpow,a1);
                          [  k      k - 1 ]         [      k - 1    ]
                          [ 3  - k 3      ]         [   k 3         ]
                          [               ]         [               ]
                          [       k - 1   ]         [  k      k - 1 ]
                          [  - k 3        ]         [ 3  + k 3      ]
                          [               ]         [               ]
                          [       k - 1   ]         [      k - 1    ]
                          [  - k 3        ]         [   k 3         ]
          (%o13)  Col 1 = [               ] Col 2 = [               ]
                          [       k - 1   ]         [      k - 1    ]
                          [  - k 3        ]         [   k 3         ]
                          [               ]         [               ]
                          [       k - 1   ]         [      k - 1    ]
                          [  - k 3        ]         [   k 3         ]
                          [               ]         [               ]
                          [       k - 1   ]         [      k - 1    ]
                          [  - k 3        ]         [   k 3         ]
                   [       0       ]         [       0       ]
                   [               ]         [               ]
                   [       0       ]         [       0       ]
                   [               ]         [               ]
                   [  k      k - 1 ]         [      k - 1    ]
                   [ 3  - k 3      ]         [   k 3         ]
                   [               ]         [               ]
           Col 3 = [       k - 1   ] Col 4 = [  k      k - 1 ]
                   [  - k 3        ]         [ 3  + k 3      ]
                   [               ]         [               ]
                   [       k - 1   ]         [      k - 1    ]
                   [  - k 3        ]         [   k 3         ]
                   [               ]         [               ]
                   [       k - 1   ]         [      k - 1    ]
                   [  - k 3        ]         [   k 3         ]
                   [    0    ]
                   [         ]         [ 0  ]
                   [    0    ]         [    ]
                   [         ]         [ 0  ]
                   [    0    ]         [    ]
                   [         ]         [ 0  ]
           Col 5 = [    0    ] Col 6 = [    ]
                   [         ]         [ 0  ]
                   [    k    ]         [    ]
                   [   3     ]         [ 0  ]
                   [         ]         [    ]
                   [  k    k ]         [  k ]
                   [ 3  - 2  ]         [ 2  ]

     この関数を使うためには、最初に‘load("diag")’を書いてください。


File: maxima.info,  Node: distrib,  Next: draw,  Prev: diag,  Up: Top

47 distrib
**********

* Menu:

* Introduction to distrib::
* Functions and Variables for continuous distributions::
* Functions and Variables for discrete distributions::


File: maxima.info,  Node: Introduction to distrib,  Next: Functions and Variables for continuous distributions,  Prev: distrib,  Up: distrib

47.1 Introduction to distrib
============================

パッケージ ‘distrib’には 離散と連続両方の単変量モデル上の確率計算を行う
関数一式が入っています。

   以下は基本的な確率関連の定義の短い復習です。

   f(x)を 絶対連続確率変数 Xの <density function, 密度函数>とします。
<distribution function, 分布函数>は以下のように定義されます。
                            x
                           /
                           [
                    F(x) = I     f(u) du
                           ]
                           /
                            minf
   これは確率 <Pr(X <= x)>に等しいです。

   <mean, 平均>値は局所化パラメータで、以下のように定義されます。
                          inf
                         /
                         [
                E[X]  =  I   x f(x) dx
                         ]
                         /
                          minf

   <variance, 分散>は変動の測度です。
                      inf
                     /
                     [                    2
              V[X] = I     f(x) (x - E[X])  dx
                     ]
                     /
                      minf
   これは正の実数です。 分散の平方根は <standard deviation, 標準偏差>,
D[X]=sqrt(V[X])で、 変動の別の測度です。

   <skewness coefficient, 歪度係数>は非対称性の測度です。
                      inf
                     /
                 1   [                    3
       SK[X] = ----- I     f(x) (x - E[X])  dx
                   3 ]
               D[X]  /
                      minf

   <kurtosis coefficient, 尖度係数>は分布のとんがり具合を評価します。
                      inf
                     /
                 1   [                    4
       KU[X] = ----- I     f(x) (x - E[X])  dx - 3
                   4 ]
               D[X]  /
                      minf
   もし Xがガウシアンなら、 KU[X]=0です。 実際、歪度と尖度は分布の非ガウ
シアン性を評価するのに使われる形状パラメータです。

   もし確率変数 Xが離散的なら、密度すなわち <probability, 確率>函数
f(x)は 数 x_iのある可算集合内で正値を取り、それ以外で0を取ります。 この
場合、分布函数は以下の通りです。
                            ====
                            \
                     F(x) =  >    f(x )
                            /        i
                            ====
                           x <= x
                            i

   平均、分散、標準偏差、歪度係数、尖度係数はそれぞれ以下の形を取ります
。
                            ====
                            \
                     E[X] =  >  x  f(x ) ,
                            /    i    i
                            ====
                             x
                              i

                     ====
                     \                     2
             V[X] =   >    f(x ) (x - E[X])  ,
                     /        i    i
                     ====
                      x
                       i

                    D[X] = sqrt(V[X]),

                          ====
                   1      \                     3
       SK[X] =  -------    >    f(x ) (x - E[X])
                D[X]^3    /        i    i
                          ====
                           x
                            i
   and
                          ====
                   1      \                     4
       KU[X] =  -------    >    f(x ) (x - E[X])   - 3 ,
                D[X]^4    /        i    i
                          ====
                           x
                            i

   以下はパッケージ ‘distrib’での命名規則です。 すべての関数名は2つの部
分を持ちます。 一番目の部分は計算したい函数やパラメータへの参照となりま
す。
     Functions:
        Density function            (pdf_*)
        Distribution function       (cdf_*)
        Quantile                    (quantile_*)
        Mean                        (mean_*)
        Variance                    (var_*)
        Standard deviation          (std_*)
        Skewness coefficient        (skewness_*)
        Kurtosis coefficient        (kurtosis_*)
        Random variate              (random_*)

   二番目の部分は確率モデルの明示的な参照になります。
     Continuous distributions:
        Normal              (*normal)
        Student             (*student_t)
        Chi^2               (*chi2)
        Noncentral Chi^2    (*noncentral_chi2)
        F                   (*f)
        Exponential         (*exp)
        Lognormal           (*lognormal)
        Gamma               (*gamma)
        Beta                (*beta)
        Continuous uniform  (*continuous_uniform)
        Logistic            (*logistic)
        Pareto              (*pareto)
        Weibull             (*weibull)
        Rayleigh            (*rayleigh)
        Laplace             (*laplace)
        Cauchy              (*cauchy)
        Gumbel              (*gumbel)

     Discrete distributions:
        Binomial             (*binomial)
        Poisson              (*poisson)
        Bernoulli            (*bernoulli)
        Geometric            (*geometric)
        Discrete uniform     (*discrete_uniform)
        hypergeometric       (*hypergeometric)
        Negative binomial    (*negative_binomial)
        Finite discrete      (*general_finite_discrete)

   例えば、 ‘pdf_student_t(x,n)’はn個の自由度を持つStudent分布の密度函数
で、 ‘std_pareto(a,b)’は パラメータ <a>と <b>を持つPareto分布の標準偏差
であり、 ‘kurtosis_poisson(m)’は平均値 <m>を持つPoisson分布の尖度係数で
す。

   パッケージ ‘distrib’を利用するには、初めに
     (%i1) load("distrib")$
   とタイプしてそれをロードする必要があります。

   ご意見、バグ、提案は著者 <’mario AT edu DOT xunta DOT es’>に連絡くだ
さい。


File: maxima.info,  Node: Functions and Variables for continuous distributions,  Next: Functions and Variables for discrete distributions,  Prev: Introduction to distrib,  Up: distrib

47.2 Functions and Variables for continuous distributions
=========================================================

 -- 関数: pdf_normal (<x>,<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の密度函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_normal (<x>,<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の密度函数の <x>での値を返します。 こ
     の関数はMaximaの組み込み誤差関数 ‘erf’を使って定義されます。

          (%i1) load ("distrib")$
          (%i2) assume(s>0)$ cdf_normal(x,m,s);
                                       x - m
                                 erf(---------)
                                     sqrt(2) s    1
          (%o3)                  -------------- + -
                                       2          2

     ‘erf’も参照してください。

 -- 関数: quantile_normal (<q>,<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の <q>分位数を返します。 言い換える
     と、これは ‘cdf_normal’の逆函数です。 引数 <q>は [0,1]の要素でなけ
     ればいけません。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

          (%i1) load ("distrib")$
          (%i2) quantile_normal(95/100,0,1);
                                                9
          (%o2)             sqrt(2) inverse_erf(--)
                                                10
          (%i3) float(%);
          (%o3)               1.644853626951472

 -- 関数: mean_normal (<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の平均、すなわち <m>を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_normal (<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の分散、すなわち <s^2>を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_normal (<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の分散、すなわち <s>を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_normal (<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の歪度を返します。それは常に0に等し
     いです。 この関数を利用するには、初めに ‘load("distrib")’を書いてく
     ださい。

 -- 関数: kurtosis_normal (<m>,<s>)
     s>0で Normal(m,s)(正規)確率変数の尖度を返します。それは常に0に等し
     いです。 この関数を利用するには、初めに ‘load("distrib")’を書いてく
     ださい。

 -- 関数: random_normal (<m>,<s>)
 -- 関数: random_normal (<m>,<s>,<n>)
     s>0で Normal(m,s)(正規)確率変量を返します。 三番目の引数 <n>ととも
     に‘random_normal’をコールすると、 サイズ <n>のランダムな標本がシミ
     ュレートされます。

     これはBox-Muellerアルゴリズムの実装です。 Knuth, D.E. (1981)
     <Seminumerical Algorithms.  The Art of Computer Programming.>
     Addison-Wesleyに記載されています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_student_t (<x>,<n>)
     n>0自由度のStudent確率変数 t(n)の密度函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_student_t (<x>,<n>)
     n>0自由度のStudent確率変数 t(n)の分布函数の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_student_t(1/2, 7/3);
                                                   7  1  28
                       beta_incomplete_regularized(-, -, --)
                                                   6  2  31
          (%o2)    1 - -------------------------------------
                                         2
          (%i3) float(%);
          (%o3)                .6698450596140415

 -- 関数: quantile_student_t (<q>,<n>)
     n>0自由度のStudent確率変数 t(n)の <q>-分位数を返します。 言い換える
     と、これは ‘cdf_student_t’の逆函数です。 引数 <q>は [0,1]の要素でな
     ければいけません。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: mean_student_t (<n>)
     n>0自由度のStudent確率変数 t(n)の平均を返します。 それはいつも0に等
     しいです。 この関数を利用するには、初めに ‘load("distrib")’を書いて
     ください。

 -- 関数: var_student_t (<n>)
     n>2自由度のStudent確率変数 t(n)の分散を返します。

          (%i1) load ("distrib")$
          (%i2) assume(n>2)$  var_student_t(n);
                                          n
          (%o3)                         -----
                                        n - 2

 -- 関数: std_student_t (<n>)
     n>2自由度のStudent確率変数 t(n)の標準偏差を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_student_t (<n>)
     n>3自由度のStudent確率変数 t(n)の歪度係数を返します。 それはいつも
     0に等しいです。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

 -- 関数: kurtosis_student_t (<n>)
     n>4自由度のStudent確率変数 t(n)の尖度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_student_t (<n>)
 -- 関数: random_student_t (<n>,<m>)
     n>0自由度のStudent確率変量 t(n)を返します。 三番目の引数 <m>ととも
     に‘random_student_t’をコールすると、 サイズ <m>のランダムな標本がシ
     ミュレートされます。

     実装アルゴリズムは、 もし <Z>が正規確率変数 N(0,1)で、 S^2が<n>自由
     度のカイ二乗確率変数 Chi^2(n)なら、
                                     Z
                           X = -------------
                               /   2  \ 1/2
                               |  S   |
                               | ---  |
                               \  n   /
     は <n>自由度のStudent確率変数 t(n)であるという事実に基づいています
     。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_noncentral_student_t (<x>,<n>,<ncp>)
     n>0自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の密度函数の<x>での値を返します。 この関数を利用するには
     、初めに ‘load("distrib")’を書いてください。

     時々、最終結果を得るために余分な仕事が必要となります。

          (%i1) load ("distrib")$
          (%i2) expand(pdf_noncentral_student_t(3,5,0.1));
                 .01370030107589574 sqrt(5)
          (%o2)  --------------------------
                 sqrt(2) sqrt(14) sqrt(%pi)
             1.654562884111515E-4 sqrt(5)
           + ----------------------------
                      sqrt(%pi)
             .02434921505438663 sqrt(5)
           + --------------------------
                        %pi
          (%i3) float(%);
          (%o3)          .02080593159405669

 -- 関数: cdf_noncentral_student_t (<x>,<n>,<ncp>)
     n>0自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の分布函数の<x>での値を返します。 この函数は閉形式を持た
     ず、 もしグローバル変数‘numer’が‘true’に等しいか 引数の少なくとも
     1つが浮動小数点数なら、数値的に計算されます。 そうでなければ、名目
     上の式を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_noncentral_student_t(-2,5,-5);
          (%o2) cdf_noncentral_student_t(- 2, 5, - 5)
          (%i3) cdf_noncentral_student_t(-2.0,5,-5);
          (%o3)          .9952030093319743

 -- 関数: quantile_noncentral_student_t (<q>,<n>,<ncp>)
     n>0自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の<q>-分位数を返します。 言い換えると、これは
     ‘cdf_noncentral_student_t’の逆函数です。 引数 <q>は [0,1]の要素でな
     ければいけません。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: mean_noncentral_student_t (<n>,<ncp>)
     n>0自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の平均を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

          (%i1) load ("distrib")$
          (%i2) (assume(df>1), mean_noncentral_student_t(df,k));
                             df - 1
                       gamma(------) sqrt(df) k
                               2
          (%o2)        ------------------------
                                        df
                          sqrt(2) gamma(--)
                                        2

 -- 関数: var_noncentral_student_t (<n>,<ncp>)
     n>2自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の分散を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: std_noncentral_student_t (<n>,<ncp>)
     n>2自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の標準偏差を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: skewness_noncentral_student_t (<n>,<ncp>)
     n>3自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の歪度係数を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_noncentral_student_t (<n>,<ncp>)
     n>3自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)の尖度係数を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: random_noncentral_student_t (<n>,<ncp>)
 -- 関数: random_noncentral_student_t (<n>,<ncp>,<m>)
     n>0自由度で非中心度パラメータ ncpを持つ 非中心Student確率変量
     nc_t(n,ncp)を返します。 三番目の引数 <m>とともに
     ‘random_noncentral_student_t’をコールすると、 サイズ <m>のランダム
     な標本がシミュレートされます。

     もし <X>が正規確率変数 N(ncp,1)で、 S^2が<n>自由度のカイ二乗確率変
     数 Chi^2(n)なら、
                                     X
                           U = -------------
                               /   2  \ 1/2
                               |  S   |
                               | ---  |
                               \  n   /
     は <n>自由度で非中心度パラメータ ncpを持つ 非中心Student確率変数
     nc_t(n,ncp)であるという事実に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_chi2 (<x>,<n>)
     n>0でカイ二乗確率変数 Chi^2(n)の密度函数の <x>での値を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)と同値です。 だから Maximaは結果を得
     るのに充分な情報を持っていない時 ガンマ密度に基づいた名詞形を返しま
     す。

          (%i1) load ("distrib")$
          (%i2) pdf_chi2(x,n);
                                              n
          (%o2)                  pdf_gamma(x, -, 2)
                                              2
          (%i3) assume(x>0, n>0)$  pdf_chi2(x,n);
                                   n/2 - 1   - x/2
                                  x        %e
          (%o4)                   ----------------
                                    n/2       n
                                   2    gamma(-)
                                              2

 -- 関数: cdf_chi2 (<x>,<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の分布函数の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_chi2(3,4);
                                                         3
          (%o2)      1 - gamma_incomplete_regularized(2, -)
                                                         2
          (%i3) float(%);
          (%o3)               .4421745996289256

 -- 関数: quantile_chi2 (<q>,<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の <q>-分位数を返します; 言い換える
     と、これは ‘cdf_chi2’の逆函数です。 引数 <q>は [0,1]の要素でなけれ
     ばいけません。

     この函数は閉形式を持たず、 もしグローバル変数‘numer’が‘true’に等し
     いか 引数の少なくとも1つが浮動小数点数なら、数値的に計算されます。
     そうでなければ、 Chi^2(n)確率変数は Gamma(n/2,2)と同値なので、 ガン
     マ分位函数に基づいた名目上の式を返します。

          (%i1) load ("distrib")$
          (%i2) quantile_chi2(0.99,9);
          (%o2)                   21.66599433346194
          (%i3) quantile_chi2(0.99,n);
                                                  n
          (%o3)              quantile_gamma(0.99, -, 2)
                                                  2

 -- 関数: mean_chi2 (<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の平均を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)に同値なので、 Maximaが結果を得るの
     に充分な情報を持たない時には、 ガンマ平均に基づいた名詞形を返します
     。

          (%i1) load ("distrib")$
          (%i2) mean_chi2(n);
                                             n
          (%o2)                   mean_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ mean_chi2(n);
          (%o4)                           n

 -- 関数: var_chi2 (<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の分散を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)に同値なので、 Maximaが結果を得るの
     に充分な情報を持たない時には、 ガンマ分散に基づいた名詞形を返します
     。

          (%i1) load ("distrib")$
          (%i2) var_chi2(n);
                                             n
          (%o2)                    var_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ var_chi2(n);
          (%o4)                          2 n

 -- 関数: std_chi2 (<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の標準偏差を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)に同値なので、 Maximaが結果を得るの
     に充分な情報を持たない時には、 ガンマ標準偏差に基づいた名詞形を返し
     ます。

          (%i1) load ("distrib")$
          (%i2) std_chi2(n);
                                             n
          (%o2)                    std_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ std_chi2(n);
          (%o4)                    sqrt(2) sqrt(n)

 -- 関数: skewness_chi2 (<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の歪度係数を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)に同値なので、 Maximaが結果を得るの
     に充分な情報を持たない時には、 ガンマ歪度係数に基づいた名詞形を返し
     ます。

          (%i1) load ("distrib")$
          (%i2) skewness_chi2(n);
                                               n
          (%o2)                 skewness_gamma(-, 2)
                                               2
          (%i3) assume(n>0)$ skewness_chi2(n);
                                      2 sqrt(2)
          (%o4)                       ---------
                                       sqrt(n)

 -- 関数: kurtosis_chi2 (<n>)
     n>0で、カイ二乗確率変数 Chi^2(n)の尖度係数を返します。

     Chi^2(n)確率変数は Gamma(n/2,2)に同値なので、 Maximaが結果を得るの
     に充分な情報を持たない時には、 ガンマ尖度係数に基づいた名詞形を返し
     ます。

          (%i1) load ("distrib")$
          (%i2) kurtosis_chi2(n);
                                               n
          (%o2)                 kurtosis_gamma(-, 2)
                                               2
          (%i3) assume(n>0)$ kurtosis_chi2(n);
                                         12
          (%o4)                          --
                                         n

 -- 関数: random_chi2 (<n>)
 -- 関数: random_chi2 (<n>,<m>)
     n>0で、カイ二乗確率変量 Chi^2(n)を返します。 二番目の引数 <m>ととも
     に‘random_chi2’をコールすると、 サイズ <m>のランダムな標本がシミュ
     レートされます。

     シミュレーションはAhrens-Chengアルゴリズムに基づきます。 詳細は
     ‘random_gamma’を参照してください。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_noncentral_chi2 (<x>,<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 密度函数の <x>での値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_noncentral_chi2 (<x>,<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 分布函数の <x>での値を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_noncentral_chi2 (<q>,<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の <q>-分位数を返します; 言い換えると、これは
     ‘cdf_noncentral_chi2’の逆函数です。 引数 <q>は [0,1]の要素でなけれ
     ばいけません。

     この関数は閉形式を持たず、 もしグローバル変数 ‘numer’が ‘true’に等
     しいなら、 数値的に計算され、 そうでなければ、名目上の式を返します
     。

 -- 関数: mean_noncentral_chi2 (<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 平均を返します。

 -- 関数: var_noncentral_chi2 (<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 分散を返します。

 -- 関数: std_noncentral_chi2 (<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 標準偏差を返します。

 -- 関数: skewness_noncentral_chi2 (<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 歪度係数を返します。

 -- 関数: kurtosis_noncentral_chi2 (<n>,<ncp>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変数
     nc_Chi^2(n,ncp)の 尖度係数を返します。

 -- 関数: random_noncentral_chi2 (<n>,<ncp>)
 -- 関数: random_noncentral_chi2 (<n>,<ncp>,<m>)
     n>0と非中心度パラメータ ncp>=0を持つ 非中心カイ二乗確率変量
     nc_Chi^2(n,ncp)を返します。 三番目の引数 <m>とともに
     ‘random_noncentral_chi2’をコールすると、 サイズ <m>のランダムな標本
     がシミュレートされます。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_f (<x>,<m>,<n>)
     m,n>0で、F確率変数 F(m,n)の密度関数の <x>の値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_f (<x>,<m>,<n>)
     m,n>0で、F確率変数 F(m,n)の 分布関数の <x>の値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_f(2,3,9/4);
                                                   9  3  3
          (%o2)    1 - beta_incomplete_regularized(-, -, --)
                                                   8  2  11
          (%i3) float(%);
          (%o3)                 0.66756728179008

 -- 関数: quantile_f (<q>,<m>,<n>)
     m,n>0で、F確率変数 F(m,n)の <q>-分位数を返します; 言い換えると、こ
     れは ‘cdf_f’の逆函数です。 引数 <q>は [0,1]の要素でなければいけませ
     ん。

     この関数は閉形式を持たず、 もしグローバル変数 ‘numer’が ‘true’に等
     しいなら、 数値的に計算され、 そうでなければ、名目上の式を返します
     。

          (%i1) load ("distrib")$
          (%i2) quantile_f(2/5,sqrt(3),5);
                                         2
          (%o2)               quantile_f(-, sqrt(3), 5)
                                         5
          (%i3) %,numer;
          (%o3)                   0.518947838573693

 -- 関数: mean_f (<m>,<n>)
     m,n>2で、F確率変数 F(m,n)の 平均を返します。 この関数を利用するには
     、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_f (<m>,<n>)
     m,n>4で、F確率変数 F(m,n)の 分散を返します。 この関数を利用するには
     、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_f (<m>,<n>)
     m,n>4で、F確率変数 F(m,n)の 標準偏差を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_f (<m>,<n>)
     m,n>6で、F確率変数 F(m,n)の 歪度係数を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_f (<m>,<n>)
     m,n>8で、F確率変数 F(m,n)の 尖度係数を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_f (<m>,<n>)
 -- 関数: random_f (<m>,<n>,<k>)
     m,n>8で、F確率変量 F(m,n)を返します。 三番目の引数 <k>とともに
     ‘random_f’をコールすると、 サイズ <k>のランダムな標本がシミュレート
     されます。

     シミュレーションアルゴリズムは、 もし <X>が Chi^2(m)確率変数で Yが
     Chi^2(n)確率変数なら
                                  n X
                              F = ---
                                  m Y
     は <m>と <n>自由度を持つ F確率変数 F(m,n)である という事実に基づい
     ています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_exp (<x>,<m>)
     m>0で、 Exponential(m)(指数)確率変数の 密度函数の <x>での値を返しま
     す。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull密度に基づ
     いた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) pdf_exp(x,m);
                                                  1
          (%o2)                 pdf_weibull(x, 1, -)
                                                  m
          (%i3) assume(x>0,m>0)$  pdf_exp(x,m);
                                          - m x
          (%o4)                       m %e

 -- 関数: cdf_exp (<x>,<m>)
     m>0で、 Exponential(m)(指数)確率変数の 分布函数の <x>での値を返しま
     す。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull分布に基づ
     いた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_exp(x,m);
                                                  1
          (%o2)                 cdf_weibull(x, 1, -)
                                                  m
          (%i3) assume(x>0,m>0)$  cdf_exp(x,m);
                                           - m x
          (%o4)                      1 - %e

 -- 関数: quantile_exp (<q>,<m>)
     m>0で、 Exponential(m)(指数)確率変数の <q>-分位数を返します; 言い換
     えると、これは‘cdf_exp’の逆函数です。 引数 <q>は [0,1]の要素でなけ
     ればいけません。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull分位数に基
     づいた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) quantile_exp(0.56,5);
          (%o2)                   .1641961104139661
          (%i3) quantile_exp(0.56,m);
                                                      1
          (%o3)             quantile_weibull(0.56, 1, -)
                                                      m

 -- 関数: mean_exp (<m>)
     m>0で、 Exponential(m)(指数)確率変数の 平均を返します。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull平均に基づ
     いた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) mean_exp(m);
                                                 1
          (%o2)                  mean_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  mean_exp(m);
                                          1
          (%o4)                           -
                                          m

 -- 関数: var_exp (<m>)
     m>0で、 Exponential(m)(指数)確率変数の 分散を返します。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull分散に基づ
     いた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) var_exp(m);
                                                 1
          (%o2)                   var_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  var_exp(m);
                                         1
          (%o4)                          --
                                          2
                                         m

 -- 関数: std_exp (<m>)
     m>0で、 Exponential(m)(指数)確率変数の 標準偏差を返します。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull標準偏差に
     基づいた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) std_exp(m);
                                                 1
          (%o2)                   std_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  std_exp(m);
                                          1
          (%o4)                           -
                                          m

 -- 関数: skewness_exp (<m>)
     m>0で、 Exponential(m)(指数)確率変数の 歪度係数を返します。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull歪度係数に
     基づいた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) skewness_exp(m);
                                                   1
          (%o2)                skewness_weibull(1, -)
                                                   m
          (%i3) assume(m>0)$  skewness_exp(m);
          (%o4)                           2

 -- 関数: kurtosis_exp (<m>)
     m>0で、 Exponential(m)(指数)確率変数の 尖度係数を返します。

     Exponential(m)(指数)確率変数は Weibull(1,1/m)と同値です。 なので、
     Maximaが結果を得るのに十分な情報を持たない時は、 Weibull尖度係数に
     基づいた名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) kurtosis_exp(m);
                                                   1
          (%o2)                kurtosis_weibull(1, -)
                                                   m
          (%i3) assume(m>0)$  kurtosis_exp(m);
          (%o4)                           6

 -- 関数: random_exp (<m>)
 -- 関数: random_exp (<m>,<k>)
     m>0で、 Exponential(m)(指数)確率変量を返します。 二番目の引数 <k>と
     ともに‘random_exp’をコールすると、 サイズ <k>のランダムな標本がシミ
     ュレートされます。

     シミュレーションアルゴリズムは一般逆函数法です。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_lognormal (<x>,<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 密度函数の <x>での値を返
     します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_lognormal (<x>,<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 分布函数の <x>での値を返
     します。 この関数はMaximaの組み込み誤差関数 ‘erf’を使って定義されま
     す。

          (%i1) load ("distrib")$
          (%i2) assume(x>0, s>0)$  cdf_lognormal(x,m,s);
                                     log(x) - m
                                 erf(----------)
                                     sqrt(2) s     1
          (%o3)                  --------------- + -
                                        2          2

     ‘erf’も参照してください。

 -- 関数: quantile_lognormal (<q>,<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の <q>-分位数を返します; 言
     い換えると、これは ‘cdf_lognormal’の逆函数です。 引数 <q>は [0,1]の
     要素でなければいけません。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

          (%i1) load ("distrib")$
          (%i2) quantile_lognormal(95/100,0,1);
                            sqrt(2) inverse_erf(9/10)
          (%o2)           %e
          (%i3) float(%);
          (%o3)               5.180251602233015

 -- 関数: mean_lognormal (<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 平均を返します。 この関数
     を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_lognormal (<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 分散を返します。 この関数
     を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_lognormal (<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 標準偏差を返します。 この
     関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_lognormal (<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 歪度係数を返します。 この
     関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_lognormal (<m>,<s>)
     s>0で、Lognormal(m,s)(対数正規)確率変数の 尖度係数を返します。 この
     関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_lognormal (<m>,<s>)
 -- 関数: random_lognormal (<m>,<s>,<n>)
     s>0で、Lognormal(m,s)(対数正規)確率変量を返します。 三番目の引数
     <n>とともに‘random_lognormal’をコールすると、 サイズ <n>のランダム
     な標本がシミュレートされます。

     対数世紀変量は確率正規変量の平均によってシミュレートされます。 詳細
     は ‘random_normal’を見てください。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_gamma (<x>,<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 密度函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_gamma (<x>,<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 分布函数の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_gamma(3,5,21);
                                                        1
          (%o2)     1 - gamma_incomplete_regularized(5, -)
                                                        7
          (%i3) float(%);
          (%o3)              4.402663157376807E-7

 -- 関数: quantile_gamma (<q>,<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の <p>-分位数を返します; 言い換えれば、
     これは ‘cdf_gamma’の逆函数です。 引数 <q>は [0,1]の要素でなければい
     けません。 この関数を利用するには、初めに ‘load("distrib")’を書いて
     ください。

 -- 関数: mean_gamma (<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 平均を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_gamma (<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 分散を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_gamma (<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 標準偏差を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_gamma (<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 歪度係数を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_gamma (<a>,<b>)
     a,b>0で、 Gamma(a,b)確率変数の 尖度係数を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_gamma (<a>,<b>)
 -- 関数: random_gamma (<a>,<b>,<n>)
     a,b>0で、 Gamma(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_gamma’をコールすると、 サイズ <n>のランダムな標本がシミュレ
     ートされます。

     実装アルゴリズムはパラメータ <a>の値に依存して、2つの手続きの組み合
     わせです:

     a>=1に対して, Cheng, R.C.H. and Feast, G.M. (1979).  <Some simple
     gamma variate generators>.  Appl.  Stat., 28, 3, 290-295.

     0<a<1に対して, Ahrens, J.H. and Dieter, U. (1974).  <Computer
     methods for sampling from gamma, beta, poisson and binomial
     cdf_tributions>.  Computing, 12, 223-246.

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_beta (<x>,<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 密度函数の <x>での値を返します。 この
     関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_beta (<x>,<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 分布函数の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_beta(1/3,15,2);
                                       11
          (%o2)                     --------
                                    14348907
          (%i3) float(%);
          (%o3)              7.666089131388195E-7

 -- 関数: quantile_beta (<q>,<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の <q>-分位数を返します; 言い換えると、
     これは‘cdf_beta’の逆函数です。 引数 <q> [0,1]の要素でなければいけま
     せん。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: mean_beta (<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 平均を返します。 この関数を利用するに
     は、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_beta (<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 分散を返します。 この関数を利用するに
     は、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_beta (<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 標準偏差を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_beta (<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 歪度係数を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_beta (<a>,<b>)
     a,b>0で、 Beta(a,b)確率変数の 尖度係数を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_beta (<a>,<b>)
 -- 関数: random_beta (<a>,<b>,<n>)
     a,b>0で、 Beta(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_gamma’をコールすると、 サイズ <n>のランダムな標本がシミュレ
     ートされます。

     実装アルゴリズムは Cheng, R.C.H. (1978).  <Generating Beta Variates
     with Nonintegral Shape Parameters>.  Communications of the ACM,
     21:317-322 に定義されています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_continuous_uniform (<x>,<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の密度函数の <x>での値を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: cdf_continuous_uniform (<x>,<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の <x>での値を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: quantile_continuous_uniform (<q>,<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の <q>-分位数を返
     します。 言い換えると、これは ‘cdf_continuous_uniform’の逆函数です
     。 引数 <q>は [0,1]の要素でなければいけません。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: mean_continuous_uniform (<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の 平均を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: var_continuous_uniform (<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の 分散を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: std_continuous_uniform (<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の 標準偏差を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: skewness_continuous_uniform (<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の 歪度係数を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: kurtosis_continuous_uniform (<a>,<b>)
     a<bで、 Continuous Uniform(a,b)確率変数の分布函数の 尖度係数を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: random_continuous_uniform (<a>,<b>)
 -- 関数: random_continuous_uniform (<a>,<b>,<n>)
     a<bで、 Continuous Uniform(a,b)確率変量を返します。 三番目の引数
     <n>とともに‘random_gamma’をコールすると、 サイズ <n>のランダムな標
     本がシミュレートされます。

     これは ‘random’組み込みMaxima関数の直接の応用です。

     ‘random’も参照してください。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: pdf_logistic (<x>,<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の 密度函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_logistic (<x>,<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の 分布函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_logistic (<q>,<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の <q>-分位数を返します。 言い換えると
     、これは ‘cdf_logistic’の逆函数です。 引数 <q>は [0,1]の要素でなけ
     ればいけません。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

 -- 関数: mean_logistic (<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の平均を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_logistic (<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の分散を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_logistic (<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の標準偏差を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_logistic (<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の歪度係数を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_logistic (<a>,<b>)
     b>0で、 Logistic(a,b)確率変数の尖度係数を返します。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_logistic (<a>,<b>)
 -- 関数: random_logistic (<a>,<b>,<n>)
     b>0で、 Logistic(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_logistic’をコールすると、 サイズ <n>のランダムな標本がシミ
     ュレートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_pareto (<x>,<a>,<b>)
     a,b>0で、 Pareto(a,b)確率変数の 密度函数の <x>の値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_pareto (<x>,<a>,<b>)
     a,b>0で、 Pareto(a,b)確率変数の 分布函数の <x>の値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_pareto (<q>,<a>,<b>)
     a,b>0で、 Pareto(a,b)確率変数の <q>-分位数を返します; 言い換えると
     、これは ‘cdf_pareto’の逆函数です。 引数 <q>は [0,1]の要素でなけれ
     ばいけません。 この関数を利用するには、初めに ‘load("distrib")’を書
     いてください。

 -- 関数: mean_pareto (<a>,<b>)
     a,b>0で、 Pareto(a,b)確率変数の 平均を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_pareto (<a>,<b>)
     a>2,b>0で、 Pareto(a,b)確率変数の 分散を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_pareto (<a>,<b>)
     a>2,b>0で、 Pareto(a,b)確率変数の 標準偏差を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_pareto (<a>,<b>)
     a>2,b>0で、 Pareto(a,b)確率変数の 歪度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_pareto (<a>,<b>)
     a>2,b>0で、 Pareto(a,b)確率変数の 尖度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_pareto (<a>,<b>)
 -- 関数: random_pareto (<a>,<b>,<n>)
     a>2,b>0で、 Pareto(a,b)確率変量を返します。 三番目の引数 <n>ととも
     に‘random_pareto’をコールすると、 サイズ <n>のランダムな標本がシミ
     ュレートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_weibull (<x>,<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 密度函数の <x>の値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_weibull (<x>,<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 分布函数の <x>の値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_weibull (<q>,<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の <q>-分位数を返します; 言い換えれば
     、これは ‘cdf_weibull’の逆函数です。 引数 <q>は [0,1]の要素でなけれ
     ばいけません。 この関数を利用するには、初めに ‘load("distrib")’を書
     いてください。

 -- 関数: mean_weibull (<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 平均を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_weibull (<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 分散を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_weibull (<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 標準偏差を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_weibull (<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 歪度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_weibull (<a>,<b>)
     a,b>0で、 Weibull(a,b)確率変数の 尖度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_weibull (<a>,<b>)
 -- 関数: random_weibull (<a>,<b>,<n>)
     a,b>0で、 Weibull(a,b)確率変量を返します。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_rayleigh (<x>,<b>)
     b>0で、 Rayleigh(b)確率変数の 密度函数の <x>での値を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull密度に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) pdf_rayleigh(x,b);
                                                  1
          (%o2)                 pdf_weibull(x, 2, -)
                                                  b
          (%i3) assume(x>0,b>0)$ pdf_rayleigh(x,b);
                                              2  2
                                     2     - b  x
          (%o4)                   2 b  x %e

 -- 関数: cdf_rayleigh (<x>,<b>)
     b>0で、 Rayleigh(b)確率変数の 分布函数の <x>での値を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull分布に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_rayleigh(x,b);
                                                  1
          (%o2)                 cdf_weibull(x, 2, -)
                                                  b
          (%i3) assume(x>0,b>0)$ cdf_rayleigh(x,b);
                                             2  2
                                          - b  x
          (%o4)                     1 - %e

 -- 関数: quantile_rayleigh (<q>,<b>)
     Returns the <q>-quantile of a Rayleigh(b) random variable, with
     b>0; in other words, this is the inverse of ‘cdf_rayleigh’.
     Argument <q> must be an element of [0,1].

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull分位数に基づいた名
     詞形を返します。

          (%i1) load ("distrib")$
          (%i2) quantile_rayleigh(0.99,b);
                                                      1
          (%o2)             quantile_weibull(0.99, 2, -)
                                                      b
          (%i3) assume(x>0,b>0)$ quantile_rayleigh(0.99,b);
                                  2.145966026289347
          (%o4)                   -----------------
                                          b

 -- 関数: mean_rayleigh (<b>)
     Returns the mean of a Rayleigh(b) random variable, with b>0.

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull平均に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) mean_rayleigh(b);
                                                 1
          (%o2)                  mean_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ mean_rayleigh(b);
                                      sqrt(%pi)
          (%o4)                       ---------
                                         2 b

 -- 関数: var_rayleigh (<b>)
     b>0で、 Rayleigh(b)確率変数の分散を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull分散に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) var_rayleigh(b);
                                                 1
          (%o2)                   var_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ var_rayleigh(b);
                                           %pi
                                       1 - ---
                                            4
          (%o4)                        -------
                                          2
                                         b

 -- 関数: std_rayleigh (<b>)
     b>0で、 Rayleigh(b)確率変数の標準偏差を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull標準偏差に基づいた
     名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) std_rayleigh(b);
                                                 1
          (%o2)                   std_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ std_rayleigh(b);
                                             %pi
                                    sqrt(1 - ---)
                                              4
          (%o4)                     -------------
                                          b

 -- 関数: skewness_rayleigh (<b>)
     b>0で、 Rayleigh(b)確率変数の歪度係数を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull歪度係数に基づいた
     名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) skewness_rayleigh(b);
                                                   1
          (%o2)                skewness_weibull(2, -)
                                                   b
          (%i3) assume(b>0)$ skewness_rayleigh(b);
                                   3/2
                                %pi      3 sqrt(%pi)
                                ------ - -----------
                                  4           4
          (%o4)                 --------------------
                                         %pi 3/2
                                    (1 - ---)
                                          4

 -- 関数: kurtosis_rayleigh (<b>)
     b>0で、 Rayleigh(b)確率変数の尖度係数を返します。

     Rayleigh(b)確率変数は Weibull(2,1/b)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 Weibull尖度係数に基づいた
     名詞形を返します。

          (%i1) load ("distrib")$
          (%i2) kurtosis_rayleigh(b);
                                                   1
          (%o2)                kurtosis_weibull(2, -)
                                                   b
          (%i3) assume(b>0)$ kurtosis_rayleigh(b);
                                            2
                                       3 %pi
                                   2 - ------
                                         16
          (%o4)                    ---------- - 3
                                        %pi 2
                                   (1 - ---)
                                         4

 -- 関数: random_rayleigh (<b>)
 -- 関数: random_rayleigh (<b>,<n>)
     b>0で、 Rayleigh(b)確率変量を返します。 二番目の引数 <n>とともに
     ‘random_pareto’をコールすると、 サイズ <n>のランダムな標本がシミュ
     レートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_laplace (<x>,<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の密度函数の <x>での値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_laplace (<x>,<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の分布函数の <x>での値を返します。 この
     関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_laplace (<q>,<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の<q>-分位数を返します; 言い換えれば、
     これは ‘cdf_laplace’の逆函数です。 引数 <q>は [0,1]の要素でなければ
     いけません。 この関数を利用するには、初めに ‘load("distrib")’を書い
     てください。

 -- 関数: mean_laplace (<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の平均を返します。 この関数を利用するに
     は、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_laplace (<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の分散を返します。 この関数を利用するに
     は、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_laplace (<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の標準偏差を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_laplace (<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の歪度係数を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_laplace (<a>,<b>)
     b>0で、 Laplace(a,b)確率変数の尖度係数を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_laplace (<a>,<b>)
 -- 関数: random_laplace (<a>,<b>,<n>)
     b>0で、 Laplace(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_laplace’をコールすると、 サイズ <n>のランダムな標本がシミュ
     レートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_cauchy (<x>,<a>,<b>)
     b>0で、 Cauchy(a,b)確率変数の密度函数の<x>での値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_cauchy (<x>,<a>,<b>)
     b>0で、 Cauchy(a,b)確率変数の分布函数の<x>での値を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_cauchy (<q>,<a>,<b>)
     b>0で、 Cauchy(a,b)確率変数の<q>-分位数を返します; 言い換えると、こ
     れは ‘cdf_cauchy’の逆函数です。 引数 <q>は [0,1]の要素でなければい
     けません。 この関数を利用するには、初めに ‘load("distrib")’を書いて
     ください。

 -- 関数: random_cauchy (<a>,<b>)
 -- 関数: random_cauchy (<a>,<b>,<n>)
     b>0で、 Cauchy(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_cauchy’をコールすると、 サイズ <n>のランダムな標本がシミュ
     レートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_gumbel (<x>,<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の密度函数の<x>での値を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_gumbel (<x>,<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の分布函数の<x>での値を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_gumbel (<q>,<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の<q>-分位数を返します; 言い換えれば、こ
     れは ‘cdf_gumbel’の逆函数です。 引数 <q>は [0,1]の要素でなければい
     けません。 この関数を利用するには、初めに ‘load("distrib")’を書いて
     ください。

 -- 関数: mean_gumbel (<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の平均を返します。

          (%i1) load ("distrib")$
          (%i2) assume(b>0)$  mean_gumbel(a,b);
          (%o3)                     %gamma b + a
     ここでシンボル ‘%gamma’は Euler-Mascheroni定数を表します。
     ‘%gamma’も参照してください。

 -- 関数: var_gumbel (<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の分散を返します。 この関数を利用するに
     は、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_gumbel (<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の標準偏差を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_gumbel (<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の歪度係数を返します。

          (%i1) load ("distrib")$
          (%i2) assume(b>0)$ skewness_gumbel(a,b);
                                 12 sqrt(6) zeta(3)
          (%o3)                  ------------------
                                           3
                                        %pi
          (%i4) numer:true$ skewness_gumbel(a,b);
          (%o5)                   1.139547099404649
     ここで、‘zeta’はRiemannのゼータ函数を表します。

 -- 関数: kurtosis_gumbel (<a>,<b>)
     b>0で、 Gumbel(a,b)確率変数の尖度係数を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_gumbel (<a>,<b>)
 -- 関数: random_gumbel (<a>,<b>,<n>)
     b>0で、 Gumbel(a,b)確率変量を返します。 三番目の引数 <n>とともに
     ‘random_gumbel’をコールすると、 サイズ <n>のランダムな標本がシミュ
     レートされます。

     実装アルゴリズムは一般逆函数法に基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。


File: maxima.info,  Node: Functions and Variables for discrete distributions,  Prev: Functions and Variables for continuous distributions,  Up: distrib

47.3 Functions and Variables for discrete distributions
=======================================================

 -- 関数: pdf_general_finite_discrete (<x>,<v>)
     ‘Pr(X=i) = v_i’のような ベクトル確率 vを持つ 一般有限離散確率変数の
     確率函数の <x>での値を返します。 ベクトル vは非負式のリストであり得
     ます。 その成分は確率のベクトルを得るために規格化されます。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

          (%i1) load ("distrib")$
          (%i2) pdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
                                          4
          (%o2)                           -
                                          7
          (%i3) pdf_general_finite_discrete(2, [1, 4, 2]);
                                          4
          (%o3)                           -
                                          7

 -- 関数: cdf_general_finite_discrete (<x>,<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 分布函数の <x>での値を
     返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

          (%i1) load ("distrib")$
          (%i2) cdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
                                          5
          (%o2)                           -
                                          7
          (%i3) cdf_general_finite_discrete(2, [1, 4, 2]);
                                          5
          (%o3)                           -
                                          7
          (%i4) cdf_general_finite_discrete(2+1/2, [1, 4, 2]);
                                          5
          (%o4)                           -
                                          7

 -- 関数: quantile_general_finite_discrete (<q>,<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の <q>-分位数を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: mean_general_finite_discrete (<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 平均を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: var_general_finite_discrete (<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 分散を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: std_general_finite_discrete (<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 標準偏差を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: skewness_general_finite_discrete (<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 歪度係数を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: kurtosis_general_finite_discrete (<v>)
     ベクトル確率 vを持つ 一般有限離散確率変数の 尖度係数を返します。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

 -- 関数: random_general_finite_discrete (<v>)
 -- 関数: random_general_finite_discrete (<v>,<m>)
     ベクトル確率 vを持つ 一般有限離散確率変量を返します。 二番目の引数
     <m>とともに‘random_general_finite_discrete’をコールすると、 サイズ
     <m>のランダムな標本がシミュレートされます。

     さらなる詳細は ‘pdf_general_finite_discrete’を参照してください。

          (%i1) load ("distrib")$
          (%i2) random_general_finite_discrete([1,3,1,5]);
          (%o2)                          4
          (%i3) random_general_finite_discrete([1,3,1,5], 10);
          (%o3)           [4, 2, 2, 3, 2, 4, 4, 1, 2, 2]

 -- 関数: pdf_binomial (<x>,<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の確率函数の<x>での
     値を返します。 この関数を利用するには、初めに ‘load("distrib")’を書
     いてください。 4 (%o6) - 7

 -- 関数: cdf_binomial (<x>,<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の分布函数の<x>での
     値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_binomial(5,7,1/6);
                                      7775
          (%o2)                       ----
                                      7776
          (%i3) float(%);
          (%o3)               .9998713991769548

 -- 関数: quantile_binomial (<q>,<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の<q>-分位数を返しま
     す; 言い換えれば、これは ‘cdf_binomial’の逆函数です。 引数 <q>は
     [0,1]の要素でなければいけません。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: mean_binomial (<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の平均を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_binomial (<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の分散を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_binomial (<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の標準偏差を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: skewness_binomial (<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の歪度係数を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: kurtosis_binomial (<n>,<p>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変数の尖度係数を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: random_binomial (<n>,<p>)
 -- 関数: random_binomial (<n>,<p>,<m>)
     0<p<1かつ nは正の整数で、 Binomial(n,p)確率変量を返します。 三番目
     の引数 <m>とともに‘random_binomial’をコールすると、 サイズ <m>のラ
     ンダムな標本がシミュレートされます。

     実装アルゴリズムは Kachitvichyanukul, V. and Schmeiser, B.W. (1988)
     <Binomial Random Variate Generation>.  Communications of the ACM,
     31, Feb., 216.に 記載されているものに基づいています。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_poisson (<x>,<m>)
     m>0で、 Poisson(m)確率変数の確率函数の <x>での値を返します。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_poisson (<x>,<m>)
     m>0で、 Poisson(m)確率変数の分布函数の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_poisson(3,5);
          (%o2)       gamma_incomplete_regularized(4, 5)
          (%i3) float(%);
          (%o3)               .2650259152973623

 -- 関数: quantile_poisson (<q>,<m>)
     m>0で、 Poisson(m)確率変数の <q>-分位数を返します; 言い換えると、こ
     れは ‘cdf_poisson’の逆函数です。 引数 <q>は [0,1]の要素でなればいけ
     ません。 この関数を利用するには、初めに ‘load("distrib")’を書いてく
     ださい。

 -- 関数: mean_poisson (<m>)
     m>0で、 Poisson(m)確率変数の平均を返します。 この関数を利用するには
     、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_poisson (<m>)
     m>0で、 Poisson(m)確率変数の分散を返します。 この関数を利用するには
     、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_poisson (<m>)
     m>0で、 Poisson(m)確率変数の標準偏差を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_poisson (<m>)
     m>0で、 Poisson(m)確率変数の歪度係数を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_poisson (<m>)
     m>0で、 Poisson(m)確率変数の尖度係数を返します。 この関数を利用する
     には、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_poisson (<m>)
 -- 関数: random_poisson (<m>,<n>)
     m>0で、 Poisson(m)確率変量を返します。 二番目の引数 <n>とともに
     ‘random_binomial’をコールすると、 サイズ <n>のランダムな標本がシミ
     ュレートされます。

     実装アルゴリズムは Ahrens, J.H. and Dieter, U. (1982) <Computer
     Generation of Poisson Deviates From Modified Normal Distributions>.
     ACM Trans.  Math.  Software, 8, 2, June,163-179.に記述されたもので
     す。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_bernoulli (<x>,<p>)
     0<p<1で、 Bernoulli(p)確率変数の確率函数の <x>での値を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項確率函数に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) pdf_bernoulli(1,p);
          (%o2)                 pdf_binomial(1, 1, p)
          (%i3) assume(0<p,p<1)$ pdf_bernoulli(1,p);
          (%o4)                           p

 -- 関数: cdf_bernoulli (<x>,<p>)
     0<p<1で、 Bernoulli(p)確率変数の分布函数の <x>での値を返します。 こ
     の関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_bernoulli (<q>,<p>)
     0<p<1で、 Bernoulli(p)確率変数の<q>-分位数を返します; 言い換えると
     、これは ‘cdf_bernoulli’の逆函数です。 引数 <q>は [0,1]の要素でなけ
     ればいけません。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

 -- 関数: mean_bernoulli (<p>)
     0<p<1で、 Bernoulli(p)確率変数の平均を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項平均に基づいた名詞形を
     返します。

          (%i1) load ("distrib")$
          (%i2) mean_bernoulli(p);
          (%o2)                  mean_binomial(1, p)
          (%i3) assume(0<p,p<1)$ mean_bernoulli(p);
          (%o4)                           p

 -- 関数: var_bernoulli (<p>)
     0<p<1で、 Bernoulli(p)確率変数の分散を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項分散に基づいた名詞形を
     返します。

          (%i1) load ("distrib")$
          (%i2) var_bernoulli(p);
          (%o2)                  var_binomial(1, p)
          (%i3) assume(0<p,p<1)$ var_bernoulli(p);
          (%o4)                       (1 - p) p

 -- 関数: std_bernoulli (<p>)
     0<p<1で、 Bernoulli(p)確率変数の標準偏差を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項標準偏差に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) std_bernoulli(p);
          (%o2)                  std_binomial(1, p)
          (%i3) assume(0<p,p<1)$ std_bernoulli(p);
          (%o4)                  sqrt(1 - p) sqrt(p)

 -- 関数: skewness_bernoulli (<p>)
     0<p<1で、 Bernoulli(p)確率変数の歪度係数を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項歪度係数に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) skewness_bernoulli(p);
          (%o2)                skewness_binomial(1, p)
          (%i3) assume(0<p,p<1)$ skewness_bernoulli(p);
                                       1 - 2 p
          (%o4)                  -------------------
                                 sqrt(1 - p) sqrt(p)

 -- 関数: kurtosis_bernoulli (<p>)
     0<p<1で、 Bernoulli(p)確率変数の尖度係数を返します。

     Bernoulli(p)確率変数は Binomial(1,p)と同値です。 なので、 Maximaが
     結果を得るのに十分な情報を持たない時は、 二項尖度係数に基づいた名詞
     形を返します。

          (%i1) load ("distrib")$
          (%i2) kurtosis_bernoulli(p);
          (%o2)                kurtosis_binomial(1, p)
          (%i3) assume(0<p,p<1)$ kurtosis_bernoulli(p);
                                   1 - 6 (1 - p) p
          (%o4)                    ---------------
                                      (1 - p) p

 -- 関数: random_bernoulli (<p>)
 -- 関数: random_bernoulli (<p>,<n>)
     0<p<1で、 Bernoulli(p)確率変量を返します。 二番目の引数 <n>とともに
     ‘random_bernoulli’をコールすると、 サイズ <n>のランダムな標本がシミ
     ュレートされます。

     これは ‘random’組み込みMaxima関数の直接の応用です。

     ‘random’も参照してください。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: pdf_geometric (<x>,<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の確率函数の <x>での値を返しま
     す。 この関数を利用するには、初めに ‘load("distrib")’を書いてくださ
     い。

 -- 関数: cdf_geometric (<x>,<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の分布函数の <x>での値を返しま
     す。 この関数を利用するには、初めに ‘load("distrib")’を書いてくださ
     い。

 -- 関数: quantile_geometric (<q>,<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の <q>-分位数を返します; 言い換
     えると、これは ‘cdf_geometric’の逆函数です。 引数 <q>は [0,1]の要素
     でなければいけません。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: mean_geometric (<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の 平均を返します。 この関数を
     利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_geometric (<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の 分散を返します。 この関数を
     利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_geometric (<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の 標準偏差を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_geometric (<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の 歪度係数を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_geometric (<p>)
     0<p<1で、 Geometric(p)(幾何)確率変数の 尖度係数を返します。 この関
     数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_geometric (<p>)
 -- 関数: random_geometric (<p>,<n>)
     0<p<1で、 Geometric(p)(幾何)確率変量を返します。 二番目の引数 <n>と
     ともに‘random_geometric’をコールすると、 サイズ <n>のランダムな標本
     がシミュレートされます。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_discrete_uniform (<x>,<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の確率函数の <x>で
     の値を返します。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

 -- 関数: cdf_discrete_uniform (<x>,<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の分風函数の <x>で
     の値を返します。 この関数を利用するには、初めに ‘load("distrib")’を
     書いてください。

 -- 関数: quantile_discrete_uniform (<q>,<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の <q>-分位数を返
     します; 言い換えると、これは ‘cdf_discrete_uniform’の逆函数です。 引
     数 <q>は [0,1]の要素でなければいけません。 この関数を利用するには、
     初めに ‘load("distrib")’を書いてください。

 -- 関数: mean_discrete_uniform (<n>)
     Returns the mean of a Discrete Uniform(n) random variable, with n a
     strictly positive integer. この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。 To make use of this function,
     write first ‘load("distrib")’.

 -- 関数: var_discrete_uniform (<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の 分散を返します
     。 この関数を利用するには、初めに ‘load("distrib")’を書いてください
     。

 -- 関数: std_discrete_uniform (<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の 標準偏差を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: skewness_discrete_uniform (<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の 歪度係数を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: kurtosis_discrete_uniform (<n>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変数の 尖度係数を返し
     ます。 この関数を利用するには、初めに ‘load("distrib")’を書いてくだ
     さい。

 -- 関数: random_discrete_uniform (<n>)
 -- 関数: random_discrete_uniform (<n>,<m>)
     nが厳密に正の整数で、 Discrete Uniform(n)確率変量を返します。 二番
     目の引数 <m>とともに‘random_discrete_unform’をコールすると、 サイズ
     <m>のランダムな標本がシミュレートされます。

     これは ‘random’組み込みMaxima関数の直接の応用です。

     ‘random’も参照してください。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: pdf_hypergeometric (<x>,<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 確率函数の <x>での値を返します。
     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: cdf_hypergeometric (<x>,<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 分布函数の <x>での値を返します。
     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: quantile_hypergeometric (<q>,<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の <q>-分位数を返します。 言い換える
     と、これは ‘cdf_hypergeometric’の逆函数です。 引数 <q>は [0,1]の要
     素でなければいけません。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: mean_hypergeometric (<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 平均を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: var_hypergeometric (<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 分散を返します。 この関数を利用す
     るには、初めに ‘load("distrib")’を書いてください。

 -- 関数: std_hypergeometric (<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 標準偏差を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: skewness_hypergeometric (<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 標準偏差を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: kurtosis_hypergeometric (<n1>,<n2>,<n>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変数の 歪度係数を返します。 この関数を利
     用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: random_hypergeometric (<n1>,<n2>,<n>)
 -- 関数: random_hypergeometric (<n1>,<n2>,<n>,<m>)
     <n1>, <n2>, <n>が非負整数でかつ n<=n1+n2で、
     Hypergeometric(n1,n2,n)確率変量を返します。 四番目の引数 <m>ととも
     に‘random_hypergeometric’をコールすると、 サイズ <m>のランダムな標
     本がシミュレートされます。

     Kachitvichyanukul, V., Schmeiser, B.W. (1985) <Computer generation
     of hypergeometric random variates.> Journal of Statistical
     Computation and Simulation 22, 127-145.に記述されたアルゴリズム。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: pdf_negative_binomial (<x>,<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の確率函数
     の <x>での値を返します。 この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。

 -- 関数: cdf_negative_binomial (<x>,<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の分布函数
     の <x>での値を返します。

          (%i1) load ("distrib")$
          (%i2) cdf_negative_binomial(3,4,1/8);
                                      3271
          (%o2)                      ------
                                     524288
          (%i3) float(%);
          (%o3)              .006238937377929687

 -- 関数: quantile_negative_binomial (<q>,<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の <q>-分位
     数を返します; 言い換えると、これは ‘cdf_negative_binomial’の逆函数
     です。 引数 <q>は [0,1]の要素でなければいけません。 この関数を利用
     するには、初めに ‘load("distrib")’を書いてください。

 -- 関数: mean_negative_binomial (<n>,<p>)
     Returns the mean of a Negative Binomial(n,p) random variable, with
     0<p<1 and n a positive integer. この関数を利用するには、初めに
     ‘load("distrib")’を書いてください。 To make use of this function,
     write first ‘load("distrib")’.

 -- 関数: var_negative_binomial (<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の 分散を返
     します。 この関数を利用するには、初めに ‘load("distrib")’を書いてく
     ださい。

 -- 関数: std_negative_binomial (<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の 標準偏差
     を返します。 この関数を利用するには、初めに ‘load("distrib")’を書い
     てください。

 -- 関数: skewness_negative_binomial (<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の 歪度係数
     を返します。 この関数を利用するには、初めに ‘load("distrib")’を書い
     てください。

 -- 関数: kurtosis_negative_binomial (<n>,<p>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変数の 尖度係数
     を返します。 この関数を利用するには、初めに ‘load("distrib")’を書い
     てください。

 -- 関数: random_negative_binomial (<n>,<p>)
 -- 関数: random_negative_binomial (<n>,<p>,<m>)
     0<p<1かつ nが正の整数で、 Negative Binomial(n,p)確率変量を返します
     。 三番目の引数 <m>とともに‘random_negative_binomial’をコールすると
     、 サイズ <m>のランダムな標本がシミュレートされます。

     Devroye, L. (1986) <Non-Uniform Random Variate Generation>.
     Springer Verlag, p.  480.に記載されたアルゴリズム。

     この関数を利用するには、初めに ‘load("distrib")’を書いてください。


File: maxima.info,  Node: draw,  Next: drawdf,  Prev: distrib,  Up: Top

48 draw
*******

* Menu:

* Introduction to draw::
* Functions and Variables for draw::
* Functions and Variables for pictures::
* Functions and Variables for worldmap::


File: maxima.info,  Node: Introduction to draw,  Next: Functions and Variables for draw,  Prev: draw,  Up: draw

48.1 Introduction to draw
=========================

‘draw’はMaxima-Gnuplotインターフェイスです。

   Maximaレベルで使われる３つの主な関数があります: ‘draw2d’, ‘draw3d’,
‘draw’。

   このパッケージのさらに磨きかけられた例のために以下のリンクに従ってく
ださい:

   <http://riotorto.users.sourceforge.net/gnuplot>

   このプログラムを走らせるにはGnuplot 4.2以上が必要です。


File: maxima.info,  Node: Functions and Variables for draw,  Next: Functions and Variables for pictures,  Prev: Introduction to draw,  Up: draw

48.2 Functions and Variables for draw
=====================================

48.2.1 Scenes
-------------

 -- シーン構成子: gr2d (<graphic option>, ..., <graphic object>, ...)

     関数‘gr2d’は 2Dシーンを記述するオブジェクトを作ります。 引数はグラ
     フィックオプション、グラフィックオブジェクト、または、 グラフィック
     オプションとオブジェクト両方を含むリストです。 このシーンは順に解釈
     されます: グラフィックオプションはその右に置かれたそれらのグラフィ
     ックオブジェクトに影響します。 いくつかのグラフィックオプションはシ
     ーンのグローバルな外観に影響します。

     以下は2次元のシーンで利用可能なグラフィックオブジェクトのリストです
     : ‘bars’, ‘ellipse’, ‘explicit’, ‘image’, ‘implicit’, ‘label’,
     ‘parametric’, ‘points’, ‘polar’, ‘polygon’, ‘quadrilateral’,
     ‘rectangle’, ‘triangle’, ‘vector’, ‘geomap’ (パッケージ‘worldmap’で
     定義されるもの)。

     ‘draw’と‘draw2d’も参照してください。

     このオブジェクトを利用するには、最初に‘load("draw")’を書いてくださ
     い。

 -- シーン構成子: gr3d (<graphic option>, ..., <graphic object>, ...)

     関数‘gr3d’は3dシーンを記述するオブジェクトを作ります。 引数はグラフ
     ィックオプション、グラフィックオブジェクト、または グラフィックオプ
     ションとオブジェクト両方を含むリストです。 このシーンは順に解釈され
     ます: グラフィックオプションはその右に置かれたそれらのグラフィック
     オブジェクトに影響します。 いくつかのグラフィックオプションはシーン
     のグローバルな外観に影響します。

     以下は3次元のシーンで利用可能なグラフィックオブジェクトのリストです
     : ‘cylindrical’, ‘elevation_grid’, ‘explicit’, ‘implicit’, ‘label’,
     ‘mesh’, ‘parametric’,
     ‘parametric_surface’, ‘points’, ‘quadrilateral’, ‘spherical’,
     ‘triangle’, ‘tube’,
     ‘vector’, ‘geomap’ (パッケージ‘worldmap’で定義されるもの)。

     ‘draw’と‘draw3d’も参照してください。

     このオブジェクトを利用するには、最初に‘load("draw")’を書いてくださ
     い。

48.2.2 Functions
----------------

 -- 関数: draw (<gr2d>, ..., <gr3d>, ..., <options>, ...)

     一連のシーンをプロットします; 引数は‘gr2d’や‘gr3d’のオブジェクトと
     いくつかのオプションです。 デフォルトでは、シーンは1列の中に一緒に
     置かれます。

     関数‘draw’は以下のグローバルオプションを受け付けます: ‘terminal’,
     ‘columns’, ‘dimensions’, ‘file_name’, ‘delay’.

     関数‘draw2d’や‘draw3d’は それぞれ、2次元と3次元に関して、１つのシー
     ンだけが要求される時に使われる ショートカットです。

     ‘gr2d’と‘gr3d’も参照してください。

     この関数を利用するには、最初に‘load("draw")’を書いてください。

     例:

          (%i1) load("draw")$
          (%i2) scene1: gr2d(title="Ellipse",
                             nticks=30,
                             parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
          (%i3) scene2: gr2d(title="Triangle",
                             polygon([4,5,7],[6,4,2]))$
          (%i4) draw(scene1, scene2, columns = 2)$

     2つの描画文は同値です:
          (%i1) load("draw")$
          (%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
          (%o2)                          [gr3d(explicit)]
          (%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
          (%o3)                          [gr3d(explicit)]

     アニメーティドgifファイル:
          (%i1) load("draw")$
          (%i2) draw(
                  delay     = 100,
                  file_name = "zzz",
                  terminal  = 'animated_gif,
                  gr2d(explicit(x^2,x,-1,1)),
                  gr2d(explicit(x^3,x,-1,1)),
                  gr2d(explicit(x^4,x,-1,1)));
          End of animation sequence
          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

     ‘gr2d’, ‘gr3d’, ‘draw2d’, ‘draw3d’も参照してください。

 -- 関数: draw2d (<option>, <graphic_object>, ...)
     この関数は ‘draw(gr2d(<options>, ..., <graphic_object>, ...))’. の
     ショートカットです。

     2dで唯一のシーンをプロットするのに使うことができます。

     この関数を利用するには、最初に‘load("draw")’を書いてください。

     ‘draw’と‘gr2d’も参照してください。

 -- 関数: draw3d (<option>, <graphic_object>, ...)
     この関数は ‘draw(gr3d(<options>, ..., <graphic_object>, ...))’ のシ
     ョートカットです。

     3dでユニークなシーンをプロットするのに使うことができます。

     この関数を利用するには、最初に‘load("draw")’を書いてください。

     ‘draw’と‘gr3d’も参照してください。

 -- 関数: draw_file (<graphic option>, ..., <graphic object>, ...)

     現在のプロットをファイルに保存します。 受け付けられるグラフィックオ
     プションは以下です: ‘terminal’, ‘dimensions’, ‘file_name’,
     ‘file_bgcolor’.

     例:

          (%i1) load("draw")$
          (%i2) /* screen plot */
                draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)))$
          (%i3) /* same plot in eps format */
                draw_file(terminal  = eps,
                          dimensions = [5,5]) $

 -- 関数: multiplot_mode (<term>)
     この関数を使って、Maximaは 端末<term>で1ウィンドウマルチプロットモ
     ードで機能することができます; この関数が受け入れる引数は、‘screen’,
     ‘wxt’, ‘aquaterm’, ‘none’です。

     マルチプロットモードがイネーブルの時、 ‘draw’へのそれぞれのコールは
     、 同じウィンドウに以前のものを消すことなく新しいプロットを送ります
     。 マルチモードをディセーブルにするには、 ‘multiplot_mode(none)’を
     書いてください。

     マルチプロットモードがイネーブルの時、 グローバルオプション
     ‘terminal’はブロックされます。 別の端末に変更する前に、この機能中の
     モードをディセーブルしなければいけません。

     この特長はWindowsプラットフォームでは機能しません。

     例:

          (%i1) load("draw")$
          (%i2) set_draw_defaults(
                   xrange = [-1,1],
                   yrange = [-1,1],
                   grid   = true,
                   title  = "Step by step plot" )$
          (%i3) multiplot_mode(screen)$
          (%i4) draw2d(color=blue,  explicit(x^2,x,-1,1))$
          (%i5) draw2d(color=red,   explicit(x^3,x,-1,1))$
          (%i6) draw2d(color=brown, explicit(x^4,x,-1,1))$
          (%i7) multiplot_mode(none)$

 -- 関数: set_draw_defaults (<graphic option>, ..., <graphic object>,
          ...)

     ユーザーグラフィックオプションを設定します。 この関数は 共通のグラ
     フィックスオプションで一連のグラフィックスをプロットするのに 役に立
     ちます。 引数なしにこの関数を呼ぶと、ユーザーデフォルトを取り除きま
     す。

     例:

          (%i1) load("draw")$
          (%i2) set_draw_defaults(
                   xrange = [-10,10],
                   yrange = [-2, 2],
                   color  = blue,
                   grid   = true)$
          (%i3) /* plot with user defaults */
                draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
          (%i4) set_draw_defaults()$
          (%i5) /* plot with standard defaults */
                draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$

     この関数を利用するには、 最初に‘load("draw")’を書いてください。

48.2.3 Graphic options
----------------------

 -- グラフィックオプション: adapt_depth
     デフォルト値: 10

     ‘adapt_depth’は適応プロットルーチンが使う分割の最大数です。

     このオプションは2d‘explicit’関数に対してだけ有効です。

 -- グラフィックオプション: axis_3d
     デフォルト値: ‘true’

     もし‘axis_3d’が‘true’なら、 <x>, <y> <z>軸が3dシーンで表示されます
     。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(axis_3d = false,
                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

     2dでの軸に関しては、 ‘axis_bottom’, ‘axis_left’, ‘axis_top’,
     ‘axis_right’も 参照してください。

 -- グラフィックオプション: axis_bottom
     デフォルト値: ‘true’

     もし‘axis_bottom’が‘true’なら、 底の軸は2dシーンで表示されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(axis_bottom = false,
                       explicit(x^3,x,-1,1))$

     ‘axis_left’, ‘axis_top’, ‘axis_right’, ‘axis_3d’も参照してください
     。

 -- グラフィックオプション: axis_left
     デフォルト値: ‘true’

     もし‘axis_left’が‘true’なら、 左の軸が2dシーンで表示されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(axis_left = false,
                       explicit(x^3,x,-1,1))$

     ‘axis_bottom’, ‘axis_top’, ‘axis_right’, ‘axis_3d’も参照してくださ
     い。

 -- グラフィックオプション: axis_right
     デフォルト値: ‘true’

     もし‘axis_right’が‘true’なら、 2dシーンで右軸が表示されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(axis_right = false,
                       explicit(x^3,x,-1,1))$

     ‘axis_bottom’, ‘axis_left’, ‘axis_top’, ‘axis_3d’も 参照してくださ
     い。

 -- グラフィックオプション: axis_top
     デフォルト値: ‘true’

     もし‘axis_top’が‘true’なら、 上部の軸が2dシーンで表示されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(axis_top = false,
                       explicit(x^3,x,-1,1))$

     ‘axis_bottom’, ‘axis_left’, ‘axis_right’, ‘axis_3d’も参照してくださ
     い。

 -- グラフィックオプション: background_color
     デフォルト値: ‘white’

     端末‘gif’, ‘png’, ‘jpg’, ‘gif’のための背景色を設定します。 デフォル
     ト背景色は白です。

     ‘color’も参照してください。

 -- グラフィックオプション: border
     デフォルト値: ‘true’

     もし‘border’が‘true’なら、 ポリゴンの境界は‘line_type’と
     ‘line_width’に従って塗られます。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘polygon’, ‘rectangle’, と‘ellipse’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(color       = brown,
                       line_width  = 8,
                       polygon([[3,2],[7,2],[5,5]]),
                       border      = false,
                       fill_color  = blue,
                       polygon([[5,2],[9,2],[7,5]]) )$

 -- グラフィックオプション: cbrange
     デフォルト値: ‘auto’

     もし‘cbrange’が‘auto’なら ‘enhanced3d’が‘false’でない時 色付けられ
     る値の範囲は自動的に計算されます。 カラー範囲外の値は、最も近い端の
     色を使います。

     ‘enhanced3d’や‘colorbox’が‘false’の時、 オプション‘cbrange’は効果を
     持ちません。

     もしユーザーが 色付けられた値の特定の区間が欲しいなら、
     ‘cbrange=[-2, 3]’のようにMaximaリストとして与えられなければいけませ
     ん。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d (
                  enhanced3d     = true,
                  color          = green,
                  cbrange = [-3,10],
                  explicit(x^2+y^2, x,-2,2,y,-2,2)) $

     ‘enhanced3d’, ‘colorbox’, ‘cbtics’も参照してください。

 -- グラフィックオプション: cbtics
     デフォルト値: ‘auto’

     このグラフィックオプションは、 オプション‘enhanced3d’が‘false’でな
     い時、 カラーボックス上にチックマークを描く方法を制御します。

     ‘enhanced3d’か‘colorbox’が‘false’の時、 オプション‘cbtics’は効果を
     持ちません。

     完全な記述に関しては、‘xtics’を参照してください。

     例:

          (%i1) load("draw")$
          (%i2) draw3d (
                  enhanced3d = true,
                  color      = green,
                  cbtics  = {["High",10],["Medium",05],["Low",0]},
                  cbrange = [0, 10],
                  explicit(x^2+y^2, x,-2,2,y,-2,2)) $

     ‘enhanced3d’, ‘colorbox’, ‘cbrange’も参照してください。

 -- グラフィックオプション: color
     デフォルト値: ‘"blue"’

     ‘color’は、線や点、ポリゴンやラベルの境界をプロットする色を指定しま
     す。

     色は名前や16進数のrgbコードとして与えられます。

     利用可能な色の名前は以下のものです:
     white            black            gray0            grey0 
     gray10           grey10           gray20           grey20     
     gray30           grey30           gray40           grey40     
     gray50           grey50           gray60           grey60     
     gray70           grey70           gray80           grey80
     gray90           grey90           gray100          grey100 
     gray             grey             light_gray       light_grey 
     dark_gray        dark_grey        red              light_red 
     dark_red         yellow           light_yellow     dark_yellow
     green            light_green      dark_green       spring_green
     forest_green     sea_green        blue             light_blue 
     dark_blue        midnight_blue    navy             medium_blue 
     royalblue        skyblue          cyan             light_cyan 
     dark_cyan        magenta          light_magenta    dark_magenta
     turquoise        light_turquoise  dark_turquoise   pink 
     light_pink       dark_pink        coral            light_coral 
     orange_red       salmon           light_salmon     dark_salmon 
     aquamarine       khaki            dark_khaki       goldenrod 
     light_goldenrod  dark_goldenrod   gold             beige 
     brown            orange           dark_orange      violet 
     dark_violet      plum             purple

     16進コードでの色彩成分は形式‘"#rrggbb"’で導入されます。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
                       color = "red",
                       explicit(0.5 + x^2,x,-1,1),
                       color = blue,
                       explicit(1 + x^2,x,-1,1),
                       color = "light-blue", /* double quotes if - is used */
                       explicit(1.5 + x^2,x,-1,1),
                       color = "#23ab0f",
                       label(["This is a label",0,1.2])  )$

     ‘fill_color’も参照してください。

 -- グラフィックオプション: colorbox
     デフォルト値: ‘true’

     もし‘colorbox’が‘true’なら、 ラベルなしの色スケールが‘image’ 2Dオブ
     ジェクトか色付けされた3dオブジェクトと一緒に 描かれます。 もし
     ‘colorbox’が‘false’なら、 色スケールは表示されません。 もし
     ‘colorbox’が文字列なら、ラベル付き色スケールが描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) im: apply('matrix,
                           makelist(makelist(random(200),i,1,30),i,1,30))$
          (%i3) draw2d(image(im,0,0,30,30))$
          (%i4) draw2d(colorbox=false, image(im,0,0,30,30))$

     ‘palette’も参照してください。

 -- グラフィックオプション: columns
     デフォルト値: 1

     ‘columns’は多重プロットでの列の数です。

     これはグローバルグラフィックオプションなので、 シーン記述での位置は
     かまいません。 関数‘draw’の引数として使うこともできます。

     例:

          (%i1) load("draw")$
          (%i2) scene1: gr2d(title="Ellipse",
                             nticks=30,
                             parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
          (%i3) scene2: gr2d(title="Triangle",
                             polygon([4,5,7],[6,4,2]))$
          (%i4) draw(scene1, scene2, columns = 2)$

 -- グラフィックオプション: contour
     デフォルト値: ‘none’

     オプション‘contour’を使うと、ユーザーは 等高線をプロットする場所を
     選択できます。 可能な値は以下の通りです:

        • ‘none’: 等高線がプロットされません。

        • ‘base’: 等高線がxy平面上に射影されます。

        • ‘surface’: 等高線が表面にプロットされます。

        • ‘both’: 2つの等高線がプロットされます:xy平面上と表面と。

        • ‘map’: 等高線がxy平面上に射影されて、観点がちょうど垂直に設定
          されます。

     これはグローバルグラフィックオプションなので、 シーン記述での位置は
     かまいません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
                       contour_levels = 15,
                       contour        = both,
                       surface_hide   = true) $

 -- グラフィックオプション: contour_levels
     デフォルト値: 5

     このグラフィックオプションは、 等高線が描かれる方法を制御します。
     ‘contour_levels’は、正の整数、3つの数のリスト、または、 数の任意の
     集合に設定することができます:

        • オプション‘contour_levels’が正の整数<n>にバインド(bounded)され
          ている時、 <n>この等高線が等しい間隔で描かれます。 デフォルト
          では、 5つの等しく間隔の空けられた等高線がプロットされます。

        • オプション‘contour_levels’が 形式‘[lowest,s,highest]’の長さ3の
          リストにバインド(bounded)されている時、 等高線は ‘lowest’から
          ‘highest’へ‘s’個のステップでプロットされます。

        • オプション‘contour_levels’が 形式‘{n1, n2, ...}’の数の集合にバ
          インド(bounded)されている時、 等高線は 値‘n1’, ‘n2’, ...にプロ
          ットされます。

     これはグローバルグラフィックオプションなので、 シーン記述での位置は
     かまいません。

     例:

     10の等しく間隔の空けられた等高線。 レベルの実際の数は簡単なラベルを
     与えるために調整することができます。
          (%i1) load("draw")$
          (%i2) draw3d(color = green,
                       explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
                       contour_levels = 10,
                       contour        = both,
                       surface_hide   = true) $

     -8から8まで4つのステップで。
          (%i1) load("draw")$
          (%i2) draw3d(color = green,
                       explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
                       contour_levels = [-8,4,8],
                       contour        = both,
                       surface_hide   = true) $

     レベル-7, -6, 0.8, 5での等値線。
          (%i1) load("draw")$
          (%i2) draw3d(color = green,
                       Explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
                       Contour_levels = {-7, -6, 0.8, 5},
                       Contour        = both,
                       Surface_hide   = true) $

     ‘contour’も参照してください。

 -- グラフィックオプション: data_file_name
     デフォルト値: ‘"data.gnuplot"’

     これは、 リクエストされたプロットを構築するためにGnuplotが必要とす
     る数値データを含む ファイルの名前です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。 関数‘draw’の引数としても使うことができます。

     ‘gnuplot_file_name’の中で例を参照してください。

 -- グラフィックオプション: delay
     デフォルト値: 5

     これは アニメーションgifファイルにおけるフレームの1/100秒単位の遅延
     です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。 関数‘draw’の引数としても使うことができます。

     例:

          (%i1) load("draw")$
          (%i2) draw(
                  delay     = 100,
                  file_name = "zzz",
                  terminal  = 'animated_gif,
                  gr2d(explicit(x^2,x,-1,1)),
                  gr2d(explicit(x^3,x,-1,1)),
                  gr2d(explicit(x^4,x,-1,1)));
          End of animation sequence
          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

     オプション‘delay’はアニメーションgifに関してだけアクティブです; 他
     のいかなる場合も無視されます。

     ‘terminal’, ‘dimensions’も参照してください。

 -- グラフィックオプション: dimensions
     デフォルト値: ‘[600,500]’

     出力端末の寸法。 その値は、幅と高さで形成されるリストです。 2つの数
     の意味は使っている端末に依存します。

     端末‘gif’, ‘animated_gif’, ‘png’, ‘jpg’, ‘svg’, ‘screen’, ‘wxt’,
     ‘aquaterm’では、 整数はそれぞれの方向の点の数を表します。 もし整数
     でないなら、丸められます。

     端末‘eps’, ‘eps_color’, ‘pdf’, ‘pdfcairo’では、 両方の数は1/100cm単
     位の長さを表します。 デフォルトでは、これらのフォーマットでの画像は
     幅6cm、高さ5cmであることを意味します。

     これはグローバルグラフィックオプションなので、 シーン記述での位置は
     関係ありません。 関数‘draw’の引数として使われることもあります。

     例:

     ファイル出力とwxtキャンバスに適用されたオプション‘dimensions’。

          (%i1) load("draw")$
          (%i2) draw2d(
                  dimensions = [300,300],
                  terminal   = 'png,
                  explicit(x^4,x,-1,1)) $
          (%i3) draw2d(
                  dimensions = [300,300],
                  terminal   = 'wxt,
                  explicit(x^4,x,-1,1)) $

     eps出力に適用されたオプション‘dimensions’。 A4縦寸法のepsファイルが
     欲しいです。

          (%i1) load("draw")$
          (%i2) A4portrait: 100*[21, 29.7]$
          (%i3) draw3d(
                  dimensions = A4portrait,
                  terminal   = 'eps,
                  explicit(x^2-y^2,x,-2,2,y,-2,2)) $

 -- グラフィックオプション: enhanced3d
     デフォルト値: ‘false’

     もし‘enhanced3d’が‘false’なら、 3dプロットで表面は色付けられません
     。 もし‘enhanced3d’が‘true’なら、 Gnuplotのpm3dモードを設定して表面
     が色付けられます。 もし式が‘enhanced3d’に与えられるなら、 それは
     ‘palette’に従って色を割り当てるのに使われます; この式の中の変数は表
     面記述で使われるものと同じでなければいけません。

     如何にパレットが指定されるか知るためには、オプション‘palette’を参照
     してください。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(
                   surface_hide = true,
                   enhanced3d   = true,
                   palette      = gray,
                   explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
          (%i3) draw3d(
                   surface_hide = true,
                   /* same variables x and y as */
                   /* in explicit below:        */
                   enhanced3d   = sin(x*y),
                   explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
          (%i4) draw3d(
                   color = blue,
                   nticks = 60,
                   line_width = 3,
                   enhanced3d = (u-1)^2,
                   parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2))$

 -- グラフィックオプション: error_type
     デフォルト値: ‘y’

     値は‘x’, ‘y’, ‘xy’を取り得ますが、その値に依存して、 グラフィックオ
     ブジェクト‘errors’は水平エラーバー、垂直エラーバー、その両方を伴っ
     て 点を描画します。 ‘error_type=boxes’の時、クロスの代わりにボック
     スが描かれます。

     ‘errors’も参照してください。

 -- グラフィックオプション: file_name
     デフォルト値: ‘"maxima_out"’

     これは、 端末‘png’, ‘jpg’, ‘eps’, ‘eps_color’, ‘pdf’, ‘pdfcairo’が
     グラフィックを保存する ファイルの名前です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(file_name = "myfile",
                       explicit(x^2,x,-1,1),
                       terminal  = 'png)$

     ‘terminal’, ‘dimensions’も参照してください。

 -- グラフィックオプション: fill_color
     デフォルト値: ‘"red"’

     ‘fill_color’はポリゴンと2d ‘explicit’関数を塗りつぶすための色を指定
     します。

     如何に色が指定されるかを知るには‘color’を参照してください。

 -- グラフィックオプション: fill_density
     デフォルト値: 0

     ‘fill_density’は、‘bars’オブジェクトに関して‘fill_color’の強度を指
     定する0と1の間の数です。

     例を見るには‘bars’を参照してください。

 -- グラフィックオプション: filled_func
     デフォルト値: ‘false’

     オプション‘filled_func’は 関数によって制限された領域が如何に塗りつ
     ぶされるべきかを 制御します。 ‘filled_func’が‘true’の時、 オブジェ
     クト‘explicit’とグラフィックウィンドウの底で定義された関数によって
     閉ざされた領域は‘fill_color’で塗りつぶされます。 ‘filled_func’が関
     数式を含む時、 この関数とオブジェクト‘explicit’ で定義された関数に
     よって閉ざされた領域が 塗りつぶされます。 デフォルトでは、陽な関数
     は塗りつぶされません。

     このオプションは2dグラフィックオブジェクト‘explicit’だけに影響しま
     す。

     例:

     ‘explicit’オブジェクトとグラフィックウィンドウによって閉ざされた領
     域。
          (%i1) load("draw")$
          (%i2) draw2d(fill_color  = red,
                       filled_func = true,
                       explicit(sin(x),x,0,10) )$

     ‘explicit’オブジェクト とオプション‘filled_func’で定義された関数に
     よって閉ざされた領域。 ‘filled_func’の中の変数は must be the same
     as that used in ‘explicit’の中で使われるものと同じでなければいけな
     いことに注意してください。
          (%i1) load("draw")$
          (%i2) draw2d(fill_color  = grey,
                       filled_func = sin(x),
                       explicit(-sin(x),x,0,%pi));

     ‘fill_color’と‘explicit’も参照してください。

 -- グラフィックオプション: font
     デフォルト値: ‘""’ (empty string)

     このオプションは 端末が使う書体を設定するために使うことができます。
     プロットを通して書体とサイズは１つだけ使うことができます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     ‘font_size’も参照してください。

     Gnuplotはそれ自身フォントを扱いません。 異なる端末のサポートライブ
     ラリに任せます。 それぞれはフォントに関して独自の哲学を持っています
     。 簡単なまとめは以下の通りです:

        • x11: 通常のX11フォンとサーバーメカニズムを使います。

          例:
               (%i1) load("draw")$
               (%i2) draw2d(font      = "Arial",
                            font_size = 20,
                            label(["Arial font, size 20",1,1]))$

        • windows: Windows端末はプロット内部でフォントの変更をサポートし
          ません。 一旦プロットが生成されると、グラフウィンドウのメニュ
          ーを右クリックしてフォントを変更することができます。

        • png, jpeg, gif: libgdライブラリは 環境変数‘GDFONTPATH’の中に保
          持されたフォントパスを使います; この場合、オプション‘font’をフ
          ォント名に設定することだけが必要です。 フォントファイルへの完
          全なパスを与えることも可能です。

          例:

          オプション‘font’はフォントファイルへの完全なパスを与えることが
          できます:
               (%i1) load("draw")$
               (%i2) path: "/usr/share/fonts/truetype/freefont/" $
               (%i3) file: "FreeSerifBoldItalic.ttf" $
               (%i4) draw2d(
                       font      = concat(path, file),
                       font_size = 20,
                       color     = red,
                       label(["FreeSerifBoldItalic font, size 20",1,1]),
                       terminal  = png)$

          もし環境変数‘GDFONTPATH’が フォントファイルが配置されているパ
          スに設定されているなら、 set グラフィックオプション‘font’をフ
          ォント名に設定することが可能です。
               (%i1) load("draw")$
               (%i2) draw2d(
                       font      = "FreeSerifBoldItalic",
                       font_size = 20,
                       color     = red,
                       label(["FreeSerifBoldItalic font, size 20",1,1]),
                       terminal  = png)$

        • Postscript: 標準ポストスクリプトフォントは以下の通りです:
          ‘"Times-Roman"’, ‘"Times-Italic"’, ‘"Times-Bold"’,
          ‘"Times-BoldItalic"’,
          ‘"Helvetica"’, ‘"Helvetica-Oblique"’, ‘"Helvetica-Bold"’,
          ‘"Helvetic-BoldOblique"’, ‘"Courier"’, ‘"Courier-Oblique"’,
          ‘"Courier-Bold"’,
          ‘"Courier-BoldOblique"’。

          例:
               (%i1) load("draw")$
               (%i2) draw2d(
                       font      = "Courier-Oblique",
                       font_size = 15,
                       label(["Courier-Oblique font, size 15",1,1]),
                       terminal = eps)$

        • pdf: Postscriptと同じフォントを使います。

        • pdfcairo: wxtと同じフォントを使います。

        • wxt: pangoライブラリは ‘fontconfig’ユーティリティを介してフォ
          ントを見つけます。

        • aqua: デフォルトは‘"Times-Roman"’です。

     Gnuplotドキュメンテーションは端末とフォントに関する情報の重要なソー
     スです。

 -- グラフィックオプション: font_size
     デフォルト値: 10

     このオプションは、 フォントサイズを端末によって使われるように設定す
     るために使うことができます。 １つの書体とサイズだけがプロットの間中
     で使うことができます。 オプション‘font’が空の文字列に等しくない時だ
     け、 ‘font_size’はアクティブです。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     ‘font’も参照してください。

 -- グラフィックオプション: gnuplot_file_name
     デフォルト値: ‘"maxout.gnuplot"’

     これは、 Gnuplotで処理される必要なコマンドを含む ファイルの名前です
     。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。 関数‘draw’の引数としても使うことができます。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                 file_name = "my_file",
                 gnuplot_file_name = "my_commands_for_gnuplot",
                 data_file_name    = "my_data_for_gnuplot",
                 terminal          = png,
                 explicit(x^2,x,-1,1)) $

     ‘data_file_name’も参照してください。

 -- グラフィックオプション: grid
     デフォルト値: ‘false’

     もし‘grid’が‘true’なら、 <xy>平面上に格子が描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(grid = true,
                       explicit(exp(u),u,-2,2))$

 -- グラフィックオプション: head_angle
     デフォルト値: 45

     ‘head_angle’は矢印の頭と線分の間の角度を度の単位で示します。

     このオプションは‘vector’オブジェクトに対してだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [0,10],
                       yrange      = [0,9],
                       head_length = 0.7,
                       head_angle  = 10,
                       vector([1,1],[0,6]),
                       head_angle  = 20,
                       vector([2,1],[0,6]),
                       head_angle  = 30,
                       vector([3,1],[0,6]),
                       head_angle  = 40,
                       vector([4,1],[0,6]),
                       head_angle  = 60,
                       vector([5,1],[0,6]),
                       head_angle  = 90,
                       vector([6,1],[0,6]),
                       head_angle  = 120,
                       vector([7,1],[0,6]),
                       head_angle  = 160,
                       vector([8,1],[0,6]),
                       head_angle  = 180,
                       vector([9,1],[0,6]) )$

     ‘head_both’, ‘head_length’, ‘head_type’も参照してください。

 -- グラフィックオプション: head_both
     デフォルト値: ‘false’

     もし‘head_both’が‘true’なら、 ベクトルは2つの矢先と共に描画されます
     。 もし‘false’なら１つの矢だけが描かれます。

     このオプションは‘vector’オブジェクトに対してだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [0,8],
                       yrange      = [0,8],
                       head_length = 0.7,
                       vector([1,1],[6,0]),
                       head_both   = true,
                       vector([1,7],[6,0]) )$

     See also ‘head_length’, ‘head_angle’, and ‘head_type’.

 -- グラフィックオプション: head_length
     デフォルト値: 2

     ‘head_length’は矢印の頭の長さを<x>-軸の単位で示します。

     このオプションは‘vector’オブジェクトに対してだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [0,12],
                       yrange      = [0,8],
                       vector([0,1],[5,5]),
                       head_length = 1,
                       vector([2,1],[5,5]),
                       head_length = 0.5,
                       vector([4,1],[5,5]),
                       head_length = 0.25,
                       vector([6,1],[5,5]))$

     ‘head_both’, ‘head_angle’, ‘head_type’も参照してください。

 -- グラフィックオプション: head_type
     デフォルト値: ‘filled’

     ‘head_type’は矢印の頭を如何にプロットするかを指定するのに使われます
     。 可能な値は以下の通りです: ‘filled’ (閉じていて塗りつぶされた矢印
     の頭), ‘empty’ (閉じているが塗りつぶされていない矢印の頭),
     ‘nofilled’ (開いた矢印の頭).

     このオプションは‘vector’オブジェクトにだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [0,12],
                       yrange      = [0,10],
                       head_length = 1,
                       vector([0,1],[5,5]), /* default type */
                       head_type = 'empty,
                       vector([3,1],[5,5]),
                       head_type = 'nofilled,
                       vector([6,1],[5,5]))$

     ‘head_both’, ‘head_angle’, ‘head_length’も参照してください。

 -- グラフィックオプション: ip_grid
     デフォルト値: ‘[50, 50]’

     ‘ip_grid’はインプリシットなプロットでの最初のサンプリングのためにグ
     リッドを設定します。

     このオプションは‘implicit’オブジェクトに対してだけ関係があります。

 -- グラフィックオプション: ip_grid_in
     デフォルト値: ‘[5, 5]’

     ‘ip_gridi_in’はインプリシットなプロットでの二番目のサンプリングのた
     めにグリッドを設定します。

     このオプションは‘implicit’オブジェクトに対してだけ関係があります。

 -- グラフィックオプション: key
     デフォルト値: ‘""’ (empty string)

     ‘key’は凡例の中の関数名です。 もし‘key’が空の文字列なら、 関数にキ
     ーは割り当てられません。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘points’, ‘polygon’, ‘rectangle’, ‘ellipse’, ‘vector’,
          ‘explicit’, ‘implicit’, ‘parametric’, と‘polar’。

        • ‘gr3d’: ‘points’, ‘explicit’, ‘parametric’, と
          ‘parametric_surface’

     例:

          (%i1) load("draw")$
          (%i2) draw2d(key   = "Sinus",
                       explicit(sin(x),x,0,10),
                       key   = "Cosinus",
                       color = red,
                       explicit(cos(x),x,0,10) )$

 -- グラフィックオプション: label_alignment
     デフォルト値: ‘center’

     ‘label_alignment’は 与えられた座標に関するラベルを書く場所を指定す
     るのに使われます。 可能な値は以下のものです: ‘center’, ‘left’,
     ‘right’.

     このオプションは‘label’オブジェクトに対してだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange          = [0,10],
                       yrange          = [0,10],
                       points_joined   = true,
                       points([[5,0],[5,10]]),
                       color           = blue,
                       label(["Centered alignment (default)",5,2]),
                       label_alignment = 'left,
                       label(["Left alignment",5,5]),
                       label_alignment = 'right,
                       label(["Right alignment",5,8]))$

     ‘label_orientation’, ‘color’も参照してください。

 -- グラフィックオプション: label_orientation
     デフォルト値: ‘horizontal’

     ‘label_orientation’はラベルの向きを指定するのに使われます。 可能な
     値は以下のものです: ‘horizontal’, ‘vertical’.

     このオプションは‘label’オブジェクトに対してだけ有効です。

     例:

     この例では、ダミーの点がイメージを得るために加えられます。 パッケー
     ジ‘draw’はいつもシーンを描くのにデータを必要とします。
          (%i1) load("draw")$
          (%i2) draw2d(xrange     = [0,10],
                       yrange     = [0,10],
                       point_size = 0,
                       points([[5,5]]),
                       color      = navy,
                       label(["Horizontal orientation (default)",5,2]),
                       label_orientation = 'vertical,
                       color             = "#654321",
                       label(["Vertical orientation",1,5]))$

     ‘label_alignment’と‘color’も参照してください。

 -- グラフィックオプション: line_type
     デフォルト値: ‘solid’

     ‘line_type’は線が如何に表示されるかを示します; 可能な値は‘solid’と
     ‘dots’です。

     このオプションは以下のグラフィックオブジェクトに鋭意供します:
        • ‘gr2d’: ‘points’, ‘polygon’, ‘rectangle’, ‘ellipse’, ‘vector’,
          ‘explicit’, ‘implicit’, ‘parametric’と‘polar’。

        • ‘gr3d’: ‘points’, ‘explicit’, ‘parametric’と
          ‘parametric_surface’。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(line_type = dots,
                       explicit(1 + x^2,x,-1,1),
                       line_type = solid, /* default */
                       explicit(2 + x^2,x,-1,1))$

     See also ‘line_width’.

 -- グラフィックオプション: line_width
     デフォルト値: 1

     ‘line_width’はプロットされる線の幅です。 その値は正の数でなければい
     けません。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘points’, ‘polygon’, ‘rectangle’, ‘ellipse’, ‘vector’,
          ‘explicit’, ‘implicit’, ‘parametric’ と‘polar’.

        • ‘gr3d’: ‘points’と‘parametric’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
                       line_width = 5.5,
                       explicit(1 + x^2,x,-1,1),
                       line_width = 10,
                       explicit(2 + x^2,x,-1,1))$

     ‘line_type’も参照してください。

 -- グラフィックオプション: logcb
     デフォルト値: ‘false’

     もし‘logcb’が‘true’なら、 カラーボックスのチックは対数スケールで描
     かれます。

     ‘enhanced3d’か‘colorbox’が‘false’の時、 オプション‘logcb’は効果を持
     ちません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d (
                  enhanced3d = true,
                  color      = green,
                  logcb = true,
                  logz  = true,
                  palette = [-15,24,-9],
                  explicit(exp(x^2-y^2), x,-2,2,y,-2,2)) $

     ‘enhanced3d’, ‘colorbox’, ‘cbrange’も参照してください。

 -- グラフィックオプション: logx
     デフォルト値: ‘false’

     もし‘logx’が‘true’なら、 <x>軸は対数スケールで描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(log(x),x,0.01,5),
                       logx = true)$

     ‘logy’, ‘logz’も参照してください。

 -- グラフィックオプション: logy
     デフォルト値: ‘false’

     もし‘logy’が‘true’なら、 <y>軸は対数スケールで描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(logy = true,
                       explicit(exp(x),x,0,5))$

     ‘logx’, ‘logz’も参照してください。

 -- グラフィックオプション: logz
     デフォルト値: ‘false’

     もし‘logz’が‘true’なら、 <z>軸は対数スケールで描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(logz = true,
                       explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$

     ‘logx’, ‘logy’も参照してください。

 -- グラフィックオプション: nticks
     デフォルト値: 29

     2dでは、‘nticks’は、 陽なオブジェクトに関する適応プロットルーチンに
     よって使われる点の初期数を与えます。 それはパラメトリック曲線と極座
     標曲線で示される点の数でもあります。

     このオプションは以下のグラフィックオブジェクトに影響を与えます:
        • ‘gr2d’: ‘ellipse’, ‘explicit’, ‘parametric’と‘polar’。

        • ‘gr3d’: ‘parametric’。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(transparent = true,
                       ellipse(0,0,4,2,0,180),
                       nticks = 5,
                       ellipse(0,0,4,2,180,180) )$

 -- グラフィックオプション: palette
     デフォルト値: ‘color’

     ‘palette’はグレイレベルを色成分上にマップする仕方を示します。 3Dオ
     ブジェクトでのオプション‘enhanced3d’と一緒に機能します。 3Dオブジェ
     クトは表面のすべての点を実数かグレイレベルに関連付けます。 グレイイ
     メージとも一緒に機能します。‘palette’によってレベルは色に変換されま
     す。

     これらの変換を定義するには2つの方法があります。

     1つ目の方法では、‘palette’は、-36から+36までの範囲の成分の長さ3のベ
     クトルです; それぞれの値は それぞれ赤、緑、青色上にレベルをマップす
     る公式に関する添字です:
           0: 0               1: 0.5           2: 1
           3: x               4: x^2           5: x^3
           6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
           9: sin(90x)       10: cos(90x)     11: |x-0.5|
          12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
          15: sin(360x)      16: cos(360x)    17: |sin(360x)|
          18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
          21: 3x             22: 3x-1         23: 3x-2
          24: |3x-1|         25: |3x-2|       26: (3x-1)/2
          27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
          30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
          33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
          36: 2*x - 1
     負の数は負の色成分を意味します。 ‘palette = gray’と‘palette =
     color’は、 それぞれ‘palette = [3,3,3]’と‘palette = [7,5,15]’の ショ
     ートカットです

     2つ目の方法では、‘palette’はユーザー定義のルックアップテーブルです
     。 この場合、長さ‘n’のルックアップテーブルを構成するフォーマットは
     ‘palette=[color_1, color_2, ..., color_n’です。 ここで、‘color_i’は
     、‘color_i’が最低のグレイレベルに割り当てられ、 ‘color_n’が最高に割
     り当てられるような均整のとれた色です (オプション‘color’を参照してく
     ださい)。 残りの色は内挿されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

     3Dオブジェクトでのオプション‘enhanced3d’と一緒に機能します。

          (%i1) load("draw")$
          (%i2) draw3d(
                  enhanced3d = [z-x+2*y,x,y,z],
                  palette = [32, -8, 17],
                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$

     グレイイメージとも一緒に機能します。

          (%i1) load("draw")$
          (%i2) im: apply(
                     'matrix,
                      makelist(makelist(random(200),i,1,30),i,1,30))$
          (%i3) /* palette = color, default */
                draw2d(image(im,0,0,30,30))$
          (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
          (%i5) draw2d(palette = [15,20,-4],
                       colorbox=false,
                       image(im,0,0,30,30))$
     ‘palette’はユーザー定義のルックアップテーブルの場合があります。 こ
     の例では、ple, low values of ‘x’の低いレベルは赤に割り当てられ、高
     いレベルは黄色に割り当てられています。

          (%i1) load("draw")$
          (%i2) draw3d(
                   palette = [red, blue, yellow],
                   enhanced3d = x,
                   explicit(x^2+y^2,x,-1,1,y,-1,1)) $

     ‘colorbox’も参照してください。

 -- グラフィックオプション: point_size
     デフォルト値: 1

     ‘point_size’はプロットされる点のサイズを設定します。 非負数でなけれ
     ばいけません。

     グラフィックオプション‘point_type’が‘dot’に設定される時 このオプシ
     ョンは効果を持ちません。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘points’.

        • ‘gr3d’: ‘points’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
                  point_size = 5,
                  points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$

 -- グラフィックオプション: point_type
     デフォルト値: 1

     ‘point_type’は、いかに孤立した点が表示されるかを示します; このオプ
     ションの値は、-1以上の整数インデックスもしくは点スタイルの名前であ
     り得ます: ‘$none’ (-1), ‘dot’ (0), ‘plus’ (1), ‘multiply’ (2),
     ‘asterisk’ (3), ‘square’ (4), ‘filled_square’ (5), ‘circle’ (6),
     ‘filled_circle’ (7), ‘up_triangle’ (8), ‘filled_up_triangle’ (9),
     ‘down_triangle’ (10), ‘filled_down_triangle’ (11), ‘diamant’
     (12),‘filled_diamant’ (13).

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘points’.

        • ‘gr3d’: ‘points’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange = [0,10],
                       yrange = [0,10],
                       point_size = 3,
                       point_type = diamant,
                       points([[1,1],[5,1],[9,1]]),
                       point_type = filled_down_triangle,
                       points([[1,2],[5,2],[9,2]]),
                       point_type = asterisk,
                       points([[1,3],[5,3],[9,3]]),
                       point_type = filled_diamant,
                       points([[1,4],[5,4],[9,4]]),
                       point_type = 5,
                       points([[1,5],[5,5],[9,5]]),
                       point_type = 6,
                       points([[1,6],[5,6],[9,6]]),
                       point_type = filled_circle,
                       points([[1,7],[5,7],[9,7]]),
                       point_type = 8,
                       points([[1,8],[5,8],[9,8]]),
                       point_type = filled_diamant,
                       points([[1,9],[5,9],[9,9]]) )$

 -- グラフィックオプション: points_joined
     デフォルト値: ‘false’

     ‘points_joined’が‘true’の時、 点は線で結ばれます; ‘false’の時、孤立
     した点が描かれます。 このグラフィックオプションの三番目の可能な値は
     ‘impulses’です; この場合、点からx軸(2D)もしくはxy平面(3D)へ垂直の線
     分が描かれます。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘points’.

        • ‘gr3d’: ‘points’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange        = [0,10],
                       yrange        = [0,4],
                       point_size    = 3,
                       point_type    = up_triangle,
                       color         = blue,
                       points([[1,1],[5,1],[9,1]]),
                       points_joined = true,
                       point_type    = square,
                       line_type     = dots,
                       points([[1,2],[5,2],[9,2]]),
                       point_type    = circle,
                       color         = red,
                       line_width    = 7,
                       points([[1,3],[5,3],[9,3]]) )$

 -- グラフィックオプション: proportional_axes
     デフォルト値: ‘none’

     ‘proportional_axes’が‘xy’に等しい時、 それらの相対的な長さに比例す
     る軸で2Dシーンが描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     このオプションは2Dプロットでだけ機能します。 一旦Gnuplot 4.3が公式
     にリリースされたら、 ‘proportional_axes’は3Dプロットに拡張させるで
     しょう。

     例:

     単プロット。

          (%i1) load("draw")$
          (%i2) draw2d(
                  ellipse(0,0,1,1,0,360),
                  transparent=true,
                  color = blue,
                  line_width = 4,
                  ellipse(0,0,2,1/2,0,360),
                  proportional_axes = xy) $

     多重プロット。

          (%i1) load("draw")$
          (%i2) draw(
                  terminal = wxt,
                  gr2d(proportional_axes = xy,
                       explicit(x^2,x,0,1)),
                  gr2d(explicit(x^2,x,0,1),
                       xrange = [0,1],
                       yrange = [0,2],
                       proportional_axes=xy),
                  gr2d(explicit(x^2,x,0,1))

 -- グラフィックオプション: surface_hide
     デフォルト値: ‘false’

     もし‘surface_hide’が‘true’なら、 隠れた部分は3d表面にプロットされま
     せん。

     これはグローバルグラフィックオプションなので、 シーン記述での位置は
     かまいません。

     例:

          (%i1) load("draw")$
          (%i2) draw(columns=2,
                     gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
                     gr3d(surface_hide = true,
                          explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$

 -- グラフィックオプション: terminal
     デフォルト値: ‘screen’

     Gnuplotが使う端末を選択します; 可能な値は: ‘screen’ (デフォルト),
     ‘png’, ‘pngcairo’, ‘jpg’, ‘eps’, ‘eps_color’, ‘pdf’, ‘pdfcairo’,
     ‘gif’, ‘animated_gif’, ‘wxt’, ‘aquaterm’.

     端末‘screen’, ‘wxt’, ‘aquaterm’は２つの要素を持つリストとしても定義
     できます: 端末自身の名前と非負の整数。 この形式では、それぞれ対応す
     る番号を持つ複数のウィンドウを同時に開くことができます。 この特長は
     Windowsプラットフォームでは機能しません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。 関数‘draw’の引数としても使われます。

     注意せよ―pdfcairoはGnuplot 4.3を必要とします。 (2008年11月)現在、
     Gnuplot 4.3は開発バージョンです。 pdfは、 Gnuplot 4.2/4.3を オプシ
     ョン‘--enable-pdf’でコンパイルすることを 必要とし、libpdfがインスト
     ールされていなければいけません。 pdfライブラリは以下で利用可能です:
     <http://www.pdflib.com/en/download/pdflib-family/pdflib-lite/>

     例:

          (%i1) load("draw")$
          (%i2) /* screen terminal (default) */
                draw2d(explicit(x^2,x,-1,1))$
          (%i3) /* png file */
                draw2d(terminal  = 'png,
                       explicit(x^2,x,-1,1))$
          (%i4) /* jpg file */
                draw2d(terminal   = 'jpg,
                       dimensions = [300,300],
                       explicit(x^2,x,-1,1))$
          (%i5) /* eps file */
                draw2d(file_name = "myfile",
                       explicit(x^2,x,-1,1),
                       terminal  = 'eps)$
          (%i6) /* pdf file */
                draw2d(file_name = "mypdf",
                       dimensions = 100*[12.0,8.0],
                       explicit(x^2,x,-1,1),
                       terminal  = 'pdf)$
          (%i7) /* wxwidgets window */
                draw2d(explicit(x^2,x,-1,1),
                       terminal  = 'wxt)$

     複数のウィンドウ。
          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^5,x,-2,2), terminal=[screen, 3])$
          (%i3) draw2d(explicit(x^2,x,-2,2), terminal=[screen, 0])$

     動画gifファイル。
          (%i1) load("draw")$
          (%i2) draw(
                  delay     = 100,
                  file_name = "zzz",
                  terminal  = 'animated_gif,
                  gr2d(explicit(x^2,x,-1,1)),
                  gr2d(explicit(x^3,x,-1,1)),
                  gr2d(explicit(x^4,x,-1,1)));
          End of animation sequence
          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

     オプション‘delay’は動画gifでだけ有効です; 他のいかなる場合も無視さ
     れます。

     ‘file_name’, ‘dimensions’, ‘delay’も参照してください。

 -- グラフィックオプション: title
     デフォルト値: ‘""’ (empty string)

     オプション‘title’、文字列は、シーンのメインタイトルです。 デフォル
     トではタイトルは書かれません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(exp(u),u,-2,2),
                       title = "Exponential function")$

 -- グラフィックオプション: transform
     デフォルト値: ‘none’

     もし‘transform’が‘none’なら、 空間は変換されず、グラフィックオブジ
     ェクトは定義の通り描画されます。 空間変換が望まれた時、リストがオプ
     ション‘transform’に割り当てられなければいけません。 2Dシーンの場合
     、 リストは形式‘[f1(x,y), f2(x,y), x, y]’を取ります。 3Dシーンの場
     合、 リストは形式‘[f1(x,y,z), f2(x,y,z), f3(x,y,z), x, y, z]’を取り
     ます。 リストの中で定義されている変数名は グラフィックオブジェクト
     の定義の中で使われるものと異なるかもしれません。

     例:

     2Dの回転。

          (%i1) load("draw")$
          (%i2) th : %pi / 4$
          (%i3) draw2d(
                  color = "#e245f0",
                  proportional_axes = 'xy,
                  line_width = 8,
                  triangle([3,2],[7,2],[5,5]),
                  border     = false,
                  fill_color = yellow,
                  transform  = [cos(th)*x - sin(th)*y,
                                sin(th)*x + cos(th)*y, x, y],
                  triangle([3,2],[7,2],[5,5]) )$

     3Dでの変形。

          (%i1) load("draw")$
          (%i2) draw3d(
                  color     = "#a02c00",
                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
                  transform = [x+10,y+10,z+10,x,y,z],
                  color     = blue,
                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3) )$

 -- グラフィックオプション: transparent
     デフォルト値: ‘false’

     もし‘transparent’が‘true’なら、 ポリゴンの内側の領域は
     ‘fill_color’に従って塗りつぶされます。

     このオプションは以下のグラフィックオブジェクトに影響します:
        • ‘gr2d’: ‘polygon’, ‘rectangle’, と‘ellipse’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
                       transparent = true,
                       color       = blue,
                       polygon([[5,2],[9,2],[7,5]]) )$

 -- グラフィックオプション: tube_extremes
     デフォルト値: ‘[open, open]’

     グラフィックオブジェクト‘tube’の極値が開いたままか 閉じていなければ
     いけないかを示唆する 2つの可能性のある要素‘open’と‘closed’を持つリ
     スト。 デフォルトでは、どちらの極値も開いたままです。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(
                  tube_extremes = [open, closed],
                  tube(0, 0, a, 1,
                       a, 0, 8) )$

 -- グラフィックオプション: unit_vectors
     デフォルト値: ‘false’

     もし‘unit_vectors’が‘true’なら、 ベクトルは単位1でプロットされます
     。 これはベクトル場をプロットするのに役に立ちます。 もし
     ‘unit_vectors’が‘false’なら、 ベクトルは元の長さでプロットされます
     。

     このオプションは‘vector’オブジェクトに対してだけ有効です。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [-1,6],
                       yrange      = [-1,6],
                       head_length = 0.1,
                       vector([0,0],[5,2]),
                       unit_vectors = true,
                       color        = red,
                       vector([0,3],[5,2]))$

 -- グラフィックオプション: user_preamble
     デフォルト値: ‘""’ (empty string)

     熟練Gnuplotユーザーは、 ‘plot’や‘splot’コマンドの前に送られる設定を
     書くことで、 このオプションを利用して、 Gnuplotの振る舞いを微調整す
     ることができます。

     このオプションの値は文字列か(行毎に１つの)文字列のリスト でなければ
     いけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

     ダム端末は、パッケージ‘draw’でサポートされていませんが、 オプション
     ‘user_preamble’の利用によって、それを設定することが可能です。
          (%i1) load("draw")$
          (%i2) draw2d(explicit(exp(x)-1,x,-1,1),
                       parametric(cos(u),sin(u),u,0,2*%pi),
                       user_preamble="set terminal dumb")$

 -- グラフィックオプション: view
     デフォルト値: ‘[60,30]’

     3Dシーンでビュー方向を示す度数で測られた角度の対。 最初の角度は
     <x>軸回りの垂直回転であり、[0, 180]の範囲です。 二番目は<z>回りの水
     平回転であり、[0, 360]の範囲です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(view = [170, 360],
                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

 -- グラフィックオプション: x_voxel
     デフォルト値: 10

     ‘x_voxel’は 3d ‘暗黙の’オブジェクトで実装されたマーチングキューブア
     ルゴリズム x方向のボクセルの数です。 グラフィックオブジェクト
     ‘region’でも使われます。

 -- グラフィックオプション: xaxis
     デフォルト値: ‘false’

     もし‘xaxis’が‘true’なら、 <x>軸が描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       xaxis       = true,
                       xaxis_color = blue)$

     ‘xaxis_width’, ‘xaxis_type’, ‘xaxis_color’も参照してください。

 -- グラフィックオプション: xaxis_color
     デフォルト値: ‘"black"’

     ‘xaxis_color’は<x>軸の色を指定します。 いかに色が定義されるかを知る
     には‘color’を参照してください。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       xaxis       = true,
                       xaxis_color = red)$

     ‘xaxis’, ‘xaxis_width’, ‘xaxis_type’も参照してください。

 -- グラフィックオプション: xaxis_secondary
     デフォルト値: ‘false’

     もし‘xaxis_secondary’が‘true’なら、 関数値が、二番目の<x>軸に関して
     プロットされるかもしれません。 二番目の<x>軸はシーンのトップに描か
     れます。

     これは、2dプロットにだけ影響する局所的なグラフィックオプションであ
     ることに注意してください。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                   key   = "Bottom x-axis",
                   explicit(x+1,x,1,2),
                   color = red,
                   key   = "Above x-axis",
                   xtics_secondary = true,
                   xaxis_secondary = true,
                   explicit(x^2,x,-1,1)) $

     ‘xrange_secondary’, ‘xtics_secondary’, ‘xtics_rotate_secondary’,
     ‘xtics_axis_secondary’, ‘xaxis_secondary’も参照してください。

 -- グラフィックオプション: xaxis_type
     デフォルト値: ‘dots’

     ‘xaxis_type’は<x>軸がいかに表示されるかを示します; 可能な値は
     ‘solid’と‘dots’です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       xaxis       = true,
                       xaxis_type  = solid)$

     ‘xaxis’, ‘xaxis_width’, ‘xaxis_color’も参照してください。

 -- グラフィックオプション: xaxis_width
     デフォルト値: 1

     ‘xaxis_width’は<x>軸の幅です。 その値は正数でなければいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       xaxis       = true,
                       xaxis_width = 3)$

     ‘xaxis’, ‘xaxis_type’, ‘xaxis_color’も参照してください。

 -- グラフィックオプション: xlabel
     デフォルト値: ‘""’ (empty string)

     オプション‘xlabel’、文字列は <x>軸のラベルです。 デフォルトでは、ラ
     ベルは書かれません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xlabel = "Time",
                       explicit(exp(u),u,-2,2),
                       ylabel = "Population")$

     ‘ylabel’と‘zlabel’も参照してください。

 -- グラフィックオプション: xrange
     デフォルト値: ‘auto’

     もし‘xrange’が‘auto’なら、 <x>座標の範囲は自動的に計算されます。

     もしユーザーが <x>に関して特定の区間が欲しいなら、 ‘xrange=[-2,
     3]’のように、Maximaリストとして与えられなければいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange = [-3,5],
                       explicit(x^2,x,-1,1))$

     ‘yrange’と‘zrange’も参照してください。

 -- グラフィックオプション: xrange_secondary
     デフォルト値: ‘auto’

     もし‘xrange_secondary’が‘auto’なら、 二番目の<x>軸の範囲は自動的に
     計算されます。

     もしユーザーが 二番目の<x>軸の特定した区間が欲しいなら、
     ‘xrange_secondary=[-2, 3]’のように、Maximaリストとして与えられなけ
     ればいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     ‘xrange’, ‘yrange’, ‘zrange’, ‘yrange_secondary’も参照してください
     。

 -- グラフィックオプション: xtics
     デフォルト値: ‘auto’

     このグラフィックオプション制御は チックマークを<x>軸上に描く方法を
     制御します。

        • オプション‘xtics’がシンボル<auto>にバインドされている時 チック
          マークは自動的に描かれます。

        • オプション‘xtics’がシンボル<none>にバインドされている時 チック
          マークは描かれません。

        • オプション‘xtics’が正の数にバインドされている時、 これは２つの
          連続するチックマークの間の距離になります。

        • オプション‘xtics’が 形式‘[start,incr,end]’の長さ３のリストにバ
          インドされている時、 チックマークは ‘start’から‘end’まで 長さ
          ‘incr’の間隔でプロットされます。

        • オプション‘xtics’が 形式‘{n1, n2, ...}’の数の集合にバインドさ
          れている時、 チックマークは 値‘n1’, ‘n2’, ...にプロットされま
          す。

        • オプション‘xtics’が 形式‘{["label1", n1], ["label2", n2],
          ...}’の対の集合にバインドされている時、 値‘n1’, ‘n2’, ...に対
          応する チックマークはそれぞれ、 ‘"label1"’, ‘"label2"’, ...に
          ラベルされます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

     チックをディセーブルします。
          (%i1) load("draw")$
          (%i2) draw2d(xtics = 'none,
                       explicit(x^3,x,-1,1)  )$

     1/4単位毎のチック。
          (%i1) load("draw")$
          (%i2) draw2d(xtics = 1/4,
                       explicit(x^3,x,-1,1)  )$

     -3/4から3/4まで 1/8のステップでチック。
          (%i1) load("draw")$
          (%i2) draw2d(xtics = [-3/4,1/8,3/4],
                       explicit(x^3,x,-1,1)  )$

     点-1/2, -1/4, 3/4にチック。
          (%i1) load("draw")$
          (%i2) draw2d(xtics = {-1/2,-1/4,3/4},
                       explicit(x^3,x,-1,1)  )$

     ラベルされたチック。
          (%i1) load("draw")$
          (%i2) draw2d(xtics = {["High",0.75],["Medium",0],["Low",-0.75]},
                       explicit(x^3,x,-1,1)  )$

     ‘ytics’, ‘ztics’も参照してください。

 -- グラフィックオプション: xtics_axis
     デフォルト値: ‘false’

     もし‘xtics_axis’が‘true’なら、 チックマークとそれらのラベルが <x>軸
     に沿ってだけプロットされます。 もし‘false’なら、チックは境界上にプ
     ロットされます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: xtics_rotate
     デフォルト値: ‘false’

     もし‘xtics_rotate’が‘true’なら、 <x>軸上のチックマークが90度回転さ
     れます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: xtics_rotate_secondary
     デフォルト値: ‘false’

     もし‘xtics_rotate_secondary’が‘true’なら、 補助的な<x>軸上のチック
     マークが90度回転されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: xtics_secondary
     デフォルト値: ‘auto’

     このグラフィックオプションは、 二番目の<x>軸上にチックマークを描く
     方法を制御します。

     完全な記述に関しては、‘xtics’を参照してください。

 -- グラフィックオプション: xtics_secondary_axis
     デフォルト値: ‘false’

     もし‘xtics_secondary_axis’が‘true’なら、 チックマークとそれらのラベ
     ルは補助的な<x>軸に沿ってだけプロットされ、 もし‘false’なら、境界上
     にプロットされます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: xu_grid
     デフォルト値: 30

     ‘xu_grid’は サンプル点のグリッドを構築するための一番目の変数 (陽で
     の‘x’、パラメトリック3d表面での‘u’)の座標の数です。

     このオプションは以下のグラフィックオブジェクトに影響を与えます:
        • ‘gr3d’: ‘explicit’と‘parametric_surface’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(xu_grid = 10,
                       yv_grid = 50,
                       explicit(x^2+y^2,x,-3,3,y,-3,3) )$

     ‘yv_grid’も参照してください。

 -- グラフィックオプション: xy_file
     デフォルト値: ‘""’ (empty string)

     ‘xy_file’は、 マウスでクリックし、’x’キーを叩いた後、座標が保存され
     る ファイルの名前です。 デフォルトでは、座標は保存されません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

 -- グラフィックオプション: xyplane
     デフォルト値: ‘false’

     3Dシーンの中にxy平面を配置します。 ‘xyplane’が‘false’の時、 xy平面
     は自動的に置かれます; 実数の時、xy平面はこのレベルでz軸と交わります
     。 このオプションは2Dシーンでは効果を持ちません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(xyplane = %e-2,
                       explicit(x^2+y^2,x,-1,1,y,-1,1))$

 -- グラフィックオプション: y_voxel
     デフォルト値: 10

     ‘y_voxel’は 3d‘暗黙の’オブジェクトで実装されたマーチングキューブア
     ルゴリズム で使われるy方向のボクセルの数です。 グラフィックオブジェ
     クト‘region’でも使われます。

 -- グラフィックオプション: yaxis
     デフォルト値: ‘false’

     もし‘yaxis’が‘true’なら、<y>軸が描かれます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       yaxis       = true,
                       yaxis_color = blue)$

     ‘yaxis_width’, ‘yaxis_type’, ‘yaxis_color’も参照してください。

 -- グラフィックオプション: yaxis_color
     デフォルト値: ‘"black"’

     ‘yaxis_color’は<y>軸の色を指定します。 色がどのように定義されている
     か知るには ‘color’を参照してください。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       yaxis       = true,
                       yaxis_color = red)$

     ‘yaxis’, ‘yaxis_width’, ‘yaxis_type’も参照してください。

 -- グラフィックオプション: yaxis_secondary
     デフォルト値: ‘false’

     もし‘yaxis_secondary’が‘true’なら、 関数値は二番目の<y>軸に関してプ
     ロットされるかもしれません。 二番目の<y>軸はシーンの右側に描かれま
     す。

     これは、2dプロットにだけ影響する局所的なグラフィックオプションであ
     ることに注意してください。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                   explicit(sin(x),x,0,10),
                   yaxis_secondary = true,
                   ytics_secondary = true,
                   color = blue,
                   explicit(100*sin(x+0.1)+2,x,0,10));

     ‘yrange_secondary’, ‘ytics_secondary’, ‘ytics_rotate_secondary’ ,
     ‘ytics_axis_secondary’も参照してください。

 -- グラフィックオプション: yaxis_type
     デフォルト値: ‘dots’

     ‘yaxis_type’は<y>軸がどのように表示されるか示します; 可能な値は
     ‘solid’と‘dots’です。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       yaxis       = true,
                       yaxis_type  = solid)$

     ‘yaxis’, ‘yaxis_width’, ‘yaxis_color’も参照してください。

 -- グラフィックオプション: yaxis_width
     デフォルト値: 1

     ‘yaxis_width’は<y>軸の幅です。 その値は正の数でなければいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       yaxis       = true,
                       yaxis_width = 3)$

     ‘yaxis’, ‘yaxis_type’, ‘yaxis_color’も参照してください。

 -- グラフィックオプション: ylabel
     デフォルト値: ‘""’ (empty string)

     オプション‘ylabel’、文字列は <y>軸のラベルです。 デフォルトでは、ラ
     ベルは書かれません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xlabel = "Time",
                       ylabel = "Population",
                       explicit(exp(u),u,-2,2) )$

     ‘xlabel’と‘zlabel’も参照してください。

 -- グラフィックオプション: yrange
     デフォルト値: ‘auto’

     もし‘yrange’が‘auto’なら、 <y>座標の範囲は自動的に計算されます。

     もしユーザーが<y>の特定の区間が欲しいなら、 ‘yrange=[-2, 3]’のよう
     に、Maximaリストとして与えられなければいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(yrange = [-2,3],
                       explicit(x^2,x,-1,1),
                       xrange = [-3,3])$

     ‘xrange’, ‘yrange_secondary’, ‘zrange’も参照してください。

 -- グラフィックオプション: yrange_secondary
     デフォルト値: ‘auto’

     もし‘yrange_secondary’が‘auto’なら、 二番目の<y>軸の範囲は自動的に
     計算されます。

     もしユーザーが二番目の<y>軸の特定の区間が欲しいなら、
     ‘yrange_secondary=[-2, 3]’のように、Maximaリストとして与えられなけ
     ればいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                   explicit(sin(x),x,0,10),
                   yaxis_secondary = true,
                   ytics_secondary = true,
                   yrange = [-3, 3],
                   yrange_secondary = [-20, 20],
                   color = blue,
                   explicit(100*sin(x+0.1)+2,x,0,10)) $

     ‘xrange’, ‘yrange’, ‘zrange’も参照してください。

 -- グラフィックオプション: ytics
     デフォルト値: ‘auto’

     このグラフィックオプションは、 <y>軸上にチックマークを描く方法を制
     御します。

     完全な記述に関しては、‘xtics’を参照してください。

 -- グラフィックオプション: ytics_axis
     デフォルト値: ‘false’

     もし‘ytics_axis’が‘true’なら、 チックマークとそれらのラベルは<y>軸
     に沿ってだけプロットされ、 もし‘false’なら、境界上にプロットされま
     す。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: ytics_rotate
     デフォルト値: ‘false’

     もし‘ytics_rotate’が‘true’なら、 <y>軸上のチックマークが90度回転さ
     れます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: ytics_rotate_secondary
     デフォルト値: ‘false’

     もし‘ytics_rotate_secondary’が‘true’なら、 補助的な<y>軸上のチック
     マークが90度回転されます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: ytics_secondary
     デフォルト値: ‘auto’

     このグラフィックオプションは、 二番目の<y>軸上にチックマークを描く
     方法を制御します。

     完全な記述に関しては、‘xtics’を参照してください。

 -- グラフィックオプション: ytics_secondary_axis
     デフォルト値: ‘false’

     もし‘ytics_secondary_axis’が‘true’なら、 チックマークとそれらのラベ
     ルは補助的な<y>軸に沿ってだけプロットされ、 もし‘false’なら、境界上
     にプロットされます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: yv_grid
     デフォルト値: 30

     ‘yv_grid’は サンプル点のグリッドを構築するための 二番目の変数(陽で
     の‘y’、パラメトリック3d表面での‘v’)の座標の数です。

     このオプションは以下のグラフィックオブジェクトに影響を与えます:
        • ‘gr3d’: ‘explicit’と‘parametric_surface’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(xu_grid = 10,
                       yv_grid = 50,
                       explicit(x^2+y^2,x,-3,3,y,-3,3) )$

     ‘xu_grid’も参照してください。

 -- グラフィックオプション: z_voxel
     デフォルト値: 10

     ‘z_voxel’は 3d‘implicit’オブジェクトで実装されたマーチングキューブ
     アルゴリズム で使われるz方向のボクセルの数です。

 -- グラフィックオプション: zaxis
     デフォルト値: ‘false’

     もし‘zaxis’が‘true’なら、3Dプロットで<z>軸が描かれます。 このオプシ
     ョンは2Dシーンでは効果を持ちません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
                       zaxis       = true,
                       zaxis_type  = solid,
                       zaxis_color = blue)$

     ‘zaxis_width’, ‘zaxis_type’, ‘zaxis_color’も参照してください。

 -- グラフィックオプション: zaxis_color
     デフォルト値: ‘"black"’

     ‘zaxis_color’は<z>軸の色を指定します。 色がどのように定義されている
     か知るには‘color’を参照してください。 このオプションは2Dシーンでは
     効果を持ちません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
                       zaxis       = true,
                       zaxis_type  = solid,
                       zaxis_color = red)$

     ‘zaxis’, ‘zaxis_width’, ‘zaxis_type’も参照してください。

 -- グラフィックオプション: zaxis_type
     デフォルト値: ‘dots’

     ‘zaxis_type’は<z>軸がどのように表示されるか示します; 可能な値は
     ‘solid’と‘dots’です。 このオプションは2Dシーンでは効果を持ちません
     。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
                       zaxis       = true,
                       zaxis_type  = solid)$

     ‘zaxis’, ‘zaxis_width’, ‘zaxis_color’も参照してください。

 -- グラフィックオプション: zaxis_width
     デフォルト値: 1

     ‘zaxis_width’は<z>軸の幅です。 その値は正の数でなければいけません。
     このオプションは2Dシーンでは効果を持ちません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題なりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
                       zaxis       = true,
                       zaxis_type  = solid,
                       zaxis_width = 3)$

     ‘zaxis’, ‘zaxis_type’, ‘zaxis_color’も参照してください。

 -- グラフィックオプション: zlabel
     デフォルト値: ‘""’ (empty string)

     オプション‘zlabel’文字列は <z>軸のラベルです。 デフォルトでは、ラベ
     ルは書かれません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(zlabel = "Z variable",
                       ylabel = "Y variable",
                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
                       xlabel = "X variable" )$

     ‘xlabel’と‘ylabel’も参照してください。

 -- グラフィックオプション: zrange
     デフォルト値: ‘auto’

     もし‘zrange’が‘auto’なら、 <z>座標の範囲は自動的に計算されます。

     もしユーザーが <z>の特定の区間が欲しいなら、 ‘zrange=[-2, 3]’のよう
     にMaximaリストとして与えられなければいけません。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(yrange = [-3,3],
                       zrange = [-2,5],
                       explicit(x^2+y^2,x,-1,1,y,-1,1),
                       xrange = [-3,3])$

     ‘xrange’, ‘yrange’も参照してください。

 -- グラフィックオプション: ztics
     デフォルト値: ‘auto’

     このグラフィックオプションは、 <z>軸上にチックマークを描く方法を制
     御します。

     完全な記述に関しては、‘xtics’を参照してください。

 -- グラフィックオプション: ztics_axis
     デフォルト値: ‘false’

     もし‘ztics_secondary_axis’が‘true’なら、 チックマークとそれらのラベ
     ルは補助的な<z>軸に沿ってだけプロットされ、 もし‘false’なら、境界上
     にプロットされます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

 -- グラフィックオプション: ztics_rotate
     デフォルト値: ‘false’

     もし‘ztics_rotate’が‘true’なら、 <z>軸上のチックマークが90度回転さ
     れます。

     これはグローバルグラフィックスオプションなので、 シーン記述の位置は
     問題になりません。

48.2.4 Graphics objects
-----------------------

 -- グラフィックオブジェクト: bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>,
          ...])
     2D内に垂直バーを描画します。

     2D

     ‘bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>, ...])’ は 値<x1>, <x2>,
     ...に中心を持ち、高さ<h1>, <h2>, ...と幅<w1>, <w2>, ...を持つバーを
     描画します。

     このオブジェクトは以下のgraphic optionsに影響されます: ‘key’,
     ‘fill_color’, ‘fill_density’, ‘line_width’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                 key          = "Group A",
                 fill_color   = blue,
                 fill_density = 0.2,
                 bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
                 key          = "Group B",
                 fill_color   = red,
                 fill_density = 0.6,
                 line_width   = 4,
                 bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
                 xaxis = true);

 -- グラフィックオブジェクト: cylindrical (<radius>, <z>, <minz>,
          <maxz>, <azi>, <minazi>, <maxazi>)
     円柱座標で定義された3D関数を描画します。

     3D

     ‘cylindrical (<radius>, <z>, <minz>, <maxz>, <azi>, <minazi>,
     <maxazi>)’は <minz>から<maxz>までの値を取る<z>と <minazi>から
     <maxazi>まで値を取る方位角 <azi>を伴う 円柱座標で定義された関数
     ‘<radius>(<z>,<azi>)’ をプロットします。

     このオブジェクトは以下のグラフィックオプションに影響されます:
     ‘xu_grid’, ‘yv_grid’, ‘line_type’, ‘key’ and ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$

 -- グラフィックオブジェクト: elevation_grid
          (<mat>,<x0>,<y0>,<width>,<height>)

     3D空間に行列<mat>を描画します。 <x0>から<x0> + <width>までの横座標
     範囲と <y0>から<y0> + <height>までの縦座標範囲で、 <z>値は<mat>から
     取られます。 要素a(1,1)は点(x0,y0+height)上に射影され、 a(1,n)は
     (x0+width,y0+height)上に射影され、 a(m,1)は(x0,y0)上に射影され、
     a(m,n)は(x0+width,y0)上に射影されます。

     このオブジェクトは以下のグラフィックオプションに影響されます:
     ‘line_type’, ‘line_width’, ‘key’, ‘enhanced3d’, ‘color’。

     Maximaの古いバージョンでは、‘elevation_grid’は‘mesh’と呼ばれました
     。 ‘mesh’も参照してください。

     例:

          (%i1) load("draw")$
          (%i2) m: apply(
                      matrix,
                      makelist(makelist(random(10.0),k,1,30),i,1,20)) $
          (%i3) draw3d(
                   color = blue,
                   elevation_grid(m,0,0,3,2),
                   xlabel = "x",
                   ylabel = "y",
                   surface_hide = true);

 -- グラフィックオブジェクト: ellipse (<xc>, <yc>, <a>, <b>, <ang1>,
          <ang2>)
     2D内で楕円や円を描画します。

     2D

     ‘ellipse (<xc>, <yc>, <a>, <b>, <ang1>, <ang2>)’ は ‘[<xc>, <yc>]’を
     中心とし、水平と垂直半軸にそれぞれ<a>と<b>を持ち、角度<ang1>から始
     まり、角度<ang2>に等しい振幅を持つ 楕円をプロットします。

     このオブジェクトは以下のgraphic optionsに影響されます: ‘nticks’,
     ‘transparent’, ‘fill_color’, ‘border’, ‘line_width’, ‘line_type’,
     ‘key’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(transparent = false,
                       fill_color  = red,
                       color       = gray30,
                       transparent = false,
                       line_width  = 5,
                       ellipse(0,6,3,2,270,-270),
                       /* center (x,y), a, b, start & end in degrees */
                       transparent = true,
                       color       = blue,
                       line_width  = 3,
                       ellipse(2.5,6,2,3,30,-90),
                       xrange      = [-3,6],
                       yrange      = [2,9] )$

 -- グラフィックオブジェクト: errors ([<x1>, <x2>, ...], [<y1>, <y2>,
          ...])
     オプション‘error_type’の値に依存して、 水平、垂直もしくは両方のエラ
     ーバーと共に点を描きます。

     2D

     もし‘error_type = x’なら、 ‘errors’の引数は must be of the form 形
     式‘[x, y, xdelta]’か‘[x, y, xlow, xhigh]’でなければいけません。 も
     し‘error_type = y’なら、 引数は形式‘[x, y, ydelta]’か‘[x, y, ylow,
     yhigh]’でなければいけません。 もし‘error_type = xy’か‘error_type =
     boxes’なら、 ‘errors’の引数は 形式‘[x, y, xdelta, ydelta]’か‘[x, y,
     xlow, xhigh, ylow, yhigh]’でなければいけません。

     ‘error_type’も参照してください。

     このオブジェクトは以下のグラフィックオブジェクトによって影響されま
     す: ‘error_type’, ‘points_joined’, ‘line_width’, ‘key’,
     ‘line_type’, ‘color’, ‘fill_density’, ‘xaxis_secondary’,
     ‘yaxis_secondary’.

     オプション‘fill_density’は、‘error_type=boxes’の時だけ有効です。

     例:

     水平エラーバー。

          (%i1) load("draw")$
          (%i2) draw2d(
                  error_type = y,
                  errors([[1,2,1], [3,5,3], [10,3,1], [17,6,2]]))$

     垂直および水平エラーバー。

          (%i1) load("draw")$
          (%i2) draw2d(
                  error_type = xy,
                  points_joined = true,
                  color = blue,
                  errors([[1,2,1,2], [3,5,2,1], [10,3,1,1], [17,6,1/2,2]]));

 -- グラフィックオブジェクト: explicit (<fcn>,<var>,<minval>,<maxval>)
 -- グラフィックオブジェクト: explicit
          (<fcn>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)
     2Dおよび3Dにて陽関数を描画します。

     2D

     ‘explicit(<fcn>,<var>,<minval>,<maxval>)’は <minval>から<maxval>ま
     で値を取る変数<var>を伴う 陽関数<fcn>をプロットします。

     このオブジェクトは以下のgraphic optionsに影響されます: ‘nticks’,
     ‘adapt_depth’, ‘line_width’, ‘line_type’, ‘key’, ‘filled_func’,
     ‘fill_color’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(line_width = 3,
                       color      = blue,
                       explicit(x^2,x,-3,3) )$
          (%i3) draw2d(fill_color  = brown,
                       filled_func = true,
                       explicit(x^2,x,-3,3) )$

     3D

     ‘explicit(<fcn>, <var1>, <minval1>, <maxval1>, <var2>, <minval2>,
     <maxval2>)’は <minval1>から <maxval1>まで値を取る変数 <var1>と
     <minval2>から <maxval2>まで値を取る変数 <var2>を伴う 陽関数 <fcn>を
     プロットします。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘xu_grid’, ‘yv_grid’, ‘line_type’, ‘line_width’, ‘key’,
     ‘enhanced3d’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(key   = "Gauss",
                       color = "#a02c00",
                       explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
                       yv_grid     = 10,
                       color = blue,
                       key   = "Plane",
                       explicit(x+y,x,-5,5,y,-5,5),
                       surface_hide = true)$

     埋められた関数に関しては‘filled_func’も参照してください。

 -- グラフィックオブジェクト: image (<im>,<x0>,<y0>,<width>,<height>)
     2Dにてイメージを描写します。

     2D

     ‘image (<im>,<x0>,<y0>,<width>,<height>)’は 実平面上の 頂点
     ‘(<x0>,<y0>)’から‘(x0+<width>,y0+<height>)’までの長方形領域に イメ
     ージ<im>をプロットします。 引数<im>は実数の行列、長さ3のベクトルの
     行列もしくは<picture>オブジェクトでなければいけません。

     もし<im>が実数の行列か<levels picture>オブジェクトなら、 ピクセル値
     は -36から+36に広がる成分を持つ長さ3のベクトルである グラフィックオ
     プション‘palette’に従って解釈されます; それぞれの値はレベルをそれぞ
     れ赤、緑、青色にマップする公式のインデックスです。
           0: 0               1: 0.5           2: 1
           3: x               4: x^2           5: x^3
           6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
           9: sin(90x)       10: cos(90x)     11: |x-0.5|
          12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
          15: sin(360x)      16: cos(360x)    17: |sin(360x)|
          18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
          21: 3x             22: 3x-1         23: 3x-2
          24: |3x-1|         25: |3x-2|       26: (3x-1)/2
          27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
          30: x/0.32-0.78125                  31: 2*x-0.84
          32: 4x;1;-2x+1.84;x/0.08-11.5
          33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
          36: 2*x - 1
     負の数は負の色成分を意味します。

     ‘palette = gray’と‘palette = color’は それぞれ、 ‘palette =
     [3,3,3]’と‘palette = [7,5,15]’へのショートカットです。

     もし<im>が長さ3のベクトルの行列か<rgb picture>オブジェクトなら、 そ
     れらは赤、緑、青の色成分として解釈されます。

     例:

     もし<im>が実数の行列なら、ピクセル値は グラフィックオプション
     ‘palette’に従って解釈されます。
          (%i1) load("draw")$
          (%i2) im: apply(
                     'matrix,
                      makelist(makelist(random(200),i,1,30),i,1,30))$
          (%i3) /* palette = color, default */
                draw2d(image(im,0,0,30,30))$
          (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
          (%i5) draw2d(palette = [15,20,-4],
                       colorbox=false,
                       image(im,0,0,30,30))$

     ‘colorbox’も参照してください。

     もし<im>が長さ3のベクトルの行列なら、 それらは赤、緑、青の色成分と
     して解釈されます。
          (%i1) load("draw")$
          (%i2) im: apply(
                      'matrix,
                       makelist(
                         makelist([random(300),
                                   random(300),
                                   random(300)],i,1,30),i,1,30))$
          (%i3) draw2d(image(im,0,0,30,30))$

     パッケージ‘draw’は自動的にパッケージ‘picture’をロードします。 この
     例では、レベルピクチャオブジェクトは手動で組み立てられ、描画されま
     す。
          (%i1) load("draw")$
          (%i2) im: make_level_picture([45,87,2,134,204,16],3,2);
          (%o2)       picture(level, 3, 2, {Array:  #(45 87 2 134 204 16)})
          (%i3) /* default color palette */
                draw2d(image(im,0,0,30,30))$
          (%i4) /* gray palette */
                draw2d(palette = gray,
                       image(im,0,0,30,30))$

     xpmファイルが読み込まれ、描写されます。
          (%i1) load("draw")$
          (%i2) im: read_xpm("myfile.xpm")$
          (%i3) draw2d(image(im,0,0,10,7))$

     ‘make_level_picture’, ‘make_rgb_picture’, ‘read_xpm’も参照してくだ
     さい。

     <http://www.telefonica.net/web2/biomates/maxima/gpdraw/image>
     には更に丹念な例があります。

 -- グラフィックオブジェクト: implicit
          (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)
 -- グラフィックオブジェクト: implicit
          (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>,<z>,<zmin>,<zmax>)
     2Dおよび3Dにて陰関数を描画します。

     2D

     ‘implicit(<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)’は <xmin>から
     <xmax>までの値を取る変数<x>と <ymin>から<ymax>までの値を取る変数
     <y>を伴う <fcn>で定義された陰関数をプロットします。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘ip_grid’, ‘ip_grid_in’, ‘line_width’, ‘line_type’, ‘key’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(terminal  = eps,
                       grid      = true,
                       line_type = solid,
                       key       = "y^2=x^3-2*x+1",
                       implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
                       line_type = dots,
                       key       = "x^3+y^3 = 3*x*y^2-x-1",
                       implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4),
                       title     = "Two implicit functions" )$

     3D

     ‘implicit (<fcn>,<x>,<xmin>,<xmax>, <y>,<ymin>,<ymax>,
     <z>,<zmin>,<zmax>)’は <xmin>から<xmax>までの値を取る変数<x>と
     <ymin>から<ymax>までの値を取る変数<y>と <zmin>から<zmax>までの値を
     取る変数<z>を伴う <fcn>で定義された陰表面をプロットします。 このオ
     ブジェクトはマーチングキューブアルゴリズムを実装します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘x_voxel’, ‘y_voxel’, ‘z_voxel’, ‘line_width’, ‘line_type’, ‘key’ ,
     ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(
                  color=blue,
                  implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
                           x,-1,1,y,-1.2,2.3,z,-1,1),
                  surface_hide=true);

 -- グラフィックオブジェクト: label ([<string>,<x>,<y>],...)
 -- グラフィックオブジェクト: label ([<string>,<x>,<y>,<z>],...)
     2Dと3D内でラベルを書きます。

     色付けられたラベルはGnuplot 4.3でだけ機能します。 これはパッケージ
     ‘draw’に関して既知のバグです。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘label_alignment’, ‘label_orientation’, ‘color’.

     2D

     ‘label([<string>,<x>,<y>])’は 点‘[<x>,<y>]’に<string>を書きます。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(yrange = [0.1,1.4],
                       color = "red",
                       label(["Label in red",0,0.3]),
                       color = "#0000ff",
                       label(["Label in blue",0,0.6]),
                       color = "light-blue",
                       label(["Label in light-blue",0,0.9],
                             ["Another light-blue",0,1.2])  )$

     3D

     ‘label([<string>,<x>,<y>,<z>])’は、 点‘[<x>,<y>,<z>]’に<string>を書
     きます。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
                       color = red,
                       label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
                       color = blue,
                       label(["DOWN 1",2,0,-3]) )$

 -- グラフィックオブジェクト: mesh (<mat>,<x0>,<y0>,<width>,<height>)
     3D空間内に行列<mat>を描画します。 <z>値は<mat>から取られます。 横座
     標範囲は<x0>から<x0> + <width>までを取り、 座標は<y0>から<y0> +
     <height>までを取ります。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘line_type’, ‘line_width’, ‘key’, ‘enhanced3d’, ‘color’.

     このグラフィックオブジェクトは ‘true’と‘false’以外の値の
     ‘enhanced3d’値を無視します。

     例:

          (%i1) load("draw")$
          (%i2) m: apply(
                      matrix,
                      makelist(makelist(random(10.0),k,1,30),i,1,20)) $
          (%i3) draw3d(
                   color = blue,
                   mesh(m,0,0,3,2),
                   xlabel = "x",
                   ylabel = "y",
                   surface_hide = true);

 -- グラフィックオブジェクト: parametric
          (<xfun>,<yfun>,<par>,<parmin>,<parmax>)
 -- グラフィックオブジェクト: parametric
          (<xfun>,<yfun>,<zfun>,<par>,<parmin>,<parmax>)
     2Dおよび3Dにてパラメトリック関数を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘nticks’, ‘line_width’, ‘line_type’, ‘key’, ‘color’ and
     ‘enhanced3d’.

     2D

     コマンド ‘parametric(<xfun>, <yfun>, <par>, <parmin>, <parmax>)’は
     <parmin>から<parmax>まで値を取るパラメータ<par>を伴う パラメトリッ
     ク関数‘[<xfun>, <yfun>]’をプロットします。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(exp(x),x,-1,3),
                       color = red,
                       key   = "This is the parametric one!!",
                       parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$

     3D

     ‘parametric (<xfun>, <yfun>, <zfun>, <par>, <parmin>, <parmax>)’は
     <parmin>から<parmax>まで値を取るパラメータ<par>を伴う パラメトリッ
     ク曲線 ‘[<xfun>, <yfun>, <zfun>]’をプロットします。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
                       color = royalblue,
                       parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
                       color      = turquoise,
                       line_width = 2,
                       parametric(t^2,sin(t),2+t,t,0,2),
                       surface_hide = true,
                       title = "Surface & curves" )$

 -- グラフィックオブジェクト: parametric_surface (<xfun>, <yfun>,
          <zfun>, <par1>, <par1min>, <par1max>, <par2>, <par2min>,
          <par2max>)
     3Dにおいてパラメトリックな表面を描画します。

     3D

     コマンド ‘parametric_surface (<xfun>, <yfun>, <zfun>, <par1>,
     <par1min>, <par1max>, <par2>, <par2min>, <par2max>)’は <par1min>か
     ら <par1max>までを値として取るパラメータ <par1>と <par2min>から
     <par2max>までを値として取るパラメータ <par2>を伴う パラメトリックな
     表面 ‘[<xfun>, <yfun>, <zfun>]’を プロットします。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘xu_grid’, ‘yv_grid’, ‘line_type’, ‘line_width’, ‘key’,
     ‘enhanced3d’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(title          = "Sea shell",
                       xu_grid        = 100,
                       yv_grid        = 25,
                       view           = [100,20],
                       surface_hide   = true,
                       parametric_surface(0.5*u*cos(u)*(cos(v)+1),
                                     0.5*u*sin(u)*(cos(v)+1),
                                     u*sin(v) - ((u+3)/8*%pi)^2 - 20,
                                     u, 0, 13*%pi, v, -%pi, %pi) )$

 -- グラフィックオブジェクト: points ([[<x1>,<y1>], [<x2>,<y2>],...])
 -- グラフィックオブジェクト: points ([<x1>,<x2>,...], [<y1>,<y2>,...])
 -- グラフィックオブジェクト: points ([<y1>,<y2>,...])
 -- グラフィックオブジェクト: points ([[<x1>,<y1>,<z1>],
          [<x2>,<y2>,<z2>],...])
 -- グラフィックオブジェクト: points ([<x1>,<x2>,...], [<y1>,<y2>,...],
          [<z1>,<z2>,...])
 -- グラフィックオブジェクト: points (<matrix>)
 -- グラフィックオブジェクト: points (<1d_y_array>)
 -- グラフィックオブジェクト: points (<1d_x_array>, <1d_y_array>)
 -- グラフィックオブジェクト: points (<1d_x_array>, <1d_y_array>,
          <1d_z_array>)
 -- グラフィックオブジェクト: points (<2d_xy_array>)
 -- グラフィックオブジェクト: points (<2d_xyz_array>)

     2Dや3Dの中で点を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘point_size’, ‘point_type’, ‘points_joined’, ‘line_width’, ‘key’,
     ‘line_type’, ‘color’.  3Dモードでは、‘enhanced3d’の影響も受けます。

     2D

     ‘points ([[<x1>,<y1>], [<x2>,<y2>],...])’や ‘points
     ([<x1>,<x2>,...], [<y1>,<y2>,...])’は 点‘[x1,y1]’, ‘[x2,y2]’,などを
     プロットします。 もし横座標が与えられないなら、 それらは連続する正
     の整数に設定されます。 だから、 ‘points ([<y1>,<y2>,...])’は、点
     ‘[1,<y1>]’, ‘[2,<y2>]’などを描画します。 もし<matrix>が2列または2行
     行列なら、 ‘points (<matrix>)’は関連した点を描画します。 もし
     <matrix>が1列または1行行列なら、 横座標が自動的に割り当てられます。

     もし<1d_y_array>が数の1Dのlisp配列なら、 ‘points (<1d_y_array>)’は
     横座標を連続する正の整数に設定してそれらをプロットします。 ‘points
     (<1d_x_array>, <1d_y_array>)’は 引数として渡された2つの配列から取ら
     れた座標を持つ点をプロットします。 もし<2d_xy_array>が2列の2D配列な
     ら、 ‘points (<2d_xy_array>)’は平面上に対応する点をプロットします。

     例:

     ‘points’への2種類の引数、ペアのリストと分離した座標の2つのリスト。
          (%i1) load("draw")$
          (%i2) draw2d(
                  key = "Small points",
                  points(makelist([random(20),random(50)],k,1,10)),
                  point_type    = circle,
                  point_size    = 3,
                  points_joined = true,
                  key           = "Great points",
                  points(makelist(k,k,1,20),makelist(random(30),k,1,20)),
                  point_type    = filled_down_triangle,
                  key           = "Automatic abscissas",
                  color         = red,
                  points([2,12,8]))$

     衝撃を描画。
          (%i1) load("draw")$
          (%i2) draw2d(
                  points_joined = impulses,
                  line_width    = 2,
                  color         = red,
                  points(makelist([random(20),random(50)],k,1,10)))$

     座標の配列。
          (%i1) load("draw")$
          (%i2) a: make_array (flonum, 100) $
          (%i3) for i:0 thru 99 do a[i]: random(1.0) $
          (%i4) draw2d(points(a)) $

     分離した座標の2つの配列。
          (%i1) load("draw")$
          (%i2) x: make_array (flonum, 100) $
          (%i3) y: make_array (fixnum, 100) $
          (%i4) for i:0 thru 99 do (
                  x[i]: float(i/100),
                  y[i]: random(10) ) $
          (%i5) draw2d(points(x, y)) $

     2列2D配列。
          (%i1) load("draw")$
          (%i2) xy: make_array(flonum, 100, 2) $
          (%i3) for i:0 thru 99 do (
                  xy[i, 0]: float(i/100),
                  xy[i, 1]: random(10) ) $
          (%i4) draw2d(points(xy)) $

     関数‘read_array’で埋められた配列の描画。
          (%i1) load("draw")$
          (%i2) a: make_array(flonum,100) $
          (%i3) read_array (file_search ("pidigits.data"), a) $
          (%i4) draw2d(points(a)) $

     3D

     ‘points([[<x1>, <y1>, <z1>], [<x2>, <y2>, <z2>], ...])’ や
     ‘points([<x1>, <x2>, ...], [<y1>, <y2>, ...], [<z1>, <z2>, ...])’は
     点‘[<x1>, <y1>, <z1>]’, ‘[<x2>, <y2>, <z2>]’などをプロットします。
     もし <matrix>が3列または3行行列なら、 ‘points (<matrix>)’は関連した
     点を描画します。

     引数がlisp配列の時、 ‘points (<1d_x_array>, <1d_y_array>,
     <1d_z_array>)’は 3つの1D配列から座標を取ります。 もし
     <2d_xyz_array>が3列または3行を持つ2D配列なら、 ‘points
     (<2d_xyz_array>)’は対応する点をプロットします。

     例:

     3次元のサンプル１つ、
          (%i1) load("draw")$
          (%i2) load ("numericalio")$
          (%i3) s2 : read_matrix (file_search ("wind.data"))$
          (%i4) draw3d(title = "Daily average wind speeds",
                       point_size = 2,
                       points(args(submatrix (s2, 4, 5))) )$

     3次元のサンプル２つ、
          (%i1) load("draw")$
          (%i2) load ("numericalio")$
          (%i3) s2 : read_matrix (file_search ("wind.data"))$
          (%i4) draw3d(
                   title = "Daily average wind speeds. Two data sets",
                   point_size = 2,
                   key        = "Sample from stations 1, 2 and 3",
                   points(args(submatrix (s2, 4, 5))),
                   point_type = 4,
                   key        = "Sample from stations 1, 4 and 5",
                   points(args(submatrix (s2, 2, 3))) )$

     1次元配列、
          (%i1) load("draw")$
          (%i2) x: make_array (fixnum, 10) $
          (%i3) y: make_array (fixnum, 10) $
          (%i4) z: make_array (fixnum, 10) $
          (%i5) for i:0 thru 9 do (
                  x[i]: random(10),
                  y[i]: random(10),
                  z[i]: random(10) ) $
          (%i6) draw3d(points(x,y,z)) $

     2次元色付け配列、
          (%i1) load("draw")$
          (%i2) xyz: make_array(fixnum, 10, 3) $
          (%i3) for i:0 thru 9 do (
                  xyz[i, 0]: random(10),
                  xyz[i, 1]: random(10),
                  xyz[i, 2]: random(10) ) $
          (%i4) draw3d(
                   enhanced3d = true,
                   points_joined = true,
                   points(xyz)) $

     ユーザーが陽に指定した色数。
          (%i1) load("draw")$
          (%i2) pts: makelist([t,t^2,cos(t)], t, 0, 15)$
          (%i3) col_num: makelist(k, k, 1, length(pts))$
          (%i4) draw3d(
                  enhanced3d = ['part(col_num,k),k],
                  point_size = 3,
                  point_type = filled_circle,
                  points(pts))$

 -- グラフィックオブジェクト: polar (<radius>,<ang>,<minang>,<maxang>)
     極座標で定義された2D関数を描画します。

     2D

     ‘polar (<radius>,<ang>,<minang>,<maxang>)’は <minang>から<maxang>ま
     で値を取る変数<ang>を伴う 極座標で定義された関数 ‘<radius>(<ang>)’
     をプロットします。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘nticks’, ‘line_width’, ‘line_type’, ‘key’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(user_preamble = "set grid polar",
                       nticks        = 200,
                       xrange        = [-5,5],
                       yrange        = [-5,5],
                       color         = blue,
                       line_width    = 3,
                       title         = "Hyperbolic Spiral",
                       polar(10/theta,theta,1,10*%pi) )$

 -- グラフィックオブジェクト: polygon ([[<x1>, <y1>], [<x2>, <y2>],
          ...])
 -- グラフィックオブジェクト: polygon ([<x1>, <x2>, ...], [<y1>, <y2>,
          ...])
     2D内でポリゴンを描画します。

     2D

     コマンド ‘polygon ([[<x1>, <y1>], [<x2>, <y2>],...])’や ‘polygon
     ([<x1>, <x2>,...], [<y1>, <y2>,...])’は 頂点‘[<x1>, <y1>]’, ‘[<x2>,
     <y2>]’などを持つポリゴンを 平面上にプロットします。

     このオブジェクトは以下の グラフィックオプションの影響を受けます:
     ‘transparent’, ‘fill_color’, ‘border’, ‘line_width’, ‘key’,
     ‘line_type’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(color      = "#e245f0",
                       line_width = 8,
                       polygon([[3,2],[7,2],[5,5]]),
                       border      = false,
                       fill_color  = yellow,
                       polygon([[5,2],[9,2],[7,5]]) )$

 -- グラフィックオブジェクト: quadrilateral (<point_1>, <point_2>,
          <point_3>, <point_4>)
     四辺形を描画します。

     2D

     ‘quadrilateral ([<x1>, <y1>], [<x2>, <y2>], [<x3>, <y3>], [<x4>,
     <y4>])’は 頂点‘[<x1>, <y1>]’, ‘[<x2>, <y2>]’, ‘[<x3>, <y3>]’,
     ‘[<x4>, <y4>]’を持つ四辺形を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘transparent’, ‘fill_color’, ‘border’, ‘line_width’, ‘key’,
     ‘xaxis_secondary’, ‘yaxis_secondary’, ‘line_type’, ‘transform’,
     ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                  quadrilateral([1,1],[2,2],[3,-1],[2,-2]))$

     3D

     ‘quadrilateral([<x1>, <y1>, <z1>], [<x2>, <y2>, <z2>], [<x3>, <y3>,
     <z3>], [<x4>, <y4>, <z4>])’は 頂点‘[<x1>, <y1>, <z1>]’, ‘[<x2>,
     <y2>, <z2>]’, ‘[<x3>, <y3>, <z3>]’, ‘[<x4>, <y4>, <z4>]’を持つ 四辺
     形を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘line_type’, ‘line_width’, ‘color’, ‘key’, ‘enhanced3d’,
     ‘transform’.

 -- グラフィックオブジェクト: rectangle ([<x1>,<y1>], [<x2>,<y2>])
     2D内で長方形を描画します。

     2D

     ‘rectangle ([<x1>,<y1>], [<x2>,<y2>])’は、 対角頂点 ‘[<x1>,<y1>]’と
     ‘[<x2>,<y2>]’ を持つ長方形を描画します。

     このオブジェクトは以下の グラフィックオプションの影響を受けます:
     ‘transparent’, ‘fill_color’, ‘border’, ‘line_width’, ‘key’,
     ‘line_type’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(fill_color  = red,
                       line_width  = 6,
                       line_type   = dots,
                       transparent = false,
                       fill_color  = blue,
                       rectangle([-2,-2],[8,-1]), /* opposite vertices */
                       transparent = true,
                       line_type   = solid,
                       line_width  = 1,
                       rectangle([9,4],[2,-1.5]),
                       xrange      = [-3,10],
                       yrange      = [-3,4.5] )$

 -- グラフィックオブジェクト: region
          (<expr>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)
     平面上に不等式で定義された領域を描画します。

     2D <expr>は不等式とブーリアン演算子‘and’, ‘or’, ‘not’で形成された式
     です。 領域は [<minval1>, <maxval1>]と[<minval2>, <maxval2>]で 定義
     された長方形で区切られています。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘fill_color’, ‘key’, ‘x_voxel’, ‘y_voxel’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                  x_voxel = 30,
                  y_voxel = 30,
                  region(x^2+y^2<1 and x^2+y^2 > 1/2,
                         x, -1.5, 1.5, y, -1.5, 1.5));

 -- グラフィックオブジェクト: spherical (<radius>, <azi>, <minazi>,
          <maxazi>, <zen>, <minzen>, <maxzen>)
     球座標で定義された3D関数を描画します。

     3D

     ‘spherical(<radius>, <azi>, <minazi>, <maxazi>, <zen>, <minzen>,
     <maxzen>)’は <minazi>から <maxazi>まで値を取る 方位角 <azi>と
     <minzen>から <maxzen>まで値を取る 天頂角 <zen>を伴う 球座標で定義さ
     れた関数 ‘<radius>(<azi>, <zen>)’ を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘xu_grid’, ‘yv_grid’, ‘line_type’, ‘key’, ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$

 -- グラフィックオブジェクト: triangle (<point_1>, <point_2>, <point_3>)
     三角形を描画します。

     2D

     ‘triangle ([<x1>,<y1>], [<x2>,<y2>], [<x3>,<y3>])’は、頂点
     ‘[<x1>,<y1>]’, ‘[<x2>,<y2>]’, ‘[<x3>,<y3>]’を持つ三角形を描画します
     。

     このオブジェクトは、 以下のグラフィックオプションに影響されます:
     ‘transparent’, ‘fill_color’, ‘border’, ‘line_width’, ‘key’,
     ‘xaxis_secondary’, ‘yaxis_secondary’, ‘line_type’, ‘transform’,
     ‘color’.

     例:

          (%i1) load("draw")$
          (%i2) draw2d(
                  triangle([1,1],[2,2],[3,-1]))$

     3D

     ‘triangle ([<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>], [<x3>,<y3>,<z3>])’は
     頂点‘[<x1>,<y1>,<z1>]’, ‘[<x2>,<y2>,<z2>]’, ‘[<x3>,<y3>,<z3>]’を持
     つ三角形を描画します。

     このオブジェクトは以下のグラフィックオプションに影響されます:
     ‘line_type’, ‘line_width’, ‘color’, ‘key’, ‘enhanced3d’,
     ‘transform’.

 -- グラフィックオブジェクト: tube
          (<xfun>,<yfun>,<zfun>,<rfun>,<p>,<pmin>,<pmax>)
     3Dにおいて 径が変化する管を描画します。

     3D

     ‘[<xfun>,<yfun>,<zfun>]’は <pmin>から<pmax>まで値を取るパラメータ
     <p>を伴う パラメトリックな曲線です。 パラメトリックな曲線上に中心を
     持ち、曲線と垂直な半径<rfun>の円が置かれます。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘xu_grid’, ‘yv_grid’, ‘line_type’, ‘line_width’, ‘key’,
     ‘enhanced3d’, ‘color’, ‘tube_extremes’.

     例:

          (%i1) load("draw")$
          (%i2) draw3d(
                  enhanced3d = true,
                  xu_grid = 50,
                  tube(cos(a), a, 0, cos(a/10)^2,
                       a, 0, 4*%pi) )$

 -- グラフィックオブジェクト: vector ([<x>,<y>], [<dx>,<dy>])
 -- グラフィックオブジェクト: vector ([<x>,<y>,<z>], [<dx>,<dy>,<dz>])
     2Dおよび3D内でベクトルを描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘head_both’, ‘head_length’, ‘head_angle’, ‘head_type’,
     ‘line_width’, ‘line_type’, ‘key’, ‘color’.

     2D

     ‘vector([<x>,<y>], [<dx>,<dy>])’は ‘[<x>,<y>]’を原点とするベクトル
     ‘[<dx>,<dy>]’を プロットします。

     例:

          (%i1) load("draw")$
          (%i2) draw2d(xrange      = [0,12],
                       yrange      = [0,10],
                       head_length = 1,
                       vector([0,1],[5,5]), /* default type */
                       head_type = 'empty,
                       vector([3,1],[5,5]),
                       head_both = true,
                       head_type = 'nofilled,
                       line_type = dots,
                       vector([6,1],[5,5]))$

     3D

     ‘vector([<x>,<y>,<z>], [<dx>,<dy>,<dz>])’は ‘[<x>,<y>,<z>]’を原点と
     する ベクトル‘[<dx>,<dy>,<dz>]’をプロットします。

     例:

          (%i1) load("draw")$
          (%i2) draw3d(color = cyan,
                       vector([0,0,0],[1,1,1]/sqrt(3)),
                       vector([0,0,0],[1,-1,0]/sqrt(2)),
                       vector([0,0,0],[1,1,-2]/sqrt(6)) )$


File: maxima.info,  Node: Functions and Variables for pictures,  Next: Functions and Variables for worldmap,  Prev: Functions and Variables for draw,  Up: draw

48.3 Functions and Variables for pictures
=========================================

 -- 関数: get_pixel (<pic>,<x>,<y>)
     ピクチャからピクセルを返します。 座標<x>と<y>は 0からそれぞれ
     ‘width-1’と‘height-1’までの範囲を取ります。

 -- 関数: make_level_picture (<data>)
 -- 関数: make_level_picture (<data>,<width>,<height>)
     レベル<picture>オブジェクトを返します。 ‘make_level_picture
     (<data>)’は 行列<data>から <picture>オブジェクトを作ります。
     ‘make_level_picture (<data>,<width>,<height>)’は 数のリストからオブ
     ジェクトを作ります; この場合、<width>と<height>両方を与えなければい
     けません。

     返された<picture>オブジェクトは以下の4つの部分を含みます:

       1. シンボル ‘level’
       2. イメージの幅
       3. イメージの高さ
       4. 0から255までの範囲のピクセルデータを持つ整数配列 引数<data>は
          0から255までの数のみを含まなければいけません; 負の数は0に置き
          換えられ、255よりも大きな数は255に設定されます。

     例:

     行列からのレベルピクチャ。
          (%i1) load("draw")$
          (%i2) make_level_picture(matrix([3,2,5],[7,-9,3000]));
          (%o2)         picture(level, 3, 2, {Array:  #(3 2 5 7 0 255)})

     数値リストからのレベルピクチャ
          (%i1) load("draw")$
          (%i2) make_level_picture([-2,0,54,%pi],2,2);
          (%o2)            picture(level, 2, 2, {Array:  #(0 0 54 3)})

 -- 関数: make_rgb_picture (<redlevel>,<greenlevel>,<bluelevel>)
     rgb色付けされた<picture>オブジェクトを返します。 3つ引数すべては赤
     、緑、青のレベルを持つレベルピクチャでなければいけません;

     返された<picture>オブジェクトは以下の4つの部分を含みます:

       1. シンボル ‘rgb’
       2. イメージの幅
       3. イメージの高さ
       4. 0から255までの範囲のピクセルデータを持つ長さ<3*width*height>の
          整数配列。 それぞれのピクセルは。3つの連続する数 (赤、緑、青
          )で表現されます。

     例:

          (%i1) load("draw")$
          (%i2) red: make_level_picture(matrix([3,2],[7,260]));
          (%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
          (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
          (%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
          (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
          (%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
          (%i5) make_rgb_picture(red,green,blue);
          (%o5) picture(rgb, 2, 2,
                        {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})

 -- 関数: negative_picture (<pic>)
     (<level>または<rgb>)ピクチャの反転を返します。

 -- 関数: picture_equalp (<x>,<y>)
     等しいピクチャの場合‘true’を、そうでなければ‘false’ を返します。

 -- 関数: picturep (<x>)
     もし引数が適正なイメージなら ‘true’を、そうでなければ‘false’を返し
     ます。

 -- 関数: read_xpm (<xpm_file>)
     xpm形式のファイルを読み、ピクチャオブジェクトを返します。

 -- 関数: rgb2level (<pic>)
     <rgb>ピクチャを 赤、緑、青チャンネルを平均することで<level>の１つに
     変換します。

 -- 関数: take_channel (<im>,<color>)
     もし引数<color>が‘red’, ‘green’または‘blue’なら、 関数
     ‘take_channel’は ピクチャ<im>の対応する色チャンネルを返します。 例:

          (%i1) load("draw")$
          (%i2) red: make_level_picture(matrix([3,2],[7,260]));
          (%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
          (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
          (%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
          (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
          (%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
          (%i5) make_rgb_picture(red,green,blue);
          (%o5) picture(rgb, 2, 2,
                        {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
          (%i6) take_channel(%,'green);  /* simple quote!!! */
          (%o6)           picture(level, 2, 2, {Array:  #(54 23 73 0)})


File: maxima.info,  Node: Functions and Variables for worldmap,  Prev: Functions and Variables for pictures,  Up: draw

48.4 Functions and Variables for worldmap
=========================================

このパッケージは自動的にパッケージ‘draw’をロードします。

48.4.1 Variable and Functions
-----------------------------

 -- グローバル変数: boundaries_array
     デフォルト値: ‘false’

     ‘boundaries_array’は グラフィックオプション‘geomap’が境界座標を探す
     ところです。

     Each component of ‘boundaries_array’のそれぞれの成分は 浮動小数点量
     の配列であり、 多角形のセグメントかマップ境界の座標です。

     ‘geomap’も参照してください。

 -- 関数: numbered_boundaries (<nlist>)
     その数(‘boundaries_array’座標)でラベルされた 多角形セグメント(境界
     )のリストを描画します。 これは新しい地理的なものを作る時に非常に役
     立ちます。

     例:

     ‘boundaries_array’内の成分数で境界をラベルされたヨーロッパの地図
          (%i1) load("worldmap")$
          (%i2) european_borders:
                     region_boundaries(-31.81,74.92,49.84,32.06)$
          (%i3) numbered_boundaries(european_borders)$

 -- 関数: make_poly_continent (<continent_name>)
 -- 関数: make_poly_continent (<country_list>)
     色付けられた大陸や国のリストを描画するのに必要なポリゴンを作ります
     。

     例:

          (%i1) load("worldmap")$
          (%i2) /* A continent */
                make_poly_continent(Africa)$
          (%i3) apply(draw2d, %)$
          (%i4) /* A list of countries */
                make_poly_continent([Germany,Denmark,Poland])$
          (%i5) apply(draw2d, %)$

 -- 関数: make_poly_country (<country_name>)
     色付けられた国を描画するのに必要なポリゴンを作ります。 もし島が存在
     するなら、1つの国はただ1つ以上のポリゴンで定義され得ます。

     例:

          (%i1) load("worldmap")$
          (%i2) make_poly_country(India)$
          (%i3) apply(draw2d, %)$

 -- 関数: make_polygon (<nlist>)
     境界添字から‘polygon’オブジェクトを返します。 引数<nlist>は
     ‘boundaries_array’の成分のリストです。

     例:

     ブータンは境界番号171, 173, 1143で定義されます。 だから、
     ‘make_polygon([171,173,1143])’は appends arrays of coordinates 座標
     ‘boundaries_array[171]’, ‘boundaries_array[173]’,
     ‘boundaries_array[1143]’の配列を付加し、 ‘draw’でプロットされるのに
     適した‘polygon’オブジェクトを返します． エラーメッセージを避けるに
     は、 任意の連続する配列が端で共通の2つの座標を持つという意味で配列
     は互換性がなければいけません。 この例では、
     ‘boundaries_array[171]’の最初の2つの成分は ‘boundaries_array[173]’の
     最後の2つの座標と等しく、 ‘boundaries_array[173]’の最初の2つは
     ‘boundaries_array[1143]’の最初の2つに等しいです; 結論として、境界番
     号171, 173, 1143は (この順で)互換性があり、色付けられたポリゴンは描
     画できます。
          (%i1) load("worldmap")$
          (%i2) Bhutan;
          (%o2)                        [[171, 173, 1143]]
          (%i3) boundaries_array[171];
          (%o3) {Array:
                 #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
                   88.917877 27.321039)}
          (%i4) boundaries_array[173];
          (%o4) {Array:
                 #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
                   91.631348 27.536381 91.765533 27.45694 91.775253 27.4161
                   92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
                   92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
                   92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
                   91.916924 26.85416 91.8358 26.863331 91.712479 26.799999
                   91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
                   91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
                   90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
                   89.98996 26.73583 89.841919 26.70138 89.618301 26.72694
                   89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
                   89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
                   88.867737 27.080549 88.843307 27.108601 88.750549
                   27.14727)}
          (%i5) boundaries_array[1143];
          (%o5) {Array:
                 #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805
                   91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
                   91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
                   90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
                   89.83165 28.24888 89.58609 28.139999 89.35997 27.87166
                   89.225517 27.795 89.125793 27.56749 88.971077 27.47361
                   88.917877 27.321039)}
          (%i6) Bhutan_polygon: make_polygon([171,173,1143])$
          (%i7) draw2d(Bhutan_polygon)$

 -- 関数: region_boundaries (<x1>,<y1>,<x2>,<y2>)
     頂点(<x1>,<y1>) -左上- と(<x2>,<y2>) -右下-の長方形に完全に含まれる
     グローバル変数‘boundaries_array’の多角形セグメント検出します。

     例:

     南イタリアをプロットするためのセグメントの数を返します。
          (%i1) load("worldmap")$
          (%i2) region_boundaries(10.4,41.5,20.7,35.4);
          (%o2)                [1846, 1863, 1864, 1881, 1888, 1894]
          (%i3) draw2d(geomap(%))$

 -- 関数: region_boundaries_plus (<x1>,<y1>,<x2>,<y2>)
     頂点(<x1>,<y1>) -左上- と(<x2>,<y2>) -右下-で定義された長方形に少な
     くとも1つ頂点を含まれる グローバル変数‘boundaries_array’の多角形セ
     グメント検出します。 多角形セグメント検出します。

     例:

          (%i1) load("worldmap")$
          (%i2) region_boundaries_plus(10.4,41.5,20.7,35.4);
          (%o2) [1060, 1062, 1076, 1835, 1839, 1844, 1846, 1858,
                 1861, 1863, 1864, 1871, 1881, 1888, 1894, 1897]
          (%i3) draw2d(geomap(%))$

48.4.2 Graphic objects
----------------------

 -- グラフィックオブジェクト: geomap (<numlist>)
 -- グラフィックオブジェクト: geomap (<numlist>,<3Dprojection>)
     2Dと3Dに関して地図を描画します。

     2D

     この関数はグローバル変数‘boundaries_array’と一緒に機能します。

     引数<numlist>は 数や数のリストを含むリストです。 これらすべての数は
     、 グローバル配列‘boundaries_array’の成分を表す 0以上の整数でなけれ
     ばいけません。

     Each component of ‘boundaries_array’のそれぞれの成分は 浮動小数点量
     の配列であり、多角形セグメントやマップ境界の座標です。

     ‘geomap (<numlist>)’は 引数を平坦化し、‘boundaries_array’の中に関連
     した境界を描画します。

     このオブジェクトは以下のグラフィックオプションの影響を受けます:
     ‘line_width’, ‘line_type’, ‘color’.

     例:

     手で定義された簡単な地図:
          (%i1) load("draw")$
          (%i2) /* Vertices of boundary #0: {(1,1),(2,5),(4,3)} */
             ( bnd0: make_array(flonum,6),
               bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0,
               bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$
          (%i3) /* Vertices of boundary #1: {(4,3),(5,4),(6,4),(5,1)} */
             ( bnd1: make_array(flonum,8),
               bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0,
               bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$
          (%i4) /* Vertices of boundary #2: {(5,1), (3,0), (1,1)} */
             ( bnd2: make_array(flonum,6),
               bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0,
               bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$
          (%i5) /* Vertices of boundary #3: {(1,1), (4,3)} */
             ( bnd3: make_array(flonum,4),
               bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$
          (%i6) /* Vertices of boundary #4: {(4,3), (5,1)} */
             ( bnd4: make_array(flonum,4),
               bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$
          (%i7) /* Pack all together in boundaries_array */
             ( boundaries_array: make_array(any,5),
               boundaries_array[0]: bnd0, boundaries_array[1]: bnd1,
               boundaries_array[2]: bnd2, boundaries_array[3]: bnd3,
               boundaries_array[4]: bnd4 )$
          (%i8) draw2d(geomap([0,1,2,3,4]))$

     補助バッケージ ‘worldmap’は グローバル変数 ‘boundaries_array’を (経
     度、緯度)座標で 実世界境界に設定します。 これらのデータはパブリック
     ドメインであり、
     <http://www-cger.nies.go.jp/grid-e/gridtxt/grid19.html> に由来する
     ものです。

     パッケージ‘worldmap’は、国、大陸、海岸線の境界も
     ‘boundaries_array’の必要な成分を持つリストとして、 定義します。 (更
     に知るにはファイル‘share/draw/worldmap.mac’を参照してください) パッ
     ケージ‘draw’は自動的に‘worldmap’をロードしません。

          (%i1) load("worldmap")$
          (%i2) c1: gr2d(geomap(Canada,United_States,
                                Mexico,Cuba))$
          (%i3) c2: gr2d(geomap(Africa))$
          (%i4) c3: gr2d(geomap(Oceania,China,Japan))$
          (%i5) c4: gr2d(geomap(France,Portugal,Spain,
                                Morocco,Western_Sahara))$
          (%i6) draw(columns  = 2,
                     c1,c2,c3,c4)$

     パッケージ‘worldmap’は 国をポリゴンとしてプロットする時にも役に立ち
     ます。 この場合、グラフィックオブジェクト‘geomap’は もはや必要でな
     く、代わりに‘polygon’オブジェクトが使われます。 配列ではなくリスト
     が現在使われているので、 地図レンダリングはより遅いでしょう。 以下
     のコードを理解するためには、 ‘make_poly_country’と
     ‘make_poly_continent’も 参照してください。
          (%i1) load("worldmap")$
          (%i2) mymap: append(
             [color      = white],  /* borders are white */
             [fill_color = red],             make_poly_country(Bolivia),
             [fill_color = cyan],            make_poly_country(Paraguay),
             [fill_color = green],           make_poly_country(Colombia),
             [fill_color = blue],            make_poly_country(Chile),
             [fill_color = "#23ab0f"],       make_poly_country(Brazil),
             [fill_color = goldenrod],       make_poly_country(Argentina),
             [fill_color = "midnight-blue"], make_poly_country(Uruguay))$
          (%i3) apply(draw2d, mymap)$

     3D

     ‘geomap (<numlist>)’は地図境界を 中心が(0,0,0)で半径1の球上に射影し
     ます。 ‘geomap (<numlist>,<3Dprojection>)’を使うことで、 球や射影タ
     イプを変えることが可能です。

     利用可能な3D射影:

        • ‘[spherical_projection,<x>,<y>,<z>,<r>]’: 地図境界を 中心
          (<x>,<y>,<z>)、半径<r>の球上に 射影します。

               (%i1) load("worldmap")$
               (%i2) draw3d(geomap(Australia), /* default projection */
                            geomap(Australia,
                                   [spherical_projection,2,2,2,3]))$

        • ‘[cylindrical_projection,<x>,<y>,<z>,<r>,<rc>]’: 球地図境界を
          中心(<x>,<y>,<z>)の半径<r>の地球の極を通る軸を持ち 半径<rc>の
          円柱に再射影します。

               (%i1) load("worldmap")$
               (%i2) draw3d(geomap([America_coastlines,Eurasia_coastlines],
                                   [cylindrical_projection,2,2,2,3,4]))$

        • ‘[conic_projection,<x>,<y>,<z>,<r>,<alpha>]’: 球地図境界を 中
          心(<x>,<y>,<z>)の半径<r>の地球の極を通る軸を持ち 角度<alpha>の
          円錐上に 再射影します。 北円錐と南円錐両方が球に接触します。

               (%i1) load("worldmap")$
               (%i2) draw3d(geomap(World_coastlines,
                                   [conic_projection,0,0,0,1,90]))$

     更に丹念な例を見るには、
     <http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap> も参
     照してください。

