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


File: maxima.info,  Node: Функции и переменные для статистических графиков,  Prev: Функции и переменные для многомерной описательной статистики,  Up: Пакет descriptive

43.5 Функции и переменные для статистических графиков
=====================================================

 -- Функция: 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>, ...)
     Эта функция строит гистограмму для непрерывной выборки.  Данные
     выборки должны быть представлены в виде списка или одномерной
     матрицы.

     Доступны следующие опции:

        • Опции, определенные в пакете ‘draw’.  См.  также ‘bars’ и
          ‘barsplot’.
        • <nclasses> - число классов в гистограмме (10 по умолчанию).

     См.  также ‘discrete_freq’ и ‘continuous_freq’ для подсчета данных,
     и ‘bars’ и ‘barsplot’ для построения гистограмм непрерывных данных.

     Примеры:

     Простая гистограмма с восемью классами.

          (%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)$

 -- Функция: scatterplot (<list>)
 -- Функция: scatterplot (<list>, <option_1>, <option_2>, ...)
 -- Функция: scatterplot (<matrix>)
 -- Функция: scatterplot (<matrix>, <option_1>, <option_2>, ...)
     Строит корреляционную диаграмму (scatter diagrams) для одномерной
     (<list>) или многомерной (<matrix>) выборки.

     Доступны следующие опции:

        • Опции, определенные в пакете ‘draw’.
        • <nclasses> - число классов в гистограмме (10 по умолчанию).

     Примеры:

     Одномерная корреляционная диаграмма для гауссовой выборки.

          (%i1) load ("descriptive")$
          (%i2) load ("distrib")$
          (%i3) scatterplot(
                  random_normal(0,1,200),
                  xaxis      = true,
                  point_size = 2,
                  terminal   = eps,
                  eps_width  = 10,
                  eps_height = 2)$

     Двумерная корреляционная диаграмма.

          (%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)$

     Трехмерная корреляционная диаграмма.

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

     Пятимерная корреляционная диаграмма, с гистограммой, содержащей
     пать классов.

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

     По поводу построения точек в двух или трех измерениях, соединенных
     линиями, см.  ‘points’.  См.  ‘bars’ по поводу опций, управляющих
     выводом гистограмм.

     См.  также ‘histogram’.

 -- Функция: barsplot (<list>)
 -- Функция: barsplot (<list>, <option_1>, <option_2>, ...)
 -- Функция: barsplot (<one_column_matrix>)
 -- Функция: barsplot (<one_column_matrix>, <option_1>, <option_2>, ...)
 -- Функция: barsplot (<one_row_matrix>)
 -- Функция: barsplot (<one_row_matrix>, <option_1>, <option_2>, ...)
     Аналогична ‘histogram’ но для дискретных, численных или
     категоризированных, статистических переменных.

     Доступны следующие опции:

        • Опции, определенные в пакете ‘draw’.
        • <box_width> – относительная ширина прямоугольников (‘3/4’ по
          умолчанию).  Это число должно быть в интервале ‘[0,1]’.

     Пример:

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

     По поводу опций, управляющих выводом диаграмм, см.  ‘bars’ пакета
     ‘draw’.  См.  также функции ‘histogram’ и ‘piechart’.

 -- Функция: 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>, ...)
     Аналогична ‘barsplot’, но вместо прямоугольников строит сектора,
     т.е.  круговую диаграмму.

     Доступны следующие опции:

        • Опции, определенные в пакете ‘draw’.
        • <pie_center> – центр диаграммы (‘[0,0]’ по умолчанию).
        • <pie_radius> – радиус диаграммы (1 по умолчанию).

     Пример:

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

     См.  также ‘barsplot’.

 -- Функция: boxplot (<data>)
 -- Функция: boxplot (<data>, <option_1>, <option_2>, ...)
     Эта функция строит диаграмму типа "ящик-с-усами"
     (box-and-whishker).  Аргумент <data> может быть списком, что не
     представляет большого интереса, т.к.  подобные диаграммы в основном
     используются для сравнения различных выборок или матриц, чтобы
     сравнить две или более компонент многомерной выборки.  Но <data>
     также может быть списком выборок, возможно различной длины (это
     единственная функция в пакете ‘descriptive’, которая допускает
     такой тип данных).

     Доступны следующие опции:

        • Опции, определенные в пакете ‘draw’.
        • <box_width> - относительная ширина ящиков (‘3/4’ по
          умолчанию).  Это число должно быть в интервале ‘[0,1]’.

     Примеры:

     Диаграмма "ящик-с-усами" для многомерной выборки.

          (%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) $

     Диаграмма "ящик-с-усами" для трех выборок различной длины.

          (%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)$


File: maxima.info,  Node: Пакет diag,  Next: Пакет distrib,  Prev: Пакет descriptive,  Up: Top

44 Пакет diag
*************

* Menu:

* Функции и переменные пакета diag::


File: maxima.info,  Node: Функции и переменные пакета diag,  Prev: Пакет diag,  Up: Пакет diag

44.1 Функции и переменные пакета 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>)
     Возвращает жорданову клетку порядка <n> с собственными значениями
     <lambda>.

     Пример:
          (%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>, но представленную в форме
     списка 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>)
     Возвращает жорданову матрицу, соответствующую представлению в виде
     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>)
     Возвращает минимальный многочлен, соответствующий представлению в
     виде Maxima списка <l>, возвращаемого функцией ‘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) minimalPoly(%);
                                      3
          (%o4)                (x - 1)  (x + 1)

     Для использования функцию следует загрузить командой
     ‘load("diag")’.  См.  ‘jordan’ и ‘dispJordan’.

 -- Функция: ModeMatrix (<A>,<l>)
     Возвращает матрицу <M>, такую что (M^^-1).A.M=J, где <J> есть
     жорданова форма <A>.  Список <l> является представлением жордановой
     формы матрицы, возвращаемым функцией ‘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’.

     Для использования функцию следует загрузить командой
     ‘load("diag")’.  См.  ‘jordan’ и ‘dispJordan’.

 -- Функция: mat_function (<f>,<mat>)
     Возвращает f(mat), где <f> есть аналитическая функция а <mat> –
     матрица.  Вычисление основано на интегральной формуле Коши, которая
     утверждает, что, если ‘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

45 Пакет distrib
****************

* Menu:

* Введение в пакет distrib::
* Функции и переменные для непрерывных распределений::
* Функции и переменные для дискретных распределений::


File: maxima.info,  Node: Введение в пакет distrib,  Next: Функции и переменные для непрерывных распределений,  Prev: Пакет distrib,  Up: Пакет distrib

45.1 Введение в пакет distrib
=============================

Пакет ‘distrib’ включает набор функций для вероятностных вычислений с
дискретными и непрерывными распределениями одной переменной.

   Далее следует краткий обзор основных понятий по вероятностным
распределениям.

   Пусть f(x) есть <функция плотности вероятности> непрерывной случайной
величины X.  Тогда <функция распределения> определяется как
                            x
                           /
                           [
                    F(x) = I     f(u) du
                           ]
                           /
                            minf
   что равно вероятности <Pr(X <= x)>

   <Среднее> значение характеризует локализацию и определено как
                          inf
                         /
                         [
                E[X]  =  I   x f(x) dx
                         ]
                         /
                          minf

   <Дисперсия> характеризует изменчивость распределения
                      inf
                     /
                     [                    2
              V[X] = I     f(x) (x - E[X])  dx
                     ]
                     /
                      minf
   что есть положительное вещественное число.  Квадратный корень
дисперсии называется <стандартным отклонением>, D[X]=sqrt(V[X]), и
является иной мерой изменчивости.

   <Коэффициент асимметрии> является мерой асимметрии распределения
                      inf
                     /
                 1   [                    3
       SK[X] = ----- I     f(x) (x - E[X])  dx
                   3 ]
               D[X]  /
                      minf

   <Коэффициент куртозиса> является мерой остроты распределения
                      inf
                     /
                 1   [                    4
       KU[X] = ----- I     f(x) (x - E[X])  dx - 3
                   4 ]
               D[X]  /
                      minf
   Если случайная величина X гауссова, то KU[X]=0.  Фактически,
коэффициенты асимметрии и куртозиса являются параметрами формы и
измеряют степень не-гауссовости распределения.

   Если случайная переменная X является дискретной, то плотность, или
<вероятность>, f(x) принимает положительные значения на некотором
счетном множестве чисел x_i, и равна нулю в противном случае.  В этом
случае функция распределения есть
                            ====
                            \
                     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
   и
                          ====
                   1      \                     4
       KU[X] =  -------    >    f(x ) (x - E[X])   - 3 ,
                D[X]^4    /        i    i
                          ====
                           x
                            i
   соответственно.

   Пакет ‘distrib’ включает функции для моделирования случайных
переменных.  Некоторые из этих функций используют управляющие
переменные, указывающие используемый алгоритм.  В большинстве случаев
реализован общий метод обращения, который основан на факте, что если <u>
случайная величина с равномерным распределением в интервале (0,1), то
<F^(-1)(u)> есть случайная величина с распределением F.  Этот метод
недостаточно эффективен с точки зрения времени вычисления, но полезен
для сравнения с другими алгоритмами.  В этом примере сравнивается
производительность алгоритмов ‘ahrens_cheng’ и ‘inverse’ при вычислении
гистограмм для Хи-квадрат случайной переменной:

     (%i1) load("distrib")$
     (%i2) load("descriptive")$
     (%i3) showtime: true$
     Evaluation took 0.00 seconds (0.00 elapsed) using 32 bytes.
     (%i4) random_chi2_algorithm: 'ahrens_cheng$
                                            histogram(random_chi2(10,500))$
     Evaluation took 0.00 seconds (0.00 elapsed) using 40 bytes.
     Evaluation took 0.69 seconds (0.71 elapsed) using 5.694 MB.
     (%i6) random_chi2_algorithm: 'inverse$ histogram(random_chi2(10,500))$
     Evaluation took 0.00 seconds (0.00 elapsed) using 32 bytes.
     Evaluation took 10.15 seconds (10.17 elapsed) using 322.098 MB.

   Для визуального сравнения алгоритмов для дискретных переменных можно
использовать функцию ‘barsplot’ пакета ‘descriptive’.

   Заметим, что еще требуется проделать некоторую работу, поскольку
данные модельные распределения еще не проверены более строгими оценками
качества совпадения.

   За более детальной информацией по поводу данных математических
объектов, пожалуйста, обратитесь к любому вводному руководству по
вероятности и статистике.

   Имена функций пакета ‘distrib’ следуют определенному соглашению.
Каждое имя состоит из двух частей – первая определяет функцию или
параметр, которое необходимо вычислить.
     Функции:
        Плотность вероятности           (pdf_*)
        Распределение                   (cdf_*)
        Квантиль                        (quantile_*)
        Среднее значение                (mean_*)
        Дисперсия                       (var_*)
        Стандартное отклонение          (std_*)
        Коэффициент асимметрии          (skewness_*)
        Коэффициент куртозиса           (kurtosis_*)
        Случайная переменная (variate)  (random_*)

   Вторая часть определяет тип распределения.
     Непрерывные распределения:
        Нормальное                  (*normal)
        Стьюдента                   (*student_t)
        Хи-квадрат                  (*chi2)
        F                           (*f)
        Экспоненциальное            (*exp)
        Логнормальное               (*lognormal)
        Гамма                       (*gamma)
        Бета                        (*beta)
        Равномерное неприрывное     (*continuous_uniform)
        Логистическое               (*logistic)
        Парето                      (*pareto)
        Вейбулла                    (*weibull)
        Релея                       (*rayleigh)
        Лапласа                     (*laplace)
        Коши                        (*cauchy)
        Гумбеля                     (*gumbel)

     Дискретные распределения:
        Биномиальное                (*binomial)
        Пуассона                    (*poisson)
        Бернулли                    (*bernoulli)
        Геометрическое              (*geometric)
        Равномерное дискретное      (*discrete_uniform)
        Гипергеометрическое         (*hypergeometric)
        Отрицательное биномиальное  (*negative_binomial)

   Например, ‘pdf_student_t(x,n)’ – плотность распределения Стьюдента с
<n> степенями свободы, ‘std_pareto(a,b)’ – стандартное отклонение
распределения Парето с параметрами <a> и <b>, и ‘kurtosis_poisson(m)’ –
коэффициент куртозиса распределения Пуассона со средним <m>.

   Для использования пакет ‘distrib’ необходимо загрузить командой
     (%i1) load("distrib")$

   Для комментариев, сообщений об ошибках и предложений обращайтесь к
автору пакета по адресу <’mario AT edu DOT xunta DOT es’>.


File: maxima.info,  Node: Функции и переменные для непрерывных распределений,  Next: Функции и переменные для дискретных распределений,  Prev: Введение в пакет distrib,  Up: Пакет distrib

45.2 Функции и переменные для непрерывных распределений
=======================================================

 -- Функция: pdf_normal (<x>,<m>,<s>)
     Возвращает значение функции плотности вероятности нормального
     распределения Normal(m,s) с s>0 в точке <x>.

     Чтобы использовать эту функцию, ее следует сначала загрузить
     командой ‘load("distrib")’.

 -- Функция: cdf_normal (<x>,<m>,<s>)
     Возвращает значение функции распределения нормального распределения
     Normal(m,s) с s>0 в точке <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>)
     Возвращает <q>-квантиль нормального распределения Normal(m,s) с
     s>0, т.е.  значение функции обратной ‘cdf_normal’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Чтобы использовать эту функцию, ее следует сначала загрузить
     командой ‘load("distrib")’.

 -- Функция: mean_normal (<m>,<s>)
     Возвращает среднее значение нормального распределения Normal(m,s) с
     s>0, т.е.  <m>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_normal (<m>,<s>)
     Возвращает дисперсию нормального распределения Normal(m,s) с s>0,
     т.е.  <s^2>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_normal (<m>,<s>)
     Возвращает стандартное отклонение нормального распределения
     Normal(m,s) с s>0, т.е.  <s>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_normal (<m>,<s>)
     Возвращает коэффициент асимметрии нормального распределения
     Normal(m,s) с s>0, котрый всегда равен 0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_normal (<m>,<s>)
     Возвращает коэффициент куртозиса нормального распределения
     Normal(m,s) с s>0, котрый всегда равен 0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_normal_algorithm
     Значение по умолчанию: ‘box_mueller’

     Определяет алгоритм, выбранный для симулирования нормальной
     случайной переменной.  Реализованы алгоритмы ‘box_mueller’ и
     ‘inverse’:
        • ‘box_mueller’ – основан на алгоритме описанном в Knuth, D.E.
          (1981) <Seminumerical Algorithms.  The Art of Computer
          Programming.> Addison-Wesley.

        • ‘inverse’ – основан на общем методе обращения.

     См.  также ‘random_normal’.

 -- Функция: random_normal (<m>,<s>)
 -- Функция: random_normal (<m>,<s>,<n>)
     Возвращает значение симулированной случайной переменной нормального
     распределения Normal(m,s) с s>0.  Вызов ‘random_normal’ с третьим
     аргументом <n> дает случайную выборку размера <n>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_normal_algorithm’, которая по умолчанию равна
     ‘box_mueller’.

     См.  также ‘random_normal_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_student_t (<x>,<n>)
     Возвращает значение функции плотности вероятности распределения
     Стюдента t(n) с n>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_student_t (<x>,<n>)
     Возвращает значение функции распределения Стюдента t(n) с n>0 в
     точке <x>.

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_student_t(1/2, 7/3);
                                               1  7
          (%o2)                  cdf_student_t(-, -)
                                               2  3
          (%i3) %,numer;
          (%o3)                   .6698450596140417

 -- Функция: quantile_student_t (<q>,<n>)
     Возвращает <q>-квантиль распределения Стюдента t(n) с n>0, т.е.
     значение функции обратной ‘cdf_student_t’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_student_t (<n>)
     Возвращает среднее значение распределения Стюдента t(n) с n>0,
     которое всегда равное 0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_student_t (<n>)
     Возвращает дисперсию распределения Стюдента t(n) с n>2.

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

 -- Функция: std_student_t (<n>)
     Возвращает стандартное отклонение распределения Стюдента t(n) с
     n>2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_student_t (<n>)
     Возвращает коэффициент ассиметрии распределения Стюдента t(n) с
     n>3, который всегда равен 0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_student_t (<n>)
     Возвращает коэффициент куртозиса распределения Стюдента t(n) с n>4.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_student_t_algorithm
     Значение по умолчанию: ‘ratio’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной распределения Стьюдента.  Реализованы алгоритмы
     ‘inverse’ и ‘ratio’:
        • ‘inverse’ – основан на методе обращения.

        • ‘ratio’ – основан на факте, что если <Z> есть нормальная
          случайная переменная N(0,1) и S^2 есть Хи-квадрат случайная
          переменная с <n> степенями свободы Chi^2(n), то
                                          Z
                                X = -------------
                                    /   2  \ 1/2
                                    |  S   |
                                    | ---  |
                                    \  n   /
          есть случайная переменная распределения Стюдента t(n) с <n>
          степенями свободы.

     См.  также ‘random_student_t’.

 -- Функция: random_student_t (<n>)
 -- Функция: random_student_t (<n>,<m>)
     Возвращает значение симулированной случайной переменной
     распределение Стьюдента t(n) с n>0.  Вызов ‘random_student_t’ со
     вторым аргументом <m> дает случайную выборку размера <m>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_student_t_algorithm’, которая по умолчанию равна ‘ratio’.

     См.  также ‘random_student_t_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_chi2 (<x>,<n>)
     Возвращает значение функции плотности вероятности распределения
     Хи-квадрат Chi^2(n) с n>0 в точке <x>.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     функции плотности гамма распределения.

          (%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>)
     Возвращает значение функции распределения Хи-квадрат Chi^2(n) с n>0
     в точке <x>.

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение основанное на гамма квантили,
     поскольку распределение Chi^2(n) эквивалентно Gamma(n/2,2).

          (%i1) load ("distrib")$
          (%i2) cdf_chi2(3,4);
          (%o2)                  cdf_gamma(3, 2, 2)
          (%i3) cdf_chi2(3,4),numer;
          (%o3)                   .4421745996289249

 -- Функция: quantile_chi2 (<q>,<n>)
     Возвращает <q>-квантиль распределения Хи-квадрат Chi^2(n) с n>0,
     т.е.  значение функции обратной ‘cdf_chi2’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение основанное на гамма квантили,
     поскольку распределение 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>)
     Возвращает среднее значение распределения Хи-квадрат Chi^2(n) с
     n>0.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     среднего значения гамма распределения.

          (%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>)
     Возвращает дисперсию распределения Хи-квадрат Chi^2(n) с n>0.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     дисперсии гамма распределения.

          (%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>)
     Возвращает стандартное отклонение распределения Хи-квадрат Chi^2(n)
     с n>0.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     стандартного отклонения гамма распределения.

          (%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>)
     Возвращает коэффициент асимметрии распределения Хи-квадрат Chi^2(n)
     с n>0.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента асимметрии гамма распределения.

          (%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>)
     Возвращает коэффициент куртозиса распределения Хи-квадрат Chi^2(n)
     с n>0.

     Случайная переменная Chi^2(n) эквивалентна случайной переменной
     Gamma(n/2,2).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента куртозиса гамма распределения.

          (%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_algorithm
     Значение по умолчанию: ‘ahrens_cheng’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной распределения Хи-квадрат.  Реализованы алгоритмы
     ‘ahrens_cheng’ и ‘inverse’:

        • ‘ahrens_cheng’ – основан на методе симулирования гамма
          распределения.  См.  ‘random_gamma_algorithm’.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_chi2’.

 -- Функция: random_chi2 (<n>)
 -- Функция: random_chi2 (<n>,<m>)
     Возвращает значение симулированной случайной переменной
     распределения Хи-квадрат Chi^2(n) с n>0.  Вызов ‘random_chi2’ со
     вторым аргументом <m> дает случайную выборку размера <m>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_chi2_algorithm’, которая по умолчанию равна ‘ahrens_cheng’.

     См.  также ‘random_chi2_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_f (<x>,<m>,<n>)
     Возвращает значение функции плотности вероятности распределения
     F(m,n) с m,n>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_f (<x>,<m>,<n>)
     Возвращает значение функции распределения F(m,n) с m,n>0 в точке
     <x>.

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_f(2,3,9/4);
                                               9
          (%o2)                    cdf_f(2, 3, -)
                                               4
          (%i3) %,numer;
          (%o3)                   0.66756728179008

 -- Функция: quantile_f (<q>,<m>,<n>)
     Возвращает <q>-квантиль распределения F(m,n) с m,n>0, т.е.
     значение функции обратной ‘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>)
     Возвращает среднее значение распределения F(m,n) с m>0, n>2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_f (<m>,<n>)
     Возвращает дисперсию распределения F(m,n) с m>0, n>4.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_f (<m>,<n>)
     Возвращает стандартное отклонение распределения F(m,n) с m>0, n>4.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_f (<m>,<n>)
     Возвращает коэффициент асимметрии распределения F(m,n) с m>0, n>6.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_f (<m>,<n>)
     Возвращает коэффициент куртозиса распределения F(m,n) с m>0, n>8.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_f_algorithm
     Значение по умолчанию: ‘inverse’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной распределения F. Реализованы алгоритмы ‘ratio’ и
     ‘inverse’:

        • ‘ratio’ – основан на факте, что если <X> есть Chi^2(m)
          случайная переменная и есть Chi^2(n) случайная переменная, то
                                       n X
                                   F = ---
                                       m Y
          есть F случайная переменная F(m,n) с <m> и <n> степенями
          свободы.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_f’.

 -- Функция: random_f (<m>,<n>)
 -- Функция: random_f (<m>,<n>,<k>)
     Возвращает значение симулированной случайной переменной
     распределения F(m,n) с m,n>0.  Вызов ‘random_f’ с третьим
     аргументом <k> дает случайную выборку размера <k>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной ‘random_f_algorithm’,
     которая по умолчанию равна ‘inverse’.

     См.  также ‘random_f_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_exp (<x>,<m>)
     Возвращает значение функции плотности вероятности экспоненциального
     распределения Exponential(m) с m>0 в точке <x>.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах плотности вероятности распределения Вейбулла.

          (%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>)
     Возвращает значение функции распределения экспоненциального
     распределения Exponetial(m) с m>0 в точке <x>.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах функции распределения распределения Вейбулла.

          (%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>)
     Возвращает <q>-квантиль экспоненциального распределения
     Exponetial(m) с m>0, т.е.  значение функции обратной ‘cdf_exp’.
     Значение аргумента <q> должно быть в интервале [0,1].

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах квантили распределения Вейбулла.

          (%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>)
     Возвращает среднее значение экспоненциального распределения
     Exponetial(m) с m>0.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах среднего значения распределения Вейбулла.

          (%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>)
     Возвращает дисперсию экспоненциального распределения Exponetial(m)
     с m>0.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах дисперсии распределения Вейбулла.

          (%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>)
     Возвращает стандартное отклонение экспоненциального распределения
     Exponetial(m) с m>0.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах стандартного отклонения распределения Вейбулла.

          (%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>)
     Возвращает коэффициент асимметрии экспоненциального распределения
     Exponetial(m) с m>0.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах коэффициента асимметрии распределения Вейбулла.

          (%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>)
     Возвращает коэффициент куртозиса экспоненциального распределения
     Exponetial(m) с m>0.

     Случайная переменная Exponential(m) эквивалентна случайной
     переменной Weibull(1,1/m).  Таким образом, если недостаточно
     информации для вычисления результата, возвращается невычисляемая
     форма в терминах коэффициента куртозиса распределения Вейбулла.

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

 -- Управляющая переменная: random_exp_algorithm
     Значение по умолчанию: ‘inverse’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной экспоненциального распределения.  Реализованы алгоритмы
     ‘inverse’, ‘ahrens_cheng’ и ‘ahrens_dieter’

        • ‘inverse’ – основан на методе обращения.

        • ‘ahrens_cheng’ – основан на факте, что случайная переменная
          Exp(m) эквивалентна Gamma(1,1/m).  См.
          ‘random_gamma_algorithm’.

        • ‘ahrens_dieter’ – основан на алгоритме, описанном в Ahrens,
          J.H. and Dieter, U. (1972) <Computer methods for sampling from
          the exponential and normal distributions.> Comm, ACM, 15,
          Oct., 873-882.

     См.  также ‘random_exp’.

 -- Функция: random_exp (<m>)
 -- Функция: random_exp (<m>,<k>)
     Возвращает значение симулированной случайной переменной
     экспоненциального распределения Exponential(m) с m>0.  Вызов
     ‘random_exp’ со вторым аргументом <k> дает случайную выборку
     размера <k>.

     Для этой функции реализовано три алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_exp_algorithm’, которая по умолчанию равна ‘inverse’.

     См.  также ‘random_exp_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_lognormal (<x>,<m>,<s>)
     Возвращает значение функции плотности вероятности логнормального
     распределения Lognormal(m,s) с s>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_lognormal (<x>,<m>,<s>)
     Возвращает значение функции распределения логнормального
     распределения Lognormal(m,s) с s>0 в точке <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>)
     Возвращает <q>-квантиль логнормального распределения Lognormal(m,s)
     с s>0, т.е.  значение функции обратной ‘cdf_lognormal’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_lognormal (<m>,<s>)
     Возвращает среднее значение логнормального распределения
     Lognormal(m,s) с s>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_lognormal (<m>,<s>)
     Возвращает дисперсию логнормального распределения Lognormal(m,s) с
     s>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_lognormal (<m>,<s>)
     Возвращает стандартное отклонение логнормального распределения
     Lognormal(m,s) с s>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_lognormal (<m>,<s>)
     Возвращает коэффициент асимметрии логнормального распределения
     Lognormal(m,s) с s>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_lognormal (<m>,<s>)
     Возвращает коэффициент куртозиса логнормального распределения
     Lognormal(m,s) с s>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_lognormal (<m>,<s>)
 -- Функция: random_lognormal (<m>,<s>,<n>)
     Возвращает значение симулированной случайной переменной
     логнормального распределения Lognormal(m,s) с s>0.  Вызов
     ‘random_lognormal’ с третьим аргументом <n> дает случайную выборку
     размера <n>.

     Логнормальное распределение симулируется при помощи нормального
     распределения.  Для этой функции реализовано два алгоритма.
     Используемый алгоритм определяется значением глобальной переменной
     ‘random_normal_algorithm’, которая по умолчанию равна
     ‘box_mueller’.

     См.  также ‘random_normal_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_gamma (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности гамма
     распределения Gamma(a,b) с a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_gamma (<x>,<a>,<b>)
     Возвращает значение функции распределения гамма распределения
     Gamma(a,b) с a,b>0 в точке <x>.

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_gamma(3,5,21);
          (%o2)                  cdf_gamma(3, 5, 21)
          (%i3) %,numer;
          (%o3)                 4.402663157135039E-7

 -- Функция: quantile_gamma (<q>,<a>,<b>)
     Возвращает <q>-квантиль гамма распределения Gamma(a,b) с a,b>0,
     т.е.  значение функции обратной ‘cdf_gamma’.  Значение аргумента
     <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_gamma (<a>,<b>)
     Возвращает среднее значение гамма распределения Gamma(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_gamma (<a>,<b>)
     Возвращает дисперсию гамма распределения Gamma(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_gamma (<a>,<b>)
     Возвращает стандартное отклонение гамма распределения Gamma(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_gamma (<a>,<b>)
     Возвращает коэффициент асимметрии гамма распределения Gamma(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_gamma (<a>,<b>)
     Возвращает коэффициент куртозиса гамма распределения Gamma(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_gamma_algorithm
     Значение по умолчанию: ‘ahrens_cheng’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной гамма распределения.  Реализованы алгоритмы
     ‘ahrens_cheng’ и ‘inverse’

        • ‘ahrens_cheng’ – это комбинация двух процедур, в зависимости
          от значения параметра <a>:

          Для 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.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_gamma’.

 -- Функция: random_gamma (<a>,<b>)
 -- Функция: random_gamma (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной гамма
     распределения Gamma(a,b) с a,b>0.  Вызов ‘random_gamma’ с третьим
     аргументом <n> дает случайную выборку размера <n>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_gamma_algorithm’, которая по умолчанию равна
     ‘ahrens_cheng’.

     См.  также ‘random_gamma_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_beta (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности бета
     распределения Beta(a,b) с a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_beta (<x>,<a>,<b>)
     Возвращает значение функции распределения бета распределения
     Beta(a,b) с a,b>0 в точке <x>.

     Эта функция не имеет замкнутой формы и вычисляется численно, если
     значение глобальной переменной ‘numer’ рано ‘true’, иначе
     возвращается номинальное выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_beta(1/3,15,2);
                                           1
          (%o2)                   cdf_beta(-, 15, 2)
                                           3
          (%i3) %,numer;
          (%o3)                 7.666089131388224E-7

 -- Функция: quantile_beta (<q>,<a>,<b>)
     Возвращает <q>-квантиль бета распределения Beta(a,b) с a,b>0, т.е.
     значение функции обратной ‘cdf_beta’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_beta (<a>,<b>)
     Возвращает среднее значение бета распределения Beta(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_beta (<a>,<b>)
     Возвращает дисперсию бета распределения Beta(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_beta (<a>,<b>)
     Возвращает стандартное отклонение бета распределения Beta(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_beta (<a>,<b>)
     Возвращает коэффициент асимметрии бета распределения Beta(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_beta (<a>,<b>)
     Возвращает коэффициент куртозиса бета распределения Beta(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_beta_algorithm
     Значение по умолчанию: ‘cheng’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной бета распределения.  Реализованы алгоритмы ‘cheng’,
     ‘inverse’ и ‘ratio’

        • ‘cheng’ – алгоритм, описанный в Cheng, R.C.H. (1978).
          <Generating Beta Variates with Nonintegral Shape Parameters>.
          Communications of the ACM, 21:317-322

        • ‘inverse’ – основан на методе обращения.

        • ‘ratio’ – основан на факте, что если <X> есть случайная
          переменная Gamma(a,1) и <Y> есть случайная переменная
          Gamma(b,1), то отношение X/(X+Y) распределено как Beta(a,b).

     См.  также ‘random_beta’.

 -- Функция: random_beta (<a>,<b>)
 -- Функция: random_beta (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной бета
     распределения Beta(a,b) с a,b>0.  Вызов ‘random_beta’ с третьим
     аргументом <n> дает случайную выборку размера <n>.

     Для этой функции реализовано три алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_beta_algorithm’, которая по умолчанию равна ‘cheng’.

     См.  также ‘random_beta_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_continuous_uniform (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности равномерного
     непрерывного распределения Continuous Uniform(a,b) с a<b в точке
     <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_continuous_uniform (<x>,<a>,<b>)
     Возвращает значение функции распределения равномерного непрерывного
     распределения Continuous Uniform(a,b) с a<b в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_continuous_uniform (<q>,<a>,<b>)
     Возвращает <q>-квантиль равномерного непрерывного распределения
     Continuous Uniform(a,b) с a<b, т.е.  значение функции обратной
     ‘cdf_continuous_uniform’.  Значение аргумента <q> должно быть в
     интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_continuous_uniform (<a>,<b>)
     Возвращает среднее значение равномерного непрерывного распределения
     Continuous Uniform(a,b) с a<b.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_continuous_uniform (<a>,<b>)
     Возвращает дисперсию равномерного непрерывного распределения
     Continuous Uniform(a,b) с a<b.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_continuous_uniform (<a>,<b>)
     Возвращает стандартное отклонение равномерного непрерывного
     распределения Continuous Uniform(a,b) с a<b.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_continuous_uniform (<a>,<b>)
     Возвращает коэффициент ассиметрии равномерного непрерывного
     распределения Continuous Uniform(a,b) с a<b.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_continuous_uniform (<a>,<b>)
     Возвращает коэффициент куртозиса равномерного непрерывного
     распределения Continuous Uniform(a,b) с a<b.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_continuous_uniform (<a>,<b>)
 -- Функция: random_continuous_uniform (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     равномерного непрерывного распределения Continuous Uniform(a,b) с
     a<b.  Вызов ‘random_continuous_uniform’ с третьим аргументом <n>
     дает случайную выборку размера <n>.

     Для вычисления используется встроенная Maxima функция ‘random’.

     См.  также ‘random’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_logistic (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности логистического
     распределения Logistic(a,b) с b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_logistic (<x>,<a>,<b>)
     Возвращает значение функции распределения логистического
     распределения Logistic(a,b) с b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_logistic (<q>,<a>,<b>)
     Возвращает <q>-квантиль логистического распределения Logistic(a,b)
     с b>0, т.е.  значение функции обратной ‘cdf_logistic’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_logistic (<a>,<b>)
     Возвращает среднее значение логистического распределения
     Logistic(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_logistic (<a>,<b>)
     Возвращает дисперсию логистического распределения Logistic(a,b) с
     b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_logistic (<a>,<b>)
     Возвращает стандартное отклонение логистического распределения
     Logistic(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_logistic (<a>,<b>)
     Возвращает коэффициент асимметрии логистического распределения
     Logistic(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_logistic (<a>,<b>)
     Возвращает коэффициент куртозиса логистического распределения
     Logistic(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_logistic (<a>,<b>)
 -- Функция: random_logistic (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     логистического распределения Logistic(a,b) с b>0.  Вызов
     ‘random_logistic’ с третьим аргументом <n> дает случайную выборку
     размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_pareto (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Парето Pareto(a,b) с a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_pareto (<x>,<a>,<b>)
     Возвращает значение функции распределения Парето Pareto(a,b) с
     a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_pareto (<q>,<a>,<b>)
     Возвращает <q>-квантиль распределения Парето Pareto(a,b) с a,b>0,
     т.е.  значение функции обратной ‘cdf_pareto’.  Значение аргумента
     <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_pareto (<a>,<b>)
     Возвращает среднее значение распределения Парето Pareto(a,b) с
     a>1,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_pareto (<a>,<b>)
     Возвращает дисперсию распределения Парето Pareto(a,b) с a>2,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_pareto (<a>,<b>)
     Возвращает стандартное отклонение распределения Парето Pareto(a,b)
     с a>2,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_pareto (<a>,<b>)
     Возвращает коэффициент асимметрии распределения Парето Pareto(a,b)
     с a>3,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_pareto (<a>,<b>)
     Возвращает коэффициент куртозиса распределения Парето Pareto(a,b) с
     a>4,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_pareto (<a>,<b>)
 -- Функция: random_pareto (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Парето Pareto(a,b) с a>0,b>0.  Вызов ‘random_pareto’
     с третьим аргументом <n> дает случайную выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_weibull (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Вейбулла Weibull(a,b) с a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_weibull (<x>,<a>,<b>)
     Возвращает значение функции распределения Вейбулла Weibull(a,b) с
     a,b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_weibull (<q>,<a>,<b>)
     Возвращает <q>-квантиль распределения Вейбулла Weibull(a,b) с
     a,b>0, т.е.  значение функции обратной ‘cdf_weibull’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_weibull (<a>,<b>)
     Возвращает среднее значение распределения Вейбулла Weibull(a,b) с
     a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_weibull (<a>,<b>)
     Возвращает дисперсию распределения Вейбулла Weibull(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_weibull (<a>,<b>)
     Возвращает стандартное отклонение распределения Вейбулла
     Weibull(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_weibull (<a>,<b>)
     Возвращает коэффициент асимметрии распределения Вейбулла
     Weibull(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_weibull (<a>,<b>)
     Возвращает коэффициент куртозиса распределения Вейбулла
     Weibull(a,b) с a,b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_weibull (<a>,<b>)
 -- Функция: random_weibull (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Вейбулла Weibull(a,b) с a,b>0.  Вызов
     ‘random_continuous_weibull’ с третьим аргументом <n> дает случайную
     выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_rayleigh (<x>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Релея Rayleigh(b) с b>0 в точке <x>.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     плотности вероятности распределения Вейбулла.

          (%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>)
     Возвращает значение функции распределения Релея Rayleigh(b) с b>0 в
     точке <x>.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     функции распределения распределения Вейбулла.

          (%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>)
     Возвращает <q>-квантиль распределения Релея Rayleigh(b) с b>0, т.е.
     значение функции обратной ‘cdf_rayleigh’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     квантили распределения Вейбулла.

          (%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>)
     Возвращает среднее значение распределения Релея Rayleigh(b) с b>0.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     среднего значения распределения Вейбулла.

          (%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>)
     Возвращает дисперсию распределения Релея Rayleigh(b) с b>0.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     дисперсии распределения Вейбулла.

          (%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>)
     Возвращает стандартное отклонение распределения Релея Rayleigh(b) с
     b>0.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     стандартного отклонения распределения Вейбулла.

          (%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>)
     Возвращает коэффициент асимметрии распределения Релея Rayleigh(b) с
     b>0.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента асимметрии распределения Вейбулла.

          (%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>)
     Возвращает коэффициент куртозиса распределения Релея Rayleigh(b) с
     b>0.

     Случайная переменная Rayleigh(b) эквивалентна случайной переменной
     Weibull(2,1/b).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента куртозиса распределения Вейбулла.

          (%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>)
     Возвращает значение симулированной случайной переменной
     распределения Релея Rayleigh(b) с b>0.  Вызов ‘random_rayleigh’ со
     вторым аргументом <n> дает случайную выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_laplace (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Лапласа Laplace(a,b) с b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_laplace (<x>,<a>,<b>)
     Возвращает значение функции распределения Лапласа Laplace(a,b) с
     b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_laplace (<q>,<a>,<b>)
     Возвращает <q>-квантиль распределения Лапласа Laplace(a,b) с b>0,
     т.е.  значение функции обратной ‘cdf_laplace’.  Значение аргумента
     <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_laplace (<a>,<b>)
     Возвращает среднее значение распределения Лапласа Laplace(a,b) с
     b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_laplace (<a>,<b>)
     Возвращает дисперсию распределения Лапласа Laplace(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_laplace (<a>,<b>)
     Возвращает стандартное отклонение распределения Лапласа
     Laplace(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_laplace (<a>,<b>)
     Возвращает коэффициент асимметрии распределения Лапласа
     Laplace(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_laplace (<a>,<b>)
     Возвращает коэффициент куртозиса распределения Лапласа Laplace(a,b)
     с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_laplace (<a>,<b>)
 -- Функция: random_laplace (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Лапласа Laplace(a,b) с b>0.  Вызов ‘random_laplace’ с
     третьим аргументом <n> дает случайную выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_cauchy (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Коши Cauchy(a,b) с b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_cauchy (<x>,<a>,<b>)
     Возвращает значение функции распределения Коши Cauchy(a,b) с b>0 в
     точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_cauchy (<q>,<a>,<b>)
     Возвращает <q>-квантиль распределения Коши Cauchy(a,b) с b>0, т.е.
     значение функции обратной ‘cdf_cauchy’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_cauchy (<a>,<b>)
 -- Функция: random_cauchy (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Коши Cauchy(a,b) с b>0.  Вызов ‘random_cauchy’ с
     третьим аргументом <n> дает случайную выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_gumbel (<x>,<a>,<b>)
     Возвращает значение функции плотности вероятности распределения
     Гумбеля Gumbel(a,b) с b>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_gumbel (<x>,<a>,<b>)
     Возвращает значение функции распределения Гумбеля Gumbel(a,b) с b>0
     в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_gumbel (<q>,<a>,<b>)
     Возвращает <q>-квантиль распределения Гумбеля Gumbel(a,b) с b>0,
     т.е.  значение функции обратной ‘cdf_gumbel’.  Значение аргумента
     <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_gumbel (<a>,<b>)
     Возвращает среднее значение распределения Гумбеля Gumbel(a,b) с
     b>0.

          (%i1) load ("distrib")$
          (%i2) assume(b>0)$  mean_gumbel(a,b);
          (%o3)                     %gamma b + a
     где ‘%gamma’ – константа Эйлера-Маскерони.  См.  также ‘%gamma’.

 -- Функция: var_gumbel (<a>,<b>)
     Возвращает дисперсию распределения Гумбеля Gumbel(a,b) с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_gumbel (<a>,<b>)
     Возвращает стандартное отклонение распределения Гумбеля Gumbel(a,b)
     с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_gumbel (<a>,<b>)
     Возвращает коэффициент асимметрии распределения Гумбеля Gumbel(a,b)
     с b>0.

          (%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’ – дзэта-функция Римана.

 -- Функция: kurtosis_gumbel (<a>,<b>)
     Возвращает коэффициент куртозиса распределения Гумбеля Gumbel(a,b)
     с b>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_gumbel (<a>,<b>)
 -- Функция: random_gumbel (<a>,<b>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Гумбеля Gumbel(a,b) с b>0.  Вызов ‘random_gumbel’ с
     третьим аргументом <n> дает случайную выборку размера <n>.

     Реализован только метод обращения.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.


File: maxima.info,  Node: Функции и переменные для дискретных распределений,  Prev: Функции и переменные для непрерывных распределений,  Up: Пакет distrib

45.3 Функции и переменные для дискретных распределений
======================================================

 -- Функция: pdf_binomial (<x>,<n>,<p>)
     Возвращает значение функции плотности вероятности биномиального
     распределения Binomial(n,p) с 0<p<1 и положительным целым n в точке
     <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_binomial (<x>,<n>,<p>)
     Возвращает значение функции распределения биномиального
     распределения Binomial(n,p) с 0<p<1 и положительным целым n в точке
     <x>.

     Эта функция вычисляется численно, если значение глобальной
     переменной ‘numer’ рано ‘true’, иначе возвращается номинальное
     выражение.

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

 -- Функция: quantile_binomial (<q>,<n>,<p>)
     Возвращает <q>-квантиль биномиального распределения Binomial(n,p) с
     0<p<1 и положительным целым n, т.е.  значение функции обратной
     ‘cdf_binomial’.  Значение аргумента <q> должно быть в интервале
     [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_binomial (<n>,<p>)
     Возвращает среднее значение биномиального распределения
     Binomial(n,p) с 0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_binomial (<n>,<p>)
     Возвращает дисперсию биномиального распределения Binomial(n,p) с
     0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_binomial (<n>,<p>)
     Возвращает стандартное отклонение биномиального распределения
     Binomial(n,p) с 0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_binomial (<n>,<p>)
     Возвращает коэффициент асимметрии биномиального распределения
     Binomial(n,p) с 0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_binomial (<n>,<p>)
     Возвращает коэффициент куртозиса биномиального распределения
     Binomial(n,p) с 0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_binomial_algorithm
     Значение по умолчанию: ‘kachit’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной биномиального распределения.  Реализованы алгоритмы
     ‘kachit’, ‘bernoulli’ и ‘inverse’:

        • ‘kachit’ – основан на алгоритме, описанном в
          Kachitvichyanukul, V. and Schmeiser, B.W. (1988) <Binomial
          Random Variate Generation>.  Communications of the ACM, 31,
          Feb., 216.

        • ‘bernoulli’ – основан на моделировании опытов Бернулли.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_binomial’.

 -- Функция: random_binomial (<n>,<p>)
 -- Функция: random_binomial (<n>,<p>,<m>)
     Возвращает значение симулированной случайной переменной
     биномиального распределения Binomial(n,p) с 0<p<1 и положительным
     целым n.  Вызов ‘random_binomial’ с третьим аргументом <m> дает
     случайную выборку размера <m>.

     Для этой функции реализовано три алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_binomial_algorithm’, которая по умолчанию равна ‘kachit’.

     См.  также ‘random_binomial_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_poisson (<x>,<m>)
     Возвращает значение функции плотности вероятности распределения
     Пуассона Poisson(m) с m>0 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_poisson (<x>,<m>)
     Возвращает значение функции распределения Пуассона Poisson(m) с m>0
     в точке <x>.

     Эта функция вычисляется численно, если значение глобальной
     переменной ‘numer’ рано ‘true’, иначе возвращается номинальное
     выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_poisson(3,5);
          (%o2)                   cdf_poisson(3, 5)
          (%i3) cdf_poisson(3,5), numer;
          (%o3)                   .2650259152973617

 -- Функция: quantile_poisson (<q>,<m>)
     Возвращает <q>-квантиль распределения Пуассона Poisson(m) с m>0,
     т.е.  значение функции обратной ‘cdf_poisson’.  Значение аргумента
     <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_poisson (<m>)
     Возвращает среднее значение распределения Пуассона Poisson(m) с
     m>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_poisson (<m>)
     Возвращает дисперсию распределения Пуассона Poisson(m) с m>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_poisson (<m>)
     Возвращает стандартное отклонение распределения Пуассона Poisson(m)
     с m>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_poisson (<m>)
     Возвращает коэффициент асимметрии распределения Пуассона Poisson(m)
     с m>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_poisson (<m>)
     Возвращает коэффициент куртозиса распределения Пуассона Poisson(m)
     с m>0.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_poisson_algorithm
     Значение по умолчанию: ‘ahrens_dieter’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной распределения Пуассона.  Реализованы алгоритмы
     ‘ahrens_dieter’ и ‘inverse’:

        • ‘ahrens_dieter’ – основан на алгоритме, описанном в 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.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_poisson’.

 -- Функция: random_poisson (<m>)
 -- Функция: random_poisson (<m>,<n>)
     Возвращает значение симулированной случайной переменной
     распределения Пуассона Poisson(m) с m>0.  Вызов ‘random_poisson’ со
     вторым аргументом <n> дает случайную выборку размера <n>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_poisson_algorithm’, которая по умолчанию равна
     ‘ahrens_dieter’.

     См.  также ‘random_poisson_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_bernoulli (<x>,<p>)
     Возвращает значение функции плотности вероятности распределения
     Бернулли Bernoulli(p) с 0<p<1 в точке <x>.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     плотности вероятности биномиального распределения.

          (%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>)
     Возвращает значение функции распределения Бернулли Bernoulli(p) с
     0<p<1 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_bernoulli (<q>,<p>)
     Возвращает <q>-квантиль распределения Бернулли Bernoulli(p) с
     0<p<1, т.е.  значение функции обратной ‘cdf_bernoulli’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_bernoulli (<p>)
     Возвращает среднее значение распределения Бернулли Bernoulli(p) с
     0<p<1.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     среднего значения биномиального распределения.

          (%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>)
     Возвращает дисперсию распределения Бернулли Bernoulli(p) с 0<p<1.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     дисперсии биномиального распределения.

          (%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>)
     Возвращает стандартное отклонение распределения Бернулли
     Bernoulli(p) с 0<p<1.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     стандартного отклонения биномиального распределения.

          (%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>)
     Возвращает коэффициент асимметрии распределения Бернулли
     Bernoulli(p) с 0<p<1.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента асимметрии биномиального распределения.

          (%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>)
     Возвращает коэффициент куртозиса распределения Бернулли
     Bernoulli(p) с 0<p<1.

     Случайная переменная Bernoulli(p) эквивалентна случайной переменной
     Binomial(1,p).  Таким образом, если недостаточно информации для
     вычисления результата, возвращается невычисляемая форма в терминах
     коэффициента куртозиса биномиального распределения.

          (%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>)
     Возвращает значение симулированной случайной переменной
     распределения Бернулли Bernoulli(p) с 0<p<1.  Вызов
     ‘random_bernoulli’ со вторым аргументом <n> дает случайную выборку
     размера <n>.

     Для вычисления используется встроенная Maxima функция ‘random’.

     См.  также ‘random’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_geometric (<x>,<p>)
     Возвращает значение функции плотности вероятности геометрического
     распределения Geometric(p) с 0<p<1 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_geometric (<x>,<p>)
     Возвращает значение функции распределения геометрического
     распределения Geometric(p) с 0<p<1 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_geometric (<q>,<p>)
     Возвращает <q>-квантиль геометрического распределения Geometric(p)
     с 0<p<1, т.е.  значение функции обратной ‘cdf_geometric’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_geometric (<p>)
     Возвращает среднее значение геометрического распределения
     Geometric(p) с 0<p<1.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_geometric (<p>)
     Возвращает дисперсию геометрического распределения Geometric(p) с
     0<p<1.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_geometric (<p>)
     Возвращает стандартное отклонение геометрического распределения
     Geometric(p) с 0<p<1.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_geometric (<p>)
     Возвращает коэффициент асимметрии геометрического распределения
     Geometric(p) с 0<p<1.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_geometric (<p>)
     Возвращает коэффициент куртозиса геометрического распределения
     Geometric(p) с 0<p<1.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_geometric_algorithm
     Значение по умолчанию: ‘bernoulli’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной геометрического распределения.  Реализованы алгоритмы
     ‘bernoulli’, ‘devroye’ и ‘inverse’:

        • ‘bernoulli’ – основан на моделировании опытов Бернулли.

        • ‘devroye’ – основан на алгоритме, описанном в Devroye, L.
          (1986) <Non-Uniform Random Variate Generation.> Springer
          Verlag, p.  480.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_geometric’.

 -- Функция: random_geometric (<p>)
 -- Функция: random_geometric (<p>,<n>)
     Возвращает значение симулированной случайной переменной
     геометрического распределения Geometric(p) с 0<p<1.  Вызов
     ‘random_geometric’ со вторым аргументом <n> дает случайную выборку
     размера <n>.

     Для этой функции реализовано три алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_geometric_algorithm’, которая по умолчанию равна
     ‘bernoulli’.

     См.  также ‘random_geometric_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_discrete_uniform (<x>,<n>)
     Возвращает значение функции плотности вероятности равномерного
     дискретного распределения Discrete Uniform(n) со строго
     положительным целым n в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_discrete_uniform (<x>,<n>)
     Возвращает значение функции распределения равномерного дискретного
     распределения Discrete Uniform(n) со строго положительным целым n в
     точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_discrete_uniform (<q>,<n>)
     Возвращает <q>-квантиль равномерного дискретного распределения
     Discrete Uniform(n) со строго положительным целым n, т.е.  значение
     функции обратной ‘cdf_discrete_uniform’.  Значение аргумента <q>
     должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_discrete_uniform (<n>)
     Возвращает среднее значение равномерного дискретного распределения
     Discrete Uniform(n) со строго положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_discrete_uniform (<n>)
     Возвращает дисперсию равномерного дискретного распределения
     Discrete Uniform(n) со строго положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_discrete_uniform (<n>)
     Возвращает стандартное отклонение равномерного дискретного
     распределения Discrete Uniform(n) со строго положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_discrete_uniform (<n>)
     Возвращает коэффициент асимметрии равномерного дискретного
     распределения Discrete Uniform(n) со строго положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_discrete_uniform (<n>)
     Возвращает коэффициент куртозиса равномерного дискретного
     распределения Discrete Uniform(n) со строго положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: random_discrete_uniform (<n>)
 -- Функция: random_discrete_uniform (<n>,<m>)
     Возвращает значение симулированной случайной переменной
     равномерного дискретного распределения Discrete Uniform(n) со
     строго положительным целым n.  Вызов ‘random_discrete_uniform’ со
     вторым аргументом <m> дает случайную выборку размера <m>.

     Для вычисления используется встроенная Maxima функция ‘random’.

     См.  также ‘random’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_hypergeometric (<x>,<n1>,<n2>,<n>)
     Возвращает значение функции плотности вероятности
     гипергеометрического распределения Hypergeometric(n1,n2,n) с
     неотрицательными целыми <n1>, <n2>, <n> при условии n<=n1+n2 в
     точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_hypergeometric (<x>,<n1>,<n2>,<n>)
     Возвращает значение функции распределения гипергеометрического
     распределения Hypergeometric(n1,n2,n) с неотрицательными целыми
     <n1>, <n2>, <n> при условии n<=n1+n2 в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: quantile_hypergeometric (<q>,<n1>,<n2>,<n>)
     Возвращает <q>-квантиль гипергеометрического распределения
     Hypergeometric(n1,n2,n) с неотрицательными целыми <n1>, <n2>, <n>
     при условии n<=n1+n2, т.е.  значение функции обратной
     ‘cdf_hypergeometric’.  Значение аргумента <q> должно быть в
     интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_hypergeometric (<n1>,<n2>,<n>)
     Возвращает среднее значение гипергеометрического распределения
     Hypergeometric(n1,n2,n), с неотрицательными целыми <n1>, <n2>, <n>
     при условии n<=n1+n2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_hypergeometric (<n1>,<n2>,<n>)
     Возвращает дисперсию гипергеометрического распределения
     Hypergeometric(n1,n2,n), с неотрицательными целыми <n1>, <n2>, <n>
     при условии n<=n1+n2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_hypergeometric (<n1>,<n2>,<n>)
     Возвращает стандартное отклонение гипергеометрического
     распределения Hypergeometric(n1,n2,n), с неотрицательными целыми
     <n1>, <n2>, <n> при условии n<=n1+n2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_hypergeometric (<n1>,<n2>,<n>)
     Возвращает коэффициент асимметрии гипергеометрического
     распределения Hypergeometric(n1,n2,n), с неотрицательными целыми
     <n1>, <n2>, <n> при условии n<=n1+n2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_hypergeometric (<n1>,<n2>,<n>)
     Возвращает коэффициент куртозиса гипергеометрического распределения
     Hypergeometric(n1,n2,n), с неотрицательными целыми <n1>, <n2>, <n>
     при условии n<=n1+n2.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_hypergeometric_algorithm
     Значение по умолчанию: ‘kachit’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной гипергеометрического распределения.  Реализованы
     алгоритмы ‘kachit’ и ‘inverse’:

        • ‘kachit’ – основан на алгоритме, описанном в
          Kachitvichyanukul, V., Schmeiser, B.W. (1985) <Computer
          generation of hypergeometric random variates.> Journal of
          Statistical Computation and Simulation 22, 127-145.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_hypergeometric’.

 -- Функция: random_hypergeometric (<n1>,<n2>,<n>)
 -- Функция: random_hypergeometric (<n1>,<n2>,<n>,<m>)
     Возвращает значение симулированной случайной переменной
     гипергеометрического распределения Hypergeometric(n1,n2,n) с
     неотрицательными целыми <n1>, <n2>,<n> при условии n<=n1+n2.  Вызов
     ‘random_hypergeometric’ с четвертым аргументом <m> дает случайную
     выборку размера <m>.

     Для этой функции реализовано два алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_hypergeometric_algorithm’, которая по умолчанию равна
     ‘kachit’.

     См.  также ‘random_hypergeometric_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: pdf_negative_binomial (<x>,<n>,<p>)
     Возвращает значение функции плотности вероятности отрицательного
     биномиального распределения Negative Binomial(n,p) с 0<p<1 и
     положительным целым n в точке <x>.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: cdf_negative_binomial (<x>,<n>,<p>)
     Возвращает значение функции распределения отрицательного
     биномиального распределения Negative Binomial(n,p) с 0<p<1 и
     положительным целым n в точке <x>.

     Эта функция вычисляется численно, если значение глобальной
     переменной ‘numer’ рано ‘true’, иначе возвращается номинальное
     выражение.

          (%i1) load ("distrib")$
          (%i2) cdf_negative_binomial(3,4,1/8);
                                                       1
          (%o2)            cdf_negative_binomial(3, 4, -)
                                                       8
          (%i3) cdf_negative_binomial(3,4,1/8), numer;
          (%o3)                  .006238937377929698

 -- Функция: quantile_negative_binomial (<q>,<n>,<p>)
     Возвращает <q>-квантиль отрицательного биномиального распределения
     Negative Binomial(n,p) с 0<p<1 и положительным целым n, т.е.
     значение функции обратной ‘cdf_negative_binomial’.  Значение
     аргумента <q> должно быть в интервале [0,1].

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: mean_negative_binomial (<n>,<p>)
     Возвращает среднее значение отрицательного биномиального
     распределения Negative Binomial(n,p) с 0<p<1 и положительным целым
     n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: var_negative_binomial (<n>,<p>)
     Возвращает дисперсию отрицательного биномиального распределения
     Negative Binomial(n,p) с 0<p<1 и положительным целым n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: std_negative_binomial (<n>,<p>)
     Возвращает стандартное отклонение отрицательного биномиального
     распределения Negative Binomial(n,p) с 0<p<1 и положительным целым
     n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: skewness_negative_binomial (<n>,<p>)
     Возвращает коэффициент асимметрии отрицательного биномиального
     распределения Negative Binomial(n,p) с 0<p<1 и положительным целым
     n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Функция: kurtosis_negative_binomial (<n>,<p>)
     Возвращает коэффициент куртозиса отрицательного биномиального
     распределения Negative Binomial(n,p) с 0<p<1 и положительным целым
     n.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.

 -- Управляющая переменная: random_negative_binomial_algorithm
     Значение по умолчанию: ‘bernoulli’

     Определяет алгоритм, выбранный для симулирования случайной
     переменной отрицательного биномиального распределения.  Реализованы
     алгоритмы ‘devroye’, ‘bernoulli’ и ‘inverse’:

        • ‘devroye’ – основан на алгоритме, описанном в Devroye, L.
          (1986) <Non-Uniform Random Variate Generation>.  Springer
          Verlag, p.  480.

        • ‘bernoulli’ – основан на моделировании опытов Бернулли.

        • ‘inverse’ – основан на методе обращения.

     См.  также ‘random_negative_binomial’.

 -- Функция: random_negative_binomial (<n>,<p>)
 -- Функция: random_negative_binomial (<n>,<p>,<m>)
     Возвращает значение симулированной случайной переменной
     отрицательного биномиального распределения Negative Binomial(n,p) с
     0<p<1 и положительным целым n.  Вызов ‘random_negative_binomial’ с
     третьим аргументом <m> дает случайную выборку размера <m>.

     Для этой функции реализовано три алгоритма.  Используемый алгоритм
     определяется значением глобальной переменной
     ‘random_negative_binomial_algorithm’, которая по умолчанию равна
     ‘bernoulli’.

     См.  также ‘random_negative_binomial_algorithm’.

     Для использования этой функции, ее необходимо загрузить командой
     ‘load("distrib")’.


File: maxima.info,  Node: Пакет draw,  Next: Пакет dynamics,  Prev: Пакет distrib,  Up: Top

46 Пакет draw
*************

* Menu:

* Введение в пакет draw::
* Функции и переменные пакета draw::
* Функции и переменные для картин::
* Функции и переменные для карты мира::


File: maxima.info,  Node: Введение в пакет draw,  Next: Функции и переменные пакета draw,  Prev: Пакет draw,  Up: Пакет draw

46.1 Введение в пакет draw
==========================

‘draw’ является интерфейсом Maxima к программе Gnuplot.

   На уровне Maxima есть три основные функции: ‘draw2d’, ‘draw3d’ и
‘draw’.

   Более сложные примеры использования пакета можно найти по ссылке:

   <http://www.telefonica.net/web2/biomates/maxima/gpdraw>

   Для работы программы требуется Gnuplot 4.2.


File: maxima.info,  Node: Функции и переменные пакета draw,  Next: Функции и переменные для картин,  Prev: Введение в пакет draw,  Up: Пакет draw

46.2 Функции и переменные пакета draw
=====================================

 -- Графическая опция: xrange
     Значение по умолчанию: ‘auto’

     Если ‘xrange’ равно ‘auto’, то диапазон координаты <x> вычисляется
     автоматически.

     Если требуется определенный интервал <x>, он должен быть задан в
     форме списка, например ‘xrange=[-2, 3]’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(xrange = [-3,5],
                       explicit(x^2,x,-1,1))$

     См.  ‘yrange’ и ‘zrange’.

 -- Графическая опция: yrange
     Значение по умолчанию: ‘auto’

     Если ‘yrange’ равно ‘auto’, то диапазон координаты <y> вычисляется
     автоматически.

     Если требуется определенный интервал <y>, он должен быть задан в
     форме списка, например ‘yrange=[-2, 3]’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(yrange = [-2,3],
                       explicit(x^2,x,-1,1),
                       xrange = [-3,3])$

     См.  ‘xrange’ и ‘zrange’.

 -- Графическая опция: zrange
     Значение по умолчанию: ‘auto’

     Если ‘zrange’ равно ‘auto’, то диапазон координаты <z> вычисляется
     автоматически.

     Если требуется определенный интервал <z>, он должен быть задан в
     форме списка, например ‘zrange=[-2, 3]’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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’.

 -- Графическая опция: 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’.

 -- Графическая опция: terminal
     Значение по умолчанию: ‘screen’

     Выбирает терминал, используемый программой Gnuplot.  Возможные
     значения: ‘screen’ (умолчание), ‘png’, ‘jpg’, ‘eps’, ‘eps_color’,
     ‘gif’, ‘animated_gif’ и ‘wxt’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Примеры:

          (%i1) load("draw")$
          (%i2) /* screen terminal (default) */
                draw2d(explicit(x^2,x,-1,1))$
          (%i3) /* png file */
                draw2d(terminal  = 'png,
                       pic_width = 300,
                       explicit(x^2,x,-1,1))$
          (%i4) /* jpg file */
                draw2d(terminal   = 'jpg,
                       pic_width  = 300,
                       pic_height = 300,
                       explicit(x^2,x,-1,1))$
          (%i5) /* eps file */
                draw2d(file_name = "myfile",
                       explicit(x^2,x,-1,1),
                       terminal  = 'eps)$
          (%i6) /* wxwidgets window */
                draw2d(explicit(x^2,x,-1,1),
                       terminal  = 'wxt)$

     Файл анимированного 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’, ‘pic_width’, ‘pic_height’ и ‘delay’.

 -- Графическая опция: grid
     Значение по умолчанию: ‘false’

     Если ‘grid’ равно ‘true’, то на плоскости <xy> будет изображена
     сетка.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

 -- Графическая опция: title
     Значение по умолчанию: ‘""’ (пустая строка)

     Опция ‘title’ – строка, содержащая основной заголовок сцены.  По
     умолчанию заголовок отсутствует.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(exp(u),u,-2,2),
                       title = "Exponential function")$

 -- Графическая опция: xlabel
     Значение по умолчанию: ‘""’ (пустая строка)

     Опция ‘xlabel’ – строка, содержащая метку для оси <x>.  По
     умолчанию метка отсутствует.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(xlabel = "Time",
                       explicit(exp(u),u,-2,2),
                       ylabel = "Population")$

     См.  ‘ylabel’ и ‘zlabel’.

 -- Графическая опция: ylabel
     Значение по умолчанию: ‘""’ (пустая строка)

     Опция ‘ylabel’ – строка, содержащая метку для оси <y>.  По
     умолчанию метка отсутствует.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(xlabel = "Time",
                       ylabel = "Population",
                       explicit(exp(u),u,-2,2) )$

     См.  ‘xlabel’ и ‘zlabel’.

 -- Графическая опция: zlabel
     Значение по умолчанию: ‘""’ (пустая строка)

     Опция ‘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’.

 -- Графическая опция: 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’.

 -- Графическая опция: ytics
     Значение по умолчанию: ‘auto’

     Управляет методом изображения делений на оси <y>.

     См.  ‘xtics’ для полного описания.

 -- Графическая опция: ztics
     Значение по умолчанию: ‘auto’

     Управляет методом изображения делений на оси <z>.

     См.  ‘xtics’ для полного описания.

 -- Графическая опция: xtics_rotate
     Значение по умолчанию: ‘false’

     Если ‘xtics_rotate’ равно ‘true’, то деления на оси <x>
     поворачиваются на 90 градусов.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: ytics_rotate
     Значение по умолчанию: ‘false’

     Если ‘ytics_rotate’ равно ‘true’, то деления на оси <y>
     поворачиваются на 90 градусов.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: ztics_rotate
     Значение по умолчанию: ‘false’

     Если ‘ztics_rotate’ равно ‘true’, то деления на оси <z>
     поворачиваются на 90 градусов.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: xtics_axis
     Значение по умолчанию: ‘false’

     Если ‘xtics_axis’ равно ‘true’, то деления и их метки изображаются
     вдоль оси <x>, если ‘false’, то деления изображаются на границе.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: ytics_axis
     Значение по умолчанию: ‘false’

     Если ‘ytics_axis’ равно ‘true’, то деления и их метки изображаются
     вдоль оси <y>, если ‘false’, то деления изображаются на границе.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: ztics_axis
     Значение по умолчанию: ‘false’

     Если ‘ztics_axis’ равно ‘true’, то деления и их метки изображаются
     вдоль оси <z>, если ‘false’, то деления изображаются на границе.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: 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_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’.

 -- Графическая опция: 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_color
     Значение по умолчанию: ‘"black"’

     ‘xaxis_color’ – определяет цвет оси <x> axis.  См.  ‘color’ для
     способа задания цвета.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       xaxis       = true,
                       xaxis_color = red)$

     См.  ‘xaxis’, ‘xaxis_width’ и ‘xaxis_type’.

 -- Графическая опция: 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_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’.

 -- Графическая опция: 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_color
     Значение по умолчанию: ‘"black"’

     ‘yaxis_color’ – определяет цвет оси <y> axis.  См.  ‘color’ для
     способа задания цвета.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(explicit(x^3,x,-1,1),
                       yaxis       = true,
                       yaxis_color = red)$

     См.  ‘yaxis’, ‘yaxis_width’ и ‘yaxis_type’.

 -- Графическая опция: zaxis
     Значение по умолчанию: ‘false’

     Если ‘zaxis’ равно ‘true’, то ось <x> изображается на трехмерных
     графиках.  Эта опция не влияет на двумерные графики.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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_width
     Значение по умолчанию: 1

     ‘zaxis_width’ – толщина оси <z>.  Значение должно быть
     положительным числом.  Эта опция не влияет на двумерные графики.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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’.

 -- Графическая опция: zaxis_type
     Значение по умолчанию: ‘dots’

     ‘zaxis_type’ – задает стиль изображения оси <z>.  Возможные
     значения: ‘solid’ и ‘dots’.  Эта опция не влияет на двумерные
     графики.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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_color
     Значение по умолчанию: ‘"black"’

     ‘zaxis_color’ – определяет цвет оси <z> axis.  См.  ‘color’ для
     способа задания цвета.  Эта опция не влияет на двумерные графики.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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’.

 -- Графическая опция: rot_vertical
     Значение по умолчанию: 60

     ‘rot_vertical’ – угол поворота (в градусах) вокруг оси <x> точки
     наблюдения в трехмерных сценах.

     Угол может быть в интервале [0, 180].

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

     См.  ‘rot_horizontal’.

 -- Графическая опция: rot_horizontal
     Значение по умолчанию: 30

     ‘rot_horizontal’ – угол поворота (в градусах) вокруг оси <z> точки
     наблюдения в трехмерных сценах.

     Угол может быть в интервале [0, 360].

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%i1) load("draw")$
          (%i2) draw3d(rot_vertical = 170,
                       rot_horizontal = 360,
                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$

     См.  ‘rot_vertical’.

 -- Графическая опция: xy_file
     Значение по умолчанию: ‘""’ (пустая строка)

     ‘xy_file’ – имя файла, в котором будут сохранены координаты после
     щелчка мышкой и нажатия клавиши ’x’.  По умолчанию координаты не
     сохраняются.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

 -- Графическая опция: user_preamble
     Значение по умолчанию: ‘""’ (пустая строка)

     Опытные пользователи Gnuplot могут использовать эту опцию для
     тонкой настройке поведения Gnuplot путем задания установок до
     комманд ‘plot’ или ‘splot’.

     Значение этой опции должно быть строкой или списком строк (по одной
     на строку).

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

     Терминал dumb не поддерживается пакетом ‘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")$

 -- Графическая опция: file_name
     Значение по умолчанию: ‘"maxima_out"’

     Это имя файла, в котром терминалы ‘png’, ‘jpg’, ‘eps’ и ‘eps_color’
     сохраняют графику.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Пример:

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

     См.  ‘terminal’, ‘pic_width’ и ‘pic_height’.

 -- Графическая опция: delay
     Значение по умолчанию: 5

     Это задержка в 1/100 секунды между кадрами анимированного gif.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘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’, ‘pic_width’ и ‘pic_height’.

 -- Графическая опция: pic_width
     Значение по умолчанию: 640

     Это ширина изображения, создаваемого терминалами ‘png’ и ‘jpg’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Пример:

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

     См.  ‘terminal’, ‘file_name’ и ‘pic_height’.

 -- Графическая опция: pic_height
     Значение по умолчанию: 640

     Это высота изображения, создаваемого терминалами ‘png’ и ‘jpg’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Пример:

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

     См.  ‘terminal’, ‘file_name’ и ‘pic_width’.

 -- Графическая опция: eps_width
     Значение по умолчанию: 12

     Это ширина изображения Postscript (в сантиметрах), создаваемого
     терминалами ‘eps’ и ‘eps_color’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(terminal   = 'eps,
                       eps_width  = 3,
                       eps_height = 3,
                       explicit(x^2,x,-1,1))$

     См.  ‘terminal’, ‘file_name’ и ‘eps_height’.

 -- Графическая опция: eps_height
     Значение по умолчанию: 8

     Это высота изображения Postscript (в сантиметрах), создаваемого
     терминалами ‘eps’ и ‘eps_color’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.  Она также может использоваться
     как аргумент функции ‘draw’.

     Пример:

          (%i1) load("draw")$
          (%i2) draw2d(terminal   = 'eps,
                       eps_width  = 3,
                       eps_height = 3,
                       explicit(x^2,x,-1,1))$

     См.  ‘terminal’, ‘file_name’ и ‘eps_width’.

 -- Графическая опция: axis_bottom
     Значение по умолчанию: ‘true’

     Если ‘axis_bottom’ равно ‘true’, то на двумерных сценах
     изображается нижняя ось.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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’, то на двумерных сценах изображается
     левая ось.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

     См.  ‘axis_bottom’, ‘axis_top’, ‘axis_right’ и ‘axis_3d’.

 -- Графическая опция: axis_top
     Значение по умолчанию: ‘true’

     Если ‘axis_top’ равно ‘true’, то на двумерных сценах отображается
     верхняя ось.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

     См.  ‘axis_bottom’, ‘axis_left’, ‘axis_right’ и ‘axis_3d’.

 -- Графическая опция: axis_right
     Значение по умолчанию: ‘true’

     Если ‘axis_right’ равно ‘true’, то на двумерных сценах отображается
     правая ось.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

     См.  ‘axis_bottom’, ‘axis_left’, ‘axis_top’ и ‘axis_3d’.

 -- Графическая опция: axis_3d
     Значение по умолчанию: ‘true’

     Если ‘axis_3d’ равно ‘true’, то оси <x>, <y> и <z> изображаются на
     трехмерных сценах.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

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

     См.  ‘axis_bottom’, ‘axis_left’, ‘axis_top’ и ‘axis_right’ для двух
     измерений.

 -- Графическая опция: palette
     Значение по умолчанию: ‘color’

     ‘palette’ определяет, как отобразить реальные значения матрицы,
     передаваемые в объект ‘image’, в компоненты цвета.

     ‘palette’ – вектор тремя компонентами со значеним в пределах от -36
     до +36.  Каждое значение является индексом для формулы,
     отображающей уровни в красный, зеленый и синий цвета
     соответственно:
           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]’ соответственно.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Примеры:

          (%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’.

 -- Графическая опция: colorbox
     Значение по умолчанию: ‘true’

     Если ‘colorbox’ равно ‘true’, то палитра цветов изображается вместе
     с объектами изображения ‘image’.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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’.

 -- Графическая опция: enhanced3d
     Значение по умолчанию: ‘false’

     Если ‘enhanced3d’ равно ‘true’, то поверхности в трехмерных
     графиках окрашиваются, другими словами, включается Gnuplot мода
     pm3d.

     См.  ‘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))$

 -- Графическая опция: point_size
     Значение по умолчанию: 1

     ‘point_size’ – устанавливает размер изображаемых точек.  Значение
     должно быть неотрицательным числом.

     Эта опция влияет на следующие графические объекты:
        • ‘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’, то точки соединяются линиями.

     Эта опция влияет на следующие графические объекты:
        • ‘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]]) )$

 -- Графическая опция: filled_func
     Значение по умолчанию: ‘false’

     Опция ‘filled_func’ управляет то, как заполняются области,
     ограниченные функциями.  Если ‘filled_func’ равно ‘true’, то
     область, ограниченная функцией, определенной объектом ‘explicit’ и
     низом графического окна, заполняется цветом ‘fill_color’.  Если
     ‘filled_func’ содержит функциональное выражение, то будет заполнена
     область, ограниченная этой функцией и функцией, определенной
     объектом ‘explicit’.  По умолчанию явные функции не заполняются.

     Эта опция влияет только на двумерные графические объекты
     ‘explicit’.

     Пример:

     Область, ограниченная объектом ‘explicit’ и низом графического
     окна.
          (%i1) load("draw")$
          (%i2) draw2d(fill_color  = red,
                       filled_func = true,
                       explicit(sin(x),x,0,10) )$

     Область, ограниченная объектом ‘explicit’ и функцией, определенной
     в ‘filled_func’.  Отметим, что переменная в ‘filled_func’ должна
     быть той же, что и в ‘explicit’.
          (%i1) load("draw")$
          (%i2) draw2d(fill_color  = grey,
                       filled_func = sin(x),
                       explicit(-sin(x),x,0,%pi));

     См.  ‘fill_color’ и ‘explicit’.

 -- Графическая опция: 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]]) )$

 -- Графическая опция: 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]]) )$

 -- Графическая опция: head_both
     Значение по умолчанию: ‘false’

     Если ‘head_both’ равно ‘true’, то векторы изображаются со
     окончаниями в форме двух стрелок.  Если ‘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]) )$

     См.  ‘head_length’, ‘head_angle’ и ‘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_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_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’.

 -- Графическая опция: unit_vectors
     Значение по умолчанию: ‘false’

     Если ‘unit_vectors’ равно ‘true’, все вектора изображаются с
     единичной длиной.  Это полезно при изображении векторных полей.
     Если ‘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]))$

 -- Графическая опция: 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’.

 -- Графическая опция: color
     Значение по умолчанию: ‘"black"’

     ‘color’ задает цвет линий, точек, границ многоугольников и меток.

     Цвет может быть задан как наименование или как шестнадцатиричный
     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"’.

     Цветовые компоненты в шестнадцатиричном коде представляются в форме
     ‘"#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’.

 -- Графическая опция: fill_color
     Значение по умолчанию: ‘"red"’

     ‘fill_color’ определяет цвет для заполнения многоугольников и
     двумерных ‘explicit’ функций.

     См.  ‘color’ для способа задания цвета.

 -- Графическая опция: fill_density
     Значение по умолчанию: 0

     ‘fill_density’ – число от 0 до 1, которое задает интенсивность
     цвета ‘fill_color’ в объектах ‘bars’.

     См.  ‘bars’ для примеров.

 -- Графическая опция: 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’.

 -- Графическая опция: 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))$

     См.  ‘line_width’.

 -- Графическая опция: nticks
     Значение по умолчанию: 30

     ‘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) )$

 -- Графическая опция: adapt_depth
     Значение по умолчанию: 10

     ‘adapt_depth’ – максимальное число разбиений, используемое в
     адаптивных графиках.

     Эта опция влияет только на двумерные ‘explicit’ функции.

 -- Графическая опция: key
     Значение по умолчанию: ‘""’ (пустая строка)

     ‘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) )$

 -- Графическая опция: xu_grid
     Значение по умолчанию: 30

     ‘xu_grid’ – число координат первой переменной (‘x’ в явной и ‘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’.

 -- Графическая опция: yv_grid
     Значение по умолчанию: 30

     ‘yv_grid’ – число координат второй переменной (‘y’ в явной и ‘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’.

 -- Графическая опция: surface_hide
     Значение по умолчанию: ‘false’

     Если ‘surface_hide’ равно ‘true’, то скрытые части на трехмерных
     поверхностях не изображаются.

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Пример:

          (%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)) )$

 -- Графическая опция: contour
     Значение по умолчанию: ‘none’

     Опция ‘contour’ позволяет пользователю выбрать, где изображать
     контурные линии.  Доступны следующие значения:

        • ‘none’: нет контурных линий.

        • ‘base’: контурные линии изображаются на xy плоскости.

        • ‘surface’: контурные линии изображаются на поверхности.

        • ‘both’: две контурные линии – на поверхности и на плоскости
          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’ может иметь значение в виде положительного целого
     числа, списка трех чисел или произвольного набора чисел:

        • Если ‘contour_levels’ равно положительному целому числу <n>,
          то будет изображено <n> контурных линий через равный интервал.
          По умолчанию изображается пять равноудаленных контурных линий.

        • Если ‘contour_levels’ равно списку трех чисел
          ‘[lowest,s,highest]’, то контурные линии изображаются с
          ‘lowest’ по ‘highest’ с шагом ‘s’.

        • Если ‘contour_levels’ равно набору чисел ‘{n1, n2, ...}’, то
          контурные линии изображаются для значений ‘n1’, ‘n2’, ...

     Поскольку это глобальная графическая опция, ее расположение в
     описании сцены не имеет значения.

     Примеры:

     Контурные линии, расположенные на равном расстоянии.  Число уровней
     можно настраивать.
          (%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’.

 -- Графическая опция: 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)$

 -- Графическая опция: ip_grid
     Значение по умолчанию: ‘[50, 50]’

     ‘ip_grid’ задает решетку для первой пробной выборки для неявных
     графиков.

     Эта опция влияет только на объекты типа ‘implicit’.

 -- Графическая опция: ip_grid_in
     Значение по умолчанию: ‘[5, 5]’

     ‘ip_grid_in’ задает решетку для второй пробной выборки для неявных
     графиков.

     Эта опция влияет только на объекты типа ‘implicit’.

 -- Графическая опция: x_voxel
     Значение по умолчанию: 10

     ‘x_voxel’ есть число вокселей в направлении x, используемых в
     алгоритме марширующих кубов, реализованном лоя трехмерных
     ‘implicit’ объектов.

 -- Графическая опция: y_voxel
     Значение по умолчанию: 10

     ‘y_voxel’ есть число вокселей в направлении y, используемых в
     алгоритме марширующих кубов, реализованном лоя трехмерных
     ‘implicit’ объектов.

 -- Графическая опция: z_voxel
     Значение по умолчанию: 10

     ‘z_voxel’ есть число вокселей в направлении z, используемых в
     алгоритме марширующих кубов, реализованном лоя трехмерных
     ‘implicit’ объектов.

 -- Конструктор сцены: gr2d (<графическая опция>, ..., <графический
          объект>, ...)

     Функция ‘gr2d’ строит объект, который описывает двумерную сцену.
     Аргументы есть графические опции и графические объекты.  Эта сцена
     интерпретируется последовательно: графические опции влияет на
     графические объекты, расположенные справа от них.  Некоторые
     графические опции глобально влияют на вид сцены.

     Это список графических объектов, доступных для сцены в двух
     измерениях: ‘points’, ‘polygon’, ‘rectangle’, ‘bars’, ‘ellipse’,
     ‘label’, ‘vector’, ‘explicit’, ‘implicit’, ‘polar’, ‘parametric’,
     ‘image’ и ‘geomap’.

     См.  следующие глобальные графические опции: ‘xrange’, ‘yrange’,
     ‘logx’, ‘logy’, ‘terminal’, ‘grid’, ‘title’, ‘xlabel’, ‘ylabel’,
     ‘xtics’, ‘ytics’, ‘xtics_rotate’, ‘ytics_rotate’, ‘xtics_axis’,
     ‘ytics_axis’, ‘xaxis’, ‘yaxis’, ‘xaxis_width’, ‘yaxis_width’,
     ‘xaxis_type’, ‘yaxis_type’, ‘xaxis_color’, ‘yaxis_color’,
     ‘xy_file’, ‘file_name’, ‘pic_width’, ‘pic_height’, ‘eps_width’,
     ‘eps_height’, ‘user_preamble’, ‘axis_bottom’, ‘axis_left’,
     ‘axis_top’ и ‘axis_right’.

     Для того, чтобы использовать эту функцию, ее следует загрузить
     командой ‘load("draw")’.

 -- Конструктор сцены: gr3d (<графическая опция>, ..., <графический
          объект>, ...)

     Функция ‘gr3d’ строит объект, который описывает трехмерную сцену.
     Аргументы есть графические опции и графические объекты.  Эта сцена
     интерпретируется последовательно: графические опции влияет на
     графические объекты, неположенные справа от них.  Некоторые
     графические опции глобально влияют на вид сцены.

     Это список графических объектов, доступных для сцены в трех
     измерениях: ‘points’, ‘label’, ‘vector’, ‘explicit’, ‘implicit’,
     ‘parametric’, ‘parametric_surface’ и ‘geomap’.

     См.  следующие графические опции: ‘xrange’, ‘yrange’, ‘zrange’,
     ‘logx’, ‘logy’, ‘logz’, ‘terminal’, ‘grid’, ‘title’, ‘xlabel’,
     ‘ylabel’, ‘zlabel’, ‘xtics’, ‘ytics’, ‘ztics’, ‘xtics_rotate’,
     ‘ytics_rotate’, ‘ztics_rotate’, ‘xtics_axis’, ‘ytics_axis’,
     ‘ztics_axis’, ‘xaxis’, ‘yaxis’, ‘zaxis’, ‘xaxis_width’,
     ‘yaxis_width’, ‘zaxis_width’, ‘xaxis_type’, ‘yaxis_type’,
     ‘zaxis_type’, ‘xaxis_color’, ‘yaxis_color’, ‘zaxis_color’,
     ‘xy_file’, ‘user_preamble’, ‘axis_bottom’, ‘axis_left’, ‘axis_top’,
     ‘file_name’, ‘pic_width’, ‘pic_height’, ‘eps_width’, ‘eps_height’,
     ‘axis_right’, ‘rot_vertical’, ‘rot_horizontal’, ‘axis_3d’,
     ‘xu_grid’, ‘yv_grid’, ‘surface_hide’, ‘contour’, ‘contour_levels’,
     ‘palette’, ‘colorbox’ и ‘enhanced3d’.

     Для того, чтобы использовать эту функцию, ее следует загрузить
     командой ‘load("draw")’.

 -- Графический объект: 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>)
     Строит точки в двух и трех измерениях.

     Следующие графические опции влияют на этот объект: ‘point_size’,
     ‘point_type’, ‘points_joined’, ‘line_width’, ‘key’, ‘line_type’ и
     ‘color’.

     Два измерения

     ‘points ([[<x1>,<y1>], [<x2>,<y2>],...])’ или ‘points
     ([<x1>,<x2>,...], [<y1>,<y2>,...])’ строит точки с координатами
     ‘[x1,y1]’, ‘[x2,y2]’, и т.д.  Если абсциссы не заданы, то они
     принимаются равными последовательным положительным числам, так что
     ‘points ([<y1>,<y2>,...])’ строит точки ‘[1,<y1>]’, ‘[2,<y2>]’, и
     т.д.  Если <matrix> – матрица из двух строк или столбцов, то
     ‘points (<matrix>)’ строит соответствующие точки.  Если <matrix> –
     матрица из одной строки или одного столбца, то абсциссы выбираются
     автоматически.

     Пример:

          (%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]))$

     Три измерения

     ‘points ([[<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>],...])’ или ‘points
     ([<x1>,<x2>,...], [<y1>,<y2>,...], [<z1>,<z2>,...])’ строит точки с
     координатами ‘[<x1>,<y1>,<z1>]’, ‘[<x2>,<y2>,<z2>]’, и т.д.  Если
     <matrix> – матрица из трех строк или трех столбцов, то ‘points
     (<matrix>)’ строит соответствующие точки.

     Примеры:

     Одна трехмерная выборка:
          (%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))) )$

     Две трехмерные выборки:
          (%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))) )$

 -- Графический объект: polygon ([[<x1>,<y1>], [<x2>,<y2>],...])
 -- Графический объект: polygon ([<x1>,<x2>,...], [<y1>,<y2>,...])
     Строит многоугольник в двух измерениях.

     Два измерения

     ‘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]]) )$

 -- Графический объект: rectangle ([<x1>,<y1>], [<x2>,<y2>])
     Строит прямоугольники в двух измерениях.

     Два измерения

     ‘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] )$

 -- Графический объект: bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>, ...])
     Строит вертикальные полоски в двух измерениях.

     Два измерения

     ‘bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>, ...])’ Строит полоски с
     центрами на <x1>, <x2>, ...  с высотами <h1>, <h2>, ...  и ширинами
     <w1>, <w2>, ...

     Следующие графические опции влияют на этот объект: ‘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);

 -- Графический объект: ellipse (<xc>, <yc>, <a>, <b>, <ang1>, <ang2>)
     Строит эллипсы и круги в двух измерениях.

     Два измерения

     ‘ellipse (<xc>, <yc>, <a>, <b>, <ang1>, <ang2>)’ строит эллипс с
     центром в ‘[<xc>, <yc>]’ с горизонтальной и вертикальной полу-осями
     <a> и <b> соответственно от угла <ang1> до угла <ang2>.

     Следующие графические опции влияют на этот объект: ‘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] )$

 -- Графический объект: label ([<string>,<x>,<y>],...)
 -- Графический объект: label ([<string>,<x>,<y>,<z>],...)
     Изображает текстовую метку в двух или трех измерениях.

     Следующие графические опции влияют на этот объект:
     ‘label_alignment’, ‘label_orientation’ и ‘color’.

     Два измерения

     ‘label([<string>,<x>,<y>])’ изображает текст <string> в точке
     ‘[<x>,<y>]’.

     Пример:

          (%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 ligght-blue",0,1.2])  )$

     Три измерения

     ‘label([<string>,<x>,<y>,<z>])’ изображает текст <string> в точке
     ‘[<x>,<y>,<z>]’.

     Пример:

          (%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]) )$

 -- Графический объект: vector ([<x>,<y>], [<dx>,<dy>])
 -- Графический объект: vector ([<x>,<y>,<z>], [<dx>,<dy>,<dz>])
     Строит вектор в двух или трех измерениях.

     Следующие графические опции влияют на этот объект: ‘head_both’,
     ‘head_length’, ‘head_angle’, ‘head_type’, ‘line_width’,
     ‘line_type’, ‘key’ и ‘color’.

     Два измерения

     ‘vector([<x>,<y>], [<dx>,<dy>])’ строит вектор ‘[<dx>,<dy>]’ с
     началом в точке ‘[<x>,<y>]’.

     Пример:

          (%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]))$

     Три измерения

     ‘vector([<x>,<y>,<z>], [<dx>,<dy>,<dz>])’ строит вектор
     ‘[<dx>,<dy>,<dz>]’ с началом в точке ‘[<x>,<y>,<z>]’.

     Пример:

          (%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)) )$

 -- Графический объект: explicit (<fcn>,<var>,<minval>,<maxval>)
 -- Графический объект: explicit
          (<fcn>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)
     Строит явную функцию в двух или трех измерениях.

     Два измерения

     ‘explicit(<fcn>,<var>,<minval>,<maxval>)’ строит явную функцию
     <fcn> переменной <var>, принимающей значения от <minval> до
     <maxval>.

     Следующие графические опции влияют на этот объект: ‘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) )$

     Три измерения

     ‘explicit(<fcn>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)’
     строит явную функцию <fcn> переменной <var1> в пределах от
     <minval1> до <maxval1>, и переменной <var2> в пределах от <minval2>
     до <maxval2>.

     Следующие графические опции влияют на этот объект: ‘xu_grid’,
     ‘yv_grid’, ‘line_type’, ‘key’ и ‘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’ по поводу функций с заполнением.

 -- Графический объект: implicit
          (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)
 -- Графический объект: implicit
          (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>,<z>,<zmin>,<zmax>)
     Строит неявную функцию в двух и трех измерениях.

     Два измерения

     ‘implicit(<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)’ строит
     неявную функцию, определенную <fcn> с переменной <x>, принимающей
     значения от <xmin> до <xmax>, и переменной <y>, принимающей
     значения от <ymin> до <ymax>.

     Следующие графические опции влияют на этот объект: ‘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" )$

     Три измерения

     ‘implicit (<fcn>,<x>,<xmin>,<xmax>, <y>,<ymin>,<ymax>,
     <z>,<zmin>,<zmax>)’ строит неявную поверхность, определенную <fcn>,
     с переменной <x>, принимающей значения от <xmin> до <xmax>,
     переменной <y>, принимающей значения от <ymin> до <ymax> и
     переменной <z>, принимающей значения от <zmin> до <zmax>.  Для
     построения используется алгоритм марширующих кубов.

     Следующие графические опции влияют на этот объект: ‘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);

 -- Графический объект: polar (<radius>,<ang>,<minang>,<maxang>)
     Строит двумерную функцию в полярных координатах.

     Два измерения

     ‘polar (<radius>,<ang>,<minang>,<maxang>)’ изображает функцию
     ‘<radius>(<ang>)’ в полярных координатах переменной <ang> в
     пределах от <minang> до <maxang>.

     Следующие графические опции влияют на этот объект: ‘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) )$

 -- Графический объект: spherical
          (<radius>,<azi>,<minazi>,<maxazi>,<zen>,<minzen>,<maxzen>)
     Строит трехмерную функцию в сферических координатах.

     Три измерения

     ‘spherical
     (<radius>,<azi>,<minazi>,<maxazi>,<zen>,<minzen>,<maxzen>)’ строит
     функцию ‘<radius>(<azi>,<zen>)’ в сферических координатах с
     азимутом <azi> в пределах от <minazi> до <maxazi> и возвышением
     <zen> в пределах от <minzen> до <maxzen>.

     Следующие графические опции влияют на этот объект: ‘xu_grid’,
     ‘yv_grid’, ‘line_type’, ‘key’ и ‘color’.

     Пример:

          (%i1) load("draw")$
          (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$

 -- Графический объект: cylindrical
          (<radius>,<z>,<minz>,<maxz>,<azi>,<minazi>,<maxazi>)
     Строит трехмерную функцию в цилиндрических координатах.

     Три измерения

     ‘cylindrical (<radius>,<z>,<minz>,<maxz>,<azi>,<minazi>,<maxazi>)’
     строит функцию ‘<radius>(<z>,<azi>)’ в цилиндрических координатах с
     <z> в пределах от <minz> до <maxz> и азимутом <azi> в пределах от
     <minazi> до <maxazi>.

     Следующие графические опции влияют на этот объект: ‘xu_grid’,
     ‘yv_grid’, ‘line_type’, ‘key’ и ‘color’.

     Пример:

          (%i1) load("draw")$
          (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$

 -- Графический объект: parametric
          (<xfun>,<yfun>,<par>,<parmin>,<parmax>)
 -- Графический объект: parametric
          (<xfun>,<yfun>,<zfun>,<par>,<parmin>,<parmax>)
     Строит параметрическую функцию в двух и трех переменных.

     Следующие графические опции влияют на этот объект: ‘nticks’,
     ‘line_width’, ‘line_type’, ‘key’ и ‘color’.

     Два измерения

     ‘parametric (<xfun>,<yfun>,<par>,<parmin>,<parmax>)’ строит
     параметрическую функцию ‘[<xfun>,<yfun>]’ с параметром <par>,
     принимающим значения от <parmin> до <parmax>.

     Пример:

          (%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))$

     Три измерения

     ‘parametric (<xfun>,<yfun>,<zfun>,<par>,<parmin>,<parmax>)’ строит
     параметрическую кривую ‘[<xfun>,<yfun>,<zfun>]’ с параметром <par>,
     принимающем значения от <parmin> до <parmax>.

     Пример:

          (%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" )$

 -- Графический объект: image (<im>,<x0>,<y0>,<width>,<height>)
     Строит в двух измерениях.

     Два измерения

     ‘image (<im>,<x0>,<y0>,<width>,<height>)’ строит изображение <im> в
     прямоугольной области от угла ‘(<x0>,<y0>)’ до
     ‘(x0+<width>,y0+<height>)’ на вещественной плоскости.  Параметр
     <im> должен быть матрицей вещественных чисел, или матрицей векторов
     длины 3, или объект типа <картина>.

     Если <im> – матрица вещественных чисел или объект <картина
     уровней>, то значения пикселов интерпретируются в соответствии с
     графической опцией ‘palette’, которая является вектором длины 3 с
     компонентами, принимающими значение от -36 до +36.  Каждое значение
     является индексом формулы, преобразующей значение уровня в красный,
     зеленый и синий цвета соответственно:
           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-картина>, то
     они интерпретируются как красный, зеленый и синий цвета.

     Примеры:

     Если <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 или объект <rgb-картина>, то
     они интерпретируются как красный, зеленый и синий цвета.
          (%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’.

     По ссылке URL
     <http://www.telefonica.net/web2/biomates/maxima/gpdraw/image>
     находятся более развернутые примеры.

 -- Глобальная переменная: boundaries_array
     Значение по умолчанию: ‘false’

     ‘boundaries_array’ – это массив, в котором графический объект
     ‘geomap’ ищет координаты границ.

     Каждая компонента ‘boundaries_array’ есть массив чисел с плавающей
     точкой – координат многоугольного сегмента или границы карты.

     См.  ‘geomap’.

 -- Графический объект: geomap (<numlist>)
 -- Графический объект: geomap (<numlist>,<3Dprojection>)
     Строит карты в двух и трех измерениях.

     Два измерения

     Эта функция работает вместе с глобальной переменной
     ‘boundaries_array’.

     Аргумент <numlist> – список, содержащий числа или списки чисел.
     Все числа должны быть неотрицательными целыми, которые представляют
     компоненты глобального массива ‘boundaries_array’.

     Каждая компонента ‘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("draw")$
          (%i2) load("worldmap")$
          (%i3) c1: gr2d(geomap(Canada,United_States,
                                Mexico,Cuba))$
          (%i4) c2: gr2d(geomap(Africa))$
          (%i5) c3: gr2d(geomap(Oceania,China,Japan))$
          (%i6) c4: gr2d(geomap(France,Portugal,Spain,
                                Morocco,Western_Sahara))$
          (%i7) draw(columns  = 2,
                     c1,c2,c3,c4)$

     Пакет ‘worldmap’ также полезен для изображения стран в виде
     многоугольников.  В этом случае графический объект ‘geomap’ не
     нужен и вместо его используется объект ‘polygon’.  Т.к.  в этом
     случае используются списки а не массивы, то изображение карт будет
     мудреннее.  См.  ‘make_poly_country’ и ‘make_poly_continent’, чтобы
     понять следующий код.
          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) 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))$
          (%i4) apply(draw2d, mymap)$

     Три измерения

     ‘geomap (<numlist>)’ проецирует границы карты на сферу единичного
     радиуса с центром (0,0,0).  Сферу и тип проекции можно изменить при
     помощи ‘geomap (<numlist>,<3Dprojection>)’.

     Доступны следующие трехмерные проекции:

        • ‘[spherical_projection,<x>,<y>,<z>,<r>]’: проецирует границы
          карты на сферу радиуса <r> с центром в (<x>,<y>,<z>).
               (%i1) load("draw")$
               (%i2) load("worldmap")$
               (%i3) draw3d(geomap(Australia), /* default projection */
                            geomap(Australia,
                                   [spherical_projection,2,2,2,3]))$

        • ‘[cylindrical_projection,<x>,<y>,<z>,<r>,<rc>]’: ре-проецирует
          сферические границы карты на цилиндр радиуса <rc> и осью,
          проходящей через полюса глобуса радиуса <r> с центром в
          (<x>,<y>,<z>).
               (%i1) load("draw")$
               (%i2) load("worldmap")$
               (%i3) draw3d(geomap([America_coastlines,Eurasia_coastlines],
                                   [cylindrical_projection,2,2,2,3,4]))$

        • ‘[conic_projection,<x>,<y>,<z>,<r>,<alpha>]’: ре-проецирует
          сферические границы карты на конус с углом <alpha> с осью,
          проходящей через полюса глобуса радиуса <r> с центром в
          (<x>,<y>,<z>).  Оба северный и южный конусы касательны к
          сфере.
               (%i1) load("draw")$
               (%i2) load("worldmap")$
               (%i3) draw3d(geomap(World_coastlines,
                                   [conic_projection,0,0,0,1,90]))$

     См.  <http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap>
     для более сложных примеров.

 -- Графический объект: parametric_surface
          (<xfun>,<yfun>,<zfun>,<par1>,<par1min>,<par1max>,<par2>,<par2min>,<par2max>)
     Строит параметрическую поверхность в трех измерениях.

     Три измерения

     ‘parametric_surface
     (<xfun>,<yfun>,<zfun>,<par1>,<par1min>,<par1max>,<par2>,<par2min>,<par2max>)’
     строит параметрическую поверхность ‘[<xfun>,<yfun>,<zfun>]’, с
     параметром <par1>, принимающем значения от <par1min> до <par1max> и
     параметром <par2>, принимающем значения от <par2min> до <par2max>.

     Следующие графические опции влияют на этот объект: ‘xu_grid’,
     ‘yv_grid’, ‘line_type’, ‘key’ и ‘color’.

     Пример:

          (%i1) load("draw")$
          (%i2) draw3d(title          = "Sea shell",
                       xu_grid        = 100,
                       yv_grid        = 25,
                       rot_vertical   = 100,
                       rot_horizontal = 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) )$

 -- Функция: draw (<gr2d>, ..., <gr3d>, ..., <options>, ...)

     Изображает серию графических сцен.  Ее аргументы есть ‘gr2d’ и/или
     ‘gr3d’ графические объекты вместе с некоторыми опциями.  По
     умолчанию сцены собираются вместе в одну колонку.

     Функция ‘draw’ принимает следующие глобальные опции: ‘terminal’,
     ‘columns’, ‘pic_width’, ‘pic_height’, ‘eps_width’, ‘eps_height’,
     ‘file_name’ и ‘delay’.

     Функции ‘draw2d’ и ‘draw3d’ – сокращения, которые используются,
     когда требуется изобразить только одну сцену в двух или трех
     измерениях соответственно.

     Для того, чтобы использовать эту функцию, ее следует загрузить
     командой ‘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)$

     Эти две команды эквивалентны:
          (%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>, ...))’.

     Она может использоваться для изображения одиночной двумерной сцены.

     Для того, чтобы использовать эту функцию, ее следует загрузить
     командой ‘load("draw")’.

     См.  также ‘draw’ и ‘gr2d’.

 -- Функция: draw3d (<option>, <graphic_object>, ...)

     Эта функция является сокращением для ‘draw(gr3d(<options>, ...,
     <graphic_object>, ...))’.

     Она может использоваться для изображения одиночной трехмерной
     сцены.

     Для того, чтобы использовать эту функцию, ее следует загрузить
     командой ‘load("draw")’.

     См.  также ‘draw’ и ‘gr3d’.


File: maxima.info,  Node: Функции и переменные для картин,  Next: Функции и переменные для карты мира,  Prev: Функции и переменные пакета draw,  Up: Пакет draw

46.3 Функции и переменные для картин
====================================

 -- Функция: make_level_picture (<data>)
 -- Функция: make_level_picture (<data>,<width>,<height>)
     Возвращает объект типа <картина> уровней.  ‘make_level_picture
     (<data>)’ строит объект <картина> из матрицы <data>.
     ‘make_level_picture (<data>,<width>,<height>)’ строит объект из
     списка чисел; в этом случае должны быть заданы оба параметра
     <width> и <height>.

     Возвращает объект типа <картина>, содержащий следующие четыре
     части:

       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)})

 -- Функция: picturep (<x>)
     Возвращает ‘true’, если аргумент является правильно сформированной
     картиной, и ‘false’ в противном случае.

 -- Функция: picture_equalp (<x>,<y>)
     Возвращает ‘true’, если картины совпадают, и ‘false’ в противном
     случае.

 -- Функция: make_rgb_picture (<redlevel>,<greenlevel>,<bluelevel>)
     Возвращает rgb-цветную <картину>.  Все три аргумента должны быть
     картинами уровней, с уровнями, задающими красный, зеленый и синий
     цвета соответственно.

     Возвращаемый объект <картина> содержит следующие четыре части:

       1. символ ‘rgb’
       2. ширина картины
       3. высота картины
       4. целый массив длины <3*width*height> с данными о пикселах со
          значениями от 0 до 255.  Каждый пиксел представляется тремя
          последовательными числами (красный, зелены, синий).

     Пример:

          (%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)})

 -- Функция: 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)})

 -- Функция: negative_picture (<pic>)
     Возвращает негатив картины (<уровней> или <rgb>).

 -- Функция: rgb2level (<pic>)
     Преобразует <rgb> картину в картину <уровней> усреднением красного,
     зеленого и синего каналов.

 -- Функция: get_pixel (<pic>,<x>,<y>)
     Возвращает пиксел из картины.  Координаты <x> и <y> должны быть от
     0 до ‘width-1’ и ‘height-1’ соответственно.

 -- Функция: read_xpm (<xpm_file>)
     Читает файл в формате xpm и возвращает объект типа картина.


File: maxima.info,  Node: Функции и переменные для карты мира,  Prev: Функции и переменные для картин,  Up: Пакет draw

46.4 Функции и переменные для карты мира
========================================

 -- Функция: region_boundaries (<x1>,<y1>,<x2>,<y2>)
     Определяет многоугольные сегменты из глобальной переменной
     ‘boundaries_array’, содержащиеся внутри прямоугольника с вершинами
     (<x1>,<y1>) (верхний левый) и (<x2>,<y2>) (нижний правый).

     Пример:

     Возвращает номера сегментов для северной Италии.
          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) region_boundaries(10.4,41.5,20.7,35.4);
          (%o3)                [1846, 1863, 1864, 1881, 1888, 1894]
          (%i4) draw2d(geomap(%))$

 -- Функция: numbered_boundaries (<nlist>)
     Строит многоугольные сегменты (границы), обозначаемые числами
     (координаты в ‘boundaries_array’).  Эта функция очень полезна при
     создании географических объектов.

     Пример:

     Карта Европы, с границами, обозначенными номерами компонент в
     ‘boundaries_array’.
          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) european_borders:
                     region_boundaries(-31.81,74.92,49.84,32.06)$
          (%i4) numbered_boundaries(european_borders)$

 -- Функция: make_polygon (<nlist>)
     Возвращает объект ‘polygon’, построенный из индексов границ.
     Аргумент <nlist> – список компонент в массиве ‘boundaries_array’.

     Пример:

     Бутан определяется номерами компонент 171, 173 и 1143, так что
     ‘make_polygon([171,173,1143])’ добавляет массив координат
     ‘boundaries_array[171]’, ‘boundaries_array[173]’ и
     ‘boundaries_array[1143]’ и возвращает объект ‘polygon’, пригодный
     для изображения функцией ‘draw’.  Для того чтобы избежать сообщений
     о ошибках, массивы должны быть совместимы в том смысле, что два
     последовательных массива имеют общие предельные координаты.  В этом
     примере, две первые компоненты ‘boundaries_array[171]’ равны двум
     последним компонентам ‘boundaries_array[173]’, и две первые
     компоненты ‘boundaries_array[173]’ равны двум первым компонентам
     ‘boundaries_array[1143]’.  В целом, числа 171, 173 и 1143 (именно в
     этом порядке) совместимы и цветной многоугольник может быть
     построен.
          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) Bhutan;
          (%o3)                        [[171, 173, 1143]]
          (%i4) boundaries_array[171];
          (%o4) {Array:
                 #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
                   88.917877 27.321039)}
          (%i5) boundaries_array[173];
          (%o5) {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)}
          (%i6) boundaries_array[1143];
          (%o6) {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)}
          (%i7) Bhutan_polygon: make_polygon([171,173,1143])$
          (%i8) draw2d(Bhutan_polygon)$

 -- Функция: make_poly_country (<country_name>)
     Строит многоугольники, необходимые для изображения страны в цвете.
     Если есть острова, то страна определяется более чем одним
     многоугольником.

     Пример:

          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) make_poly_country(India)$
          (%i4) apply(draw2d, %)$

 -- Функция: make_poly_continent (<continent_name>)
 -- Функция: make_poly_continent (<country_list>)
     Строит многоугольники, необходимые для изображение континента или
     списка стран в цвете.

     Пример:

          (%i1) load("draw")$
          (%i2) load("worldmap")$
          (%i3) /* A continent */
                make_poly_continent(Africa)$
          (%i4) apply(draw2d, %)$
          (%i5) /* A list of countries */
                make_poly_continent([Germany,Denmark,Poland])$
          (%i6) apply(draw2d, %)$

