1This is maxima.info, produced by makeinfo version 6.6 from maxima.texi.
2
3Este es el Manual de Maxima en versión Texinfo
4
5Copyright 1994, 2001 William F. Schelter
6
7START-INFO-DIR-ENTRY
8* Maxima: (maxima).  Un sistema de cálculo simbólico
9END-INFO-DIR-ENTRY
10
11
12File: maxima.info,  Node: Funciones y variables para gráficos estadísticos,  Prev: Funciones y variables de parámetros descriptivos,  Up: descriptive
13
1444.4 Funciones y variables para gráficos estadísticos
15=====================================================
16
17 -- Función: barsplot (<data1>, <data2>, ..., <option_1>, <option_2>,
18          ...)
19 -- Función: barsplot_description (...)
20
21     Dibuja diagramas de barras para variables estadísticas discretas,
22     tanto para una como para más muestras.
23
24     <data> puede ser una lista de resultados provenientes de una
25     muestra o una matriz de <m> filas y <n> columnas, representando <n>
26     muestras de tamaño <m> cada una.
27
28     Las opciones disponibles son:
29
30          <box_width> (valor por defecto, '3/4'): ancho relativo de los
31          rectángulos.  Este valor debe pertenecer al rango '[0,1]'.
32
33        * <grouping> (valor por defecto, 'clustered'): indica cómo se
34          agrupan las diferentes muestras.  Son valores válidos:
35          'clustered' y 'stacked'.
36
37        * <groups_gap> (valor por defecto, '1'): un número positivo que
38          representa la separación entre dos grupos consecutivos de
39          barras.
40
41        * <bars_colors> (valor por defecto, '[]'): una lista de colores
42          para múltiples muestras.  Cuando el número de muestras sea
43          mayor que el de colores especificados, los colores adicionales
44          necesarios se seleccionan aleatoriamente.  Véase 'color' para
45          más información.
46
47        * <frequency> (valor por defecto, 'absolute'): indica la escala
48          de las ordenadas.  Valores admitidos son: 'absolute',
49          'relative' y and 'percent'.
50
51        * <ordering> (valor por defecto, 'orderlessp'): los valores
52          admitidos para esta opción son: 'orderlessp' y 'ordergreatp',
53          indicando cómo se deben ordenar los resultados muestrales
54          sobre el eje-<x>.
55
56        * <sample_keys> (valor por defecto, '[]'): es una lista de
57          cadenas de texto a usar como leyendas.  Cuando la lista tenga
58          una longitud diferente de cero o del número de muestras, se
59          devolverá un mensaje de error.
60
61        * <start_at> (valor por defecto, '0'): indica a qué altura
62          comienza a dibujarse el gráfico de barra sobre el eje de
63          abscisas.
64
65        * Todas las opciones globales de 'draw', excepto 'xtics', que se
66          asigna internamente por 'barsplot'.  Si es necesario que el
67          usuario le dé su propio valor a esta opción, o quiere
68          construir una escena más compleja, debe hacer uso de
69          'barsplot_description'.  Véase el ejemplo más abajo.
70
71        * Las siguientes opciones locales de 'draw': 'key', 'color',
72          'fill_color', 'fill_density' y 'line_width'.  Véase también
73          'bars'.
74
75     La función 'barsplot_description' crea un objeto gráfico útil para
76     formar escenas complejas, junto con otros objetos gráficos.  Se
77     dispone también de la función 'wxbarsplot' para crear histogramas
78     incorporados en los interfaces wxMaxima y iMaxima.
79
80     Ejemplos:
81
82     Muestra univariante en formato matricial.  Frecuencias absolutas.
83
84          (%i1) load (descriptive)$
85          (%i2) m : read_matrix (file_search ("biomed.data"))$
86          (%i3) barsplot(
87                  col(m,2),
88                  title        = "Ages",
89                  xlabel       = "years",
90                  box_width    = 1/2,
91                  fill_density = 3/4)$
92
93     Dos muestras de diferente tamaño, con frecuencias relativas y
94     colores definidos por el usuario.
95
96          (%i1) load (descriptive)$
97          (%i2) l1:makelist(random(10),k,1,50)$
98          (%i3) l2:makelist(random(10),k,1,100)$
99          (%i4) barsplot(
100                  l1,l2,
101                  box_width    = 1,
102                  fill_density = 1,
103                  bars_colors  = [black, grey],
104                  frequency = relative,
105                  sample_keys = ["A", "B"])$
106
107     Cuatro muestras no numéricas de igual tamaño.
108
109          (%i1) load (descriptive)$
110          (%i2) barsplot(
111                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
112                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
113                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
114                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
115                  title  = "Asking for something to four groups",
116                  ylabel = "# of individuals",
117                  groups_gap   = 3,
118                  fill_density = 0.5,
119                  ordering     = ordergreatp)$
120
121     Barras apiladas verticalmente.
122
123          (%i1) load (descriptive)$
124          (%i2) barsplot(
125                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
126                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
127                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
128                  makelist([Yes, No, Maybe][random(3)+1],k,1,50),
129                  title  = "Asking for something to four groups",
130                  ylabel = "# of individuals",
131                  grouping     = stacked,
132                  fill_density = 0.5,
133                  ordering     = ordergreatp)$
134
135     'barsplot' en un contexto multiplot.
136
137          (%i1) load (descriptive)$
138          (%i2) l1:makelist(random(10),k,1,50)$
139          (%i3) l2:makelist(random(10),k,1,100)$
140          (%i4) bp1 :
141                  barsplot_description(
142                   l1,
143                   box_width = 1,
144                   fill_density = 0.5,
145                   bars_colors = [blue],
146                   frequency = relative)$
147          (%i5) bp2 :
148                  barsplot_description(
149                   l2,
150                   box_width = 1,
151                   fill_density = 0.5,
152                   bars_colors = [red],
153                   frequency = relative)$
154          (%i6) draw(gr2d(bp1), gr2d(bp2))$
155
156     Para las opciones relacionadas con los diagramas de barras, véase
157     'bars' del paquete 'draw'.
158
159     Véanse también las funciones 'histogram' y 'piechart'.
160
161 -- Función: boxplot (<data>)
162 -- Función: boxplot (<data>, <option_1>, <option_2>, ...)
163 -- Función: boxplot_description (...)
164
165     Dibuja diagramas de cajas (box-and-whishker).  El argumento <data>
166     puede ser una lista, lo cual no es de gran interés, puesto que
167     estos gráficos se utilizan principalmente para comparar distintas
168     muestras, o una matriz, de manera que sea posible comparar dos o
169     más componentes de una muestra multivariante.  También se permite
170     que <data> sea una lista de muestras con posibles tamaños
171     diferentes; de hecho, esta es la única función del paquete
172     'descriptive' que admite esta estructura de datos.
173
174     La caja se dibuja desde el primer cuartil hasta el tercero, con un
175     segmento horizontal situado a la altura del segundo cuartil o
176     mediana.  Por defecto, los bigotes inferior y superior se sitúan a
177     la altura de los valores mínimo y máximo, respectivamente.  La
178     opción <range> se puede utilizar para indicar que los valores
179     mayores que
180     'quantile(x,3/4)+range*(quantile(x,3/4)-quantile(x,1/4))', o
181     menores que
182     'quantile(x,1/4)-range*(quantile(x,3/4)-quantile(x,1/4))', deben
183     considerarse atípicos, en cuyo caso se dibujan como puntos
184     aislados, al tiempo que los bigotes se colocan en los extremos del
185     resto de la muestra.
186
187     Opciones disponibles:
188
189        * <box_width> (valor por defecto, '3/4'): ancho relativo de las
190          cajas.  This value must be in the range '[0,1]'.
191
192        * <box_orientation> (valor por defecto, 'vertical'): valores
193          posibles: 'vertical' y 'horizontal'.
194
195        * <range> (valor por defecto, 'inf'): coeficiente positivo del
196          rango intercuartílico para declarar los límites de los datos
197          atípicos.
198
199        * <outliers_size> (valor por defecto, '1'): tamaño de los
200          círculos para los datos atípicos.
201
202        * Todas las opciones globales de 'draw', excepto
203          'points_joined', 'point_size', 'point_type', 'xtics', 'ytics',
204          'xrange' y 'yrange', que se asignan internamente por
205          'boxplot'.  Si es necesario que el usuario le dé sus propios
206          valores a estas opciones, o quiere construir una escena más
207          compleja, debe hacer uso de 'boxplot_description'.
208
209        * Las siguientes opciones locales de 'draw': 'key', 'color', y
210          'line_width'.
211
212     La función 'boxplot_description' crea un objeto gráfico útil para
213     formar escenas complejas, junto con otros objetos gráficos.  Se
214     dispone también de la función 'wxboxplot' para crear histogramas
215     incorporados en los interfaces wxMaxima y iMaxima.
216
217     Ejemplos:
218
219     Diagrama de cajas de una muestra multivariante.
220
221          (%i1) load (descriptive)$
222          (%i2) s2 : read_matrix(file_search("wind.data"))$
223          (%i3) boxplot(s2,
224                  box_width  = 0.2,
225                  title      = "Windspeed in knots",
226                  xlabel     = "Stations",
227                  color      = red,
228                  line_width = 2)$
229
230     Diagrama de cajas de tres muestras de tamaños diferentes.
231
232          (%i1) load (descriptive)$
233          (%i2) A :
234                 [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
235                  [8, 10, 7, 9, 12, 8, 10],
236                  [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
237          (%i3) boxplot (A, box_orientation = horizontal)$
238
239     La opción <range> puede utilizarse para tratar con datos atípicos.
240
241          (%i1) load (descriptive)$
242          (%i2) B: [[7, 15, 5, 8, 6, 5, 7, 3, 1],
243                    [10, 8, 12, 8, 11, 9, 20],
244                    [23, 17, 19, 7, 22, 19]] $
245          (%i3) boxplot (B, range=1)$
246          (%i4) boxplot (B, range=1.5, box_orientation = horizontal)$
247          (%i5) draw2d(
248                  boxplot_description(
249                    B,
250                    range            = 1.5,
251                    line_width       = 3,
252                    outliers_size    = 2,
253                    color            = red,
254                    background_color = light_gray),
255                  xtics = {["Low",1],["Medium",2],["High",3]}) $
256
257 -- Función: histogram (<list>)
258 -- Función: histogram (<list>, <option_1>, <option_2>, ...)
259 -- Función: histogram (<one_column_matrix>)
260 -- Función: histogram (<one_column_matrix>, <option_1>, <option_2>,
261          ...)
262 -- Función: histogram (<one_row_matrix>)
263 -- Función: histogram (<one_row_matrix>, <option_1>, <option_2>, ...)
264 -- Función: histogram_description (...)
265
266     Dibuja un histograma a partir de una muestra continua.  Los datos
267     muestrales deben darse en forma de lista de números o como una
268     matriz unidimensional.
269
270     Opciones dispponibles:
271
272        * <nclasses> (valor por defecto, '10'): número de clases del
273          histograma, o una lista indicando los límites de las clases y
274          su número, o solamente los límites.
275
276        * <frequency> (valor por defecto, 'absolute'): indica la escala
277          de las ordenadas.  Valores admitidos son: 'absolute',
278          'relative', 'percent' y 'density'.  Con 'density', el
279          histograma adquiere un área total igual a uno.
280
281        * <htics> (valor por defecto, 'auto'): formato para las marcas
282          sobre el eje de las abscisas.  Valores admitidos son: 'auto',
283          'endpoints', 'intervals' o una lista de etiquetas.
284
285        * Todas las opciones globales de 'draw', excepto 'xrange',
286          'yrange' y 'xtics', que son asignadas internamente por
287          'histogram'.  Si es necesario que el usuario le dé sus propios
288          valores a estas opciones, debe hacer uso de
289          'histogram_description'.  Véase el ejemplo más abajo.
290
291        * Las siguientes opciones locales de 'draw': 'key', 'color',
292          'fill_color', 'fill_density' y 'line_width'.  Véase también
293          'bars'.
294
295     La función 'histogram_description' crea un objeto gráfico útil para
296     formar escenas complejas, junto con otros objetos gráficos.  Se
297     dispone también de la función 'wxhistogram' para crear histogramas
298     incorporados en los interfaces wxMaxima y iMaxima.
299
300     Ejemplos:
301
302     Un histograma con seis clases:
303
304          (%i1) load (descriptive)$
305          (%i2) s1 : read_list (file_search ("pidigits.data"))$
306          (%i3) histogram (
307                     s1,
308                     nclasses     = 8,
309                     title        = "pi digits",
310                     xlabel       = "digits",
311                     ylabel       = "Absolute frequency",
312                     fill_color   = grey,
313                     fill_density = 0.6)$
314
315     Ajustando los límites del histograma a -2 y 12, con 3 clases.
316     También se establece un formato predefinido a las marcas del eje de
317     abscisas:
318
319          (%i1) load (descriptive)$
320          (%i2) s1 : read_list (file_search ("pidigits.data"))$
321          (%i3) histogram (
322                     s1,
323                     nclasses     = [-2,12,3],
324                     htics        = ["A", "B", "C"],
325                     terminal     = png,
326                     fill_color   = "#23afa0",
327                     fill_density = 0.6)$
328
329     Se hace uso de 'histogram_description' para ajustar la opción
330     'xrange' y añadir una curva explícita a la escena:
331
332          (%i1) load (descriptive)$
333          (%i2) ( load("distrib"),
334                  m: 14, s: 2,
335                  s2: random_normal(m, s, 1000) ) $
336          (%i3) draw2d(
337                  grid   = true,
338                  xrange = [5, 25],
339                  histogram_description(
340                    s2,
341                    nclasses     = 9,
342                    frequency    = density,
343                    fill_density = 0.5),
344                  explicit(pdf_normal(x,m,s), x, m - 3*s, m + 3* s))$
345
346 -- Función: piechart (<list>)
347 -- Función: piechart (<list>, <option_1>, <option_2>, ...)
348 -- Función: piechart (<one_column_matrix>)
349 -- Función: piechart (<one_column_matrix>, <option_1>, <option_2>, ...)
350 -- Función: piechart (<one_row_matrix>)
351 -- Función: piechart (<one_row_matrix>, <option_1>, <option_2>, ...)
352 -- Función: piechart_description (...)
353
354     Similar a 'barsplot', pero dibuja sectores en lugar de rectángulos.
355
356     Opciones disponibles:
357
358        * <sector_colors> (valor por defecto, '[]'): una lista de
359          colores para los sectores.  Cuando el número de sectores sea
360          mayor que el de colores especificados, los colores adicionales
361          necesarios se seleccionan aleatoriamente.  Véase 'color' para
362          más información.
363
364        * <pie_center> (valor por defecto, '[0,0]'): centro del diagrama
365
366        * <pie_radius> (valor por defecto, '1'): radio del diagrama.
367
368        * Todas las opciones globales de 'draw', excepto 'key', que se
369          asigna internamente por 'piechart'.  Si es necesario que el
370          usuario le dé su propio valor a esta opción, o quiere
371          construir una escena más compleja, debe hacer uso de
372          'piechart_description'.
373
374        * Las siguientes opciones locales de 'draw': 'key', 'color',
375          'fill_density' y 'line_width'.  Véase también 'bars'.
376
377     La función 'piechart_description' crea un objeto gráfico útil para
378     formar escenas complejas, junto con otros objetos gráficos.  Se
379     dispone también de la función 'wxpiechart' para crear histogramas
380     incorporados en los interfaces wxMaxima y iMaxima.
381
382     Ejemplo:
383
384          (%i1) load (descriptive)$
385          (%i2) s1 : read_list (file_search ("pidigits.data"))$
386          (%i3) piechart(
387                  s1,
388                  xrange  = [-1.1, 1.3],
389                  yrange  = [-1.1, 1.1],
390                  title   = "Digit frequencies in pi")$
391
392     Véase también la función 'barsplot'.
393
394 -- Función: scatterplot (<list>)
395 -- Función: scatterplot (<list>, <option_1>, <option_2>, ...)
396 -- Función: scatterplot (<matrix>)
397 -- Función: scatterplot (<matrix>, <option_1>, <option_2>, ...)
398 -- Función: scatterplot_description (...)
399
400     Dibuja diagramas de dispersión, tanto de muestras univariantes
401     (<list>) como multivariantes (<matrix>).
402
403     Las opciones disponibles son las mismas que admite 'histogram'.
404
405     La función 'scatterplot_description' crea un objeto gráfico útil
406     para formar escenas complejas, junto con otros objetos gráficos.
407     Se dispone también de la función 'wxscatterplot' para crear
408     histogramas incorporados en los interfaces wxMaxima y iMaxima.
409
410     Ejemplos:
411
412     Diagrama de dispersión univariante a partir de una muestra normal
413     simulada.
414
415          (%i1) load (descriptive)$
416          (%i2) load (distrib)$
417          (%i3) scatterplot(
418                  random_normal(0,1,200),
419                  xaxis      = true,
420                  point_size = 2,
421                  dimensions = [600,150])$
422
423     Diagrama de dispersión bidimensional.
424
425          (%i1) load (descriptive)$
426          (%i2) s2 : read_matrix (file_search ("wind.data"))$
427          (%i3) scatterplot(
428                 submatrix(s2, 1,2,3),
429                 title      = "Data from stations #4 and #5",
430                 point_type = diamant,
431                 point_size = 2,
432                 color      = blue)$
433
434     Diagrama de dispersión tridimensional.
435
436          (%i1) load (descriptive)$
437          (%i2) s2 : read_matrix (file_search ("wind.data"))$
438          (%i3) scatterplot(submatrix (s2, 1,2), nclasses=4)$
439
440     Diagrama de dispersión de cinco dimensiones, con histogramas de
441     cinco classes.
442
443          (%i1) load (descriptive)$
444          (%i2) s2 : read_matrix (file_search ("wind.data"))$
445          (%i3) scatterplot(
446                  s2,
447                  nclasses     = 5,
448                  frequency    = relative,
449                  fill_color   = blue,
450                  fill_density = 0.3,
451                  xtics        = 5)$
452
453     Para dibujar puntos aislados o unidos por segmentos, tanto en dos
454     como en tres dimensiones, véase 'points'.  Véase también
455     'histogram'.
456
457 -- Función: starplot (<data1>, <data2>, ..., <option_1>, <option_2>,
458          ...)
459 -- Función: starplot_description (...)
460
461     Dibuja diagramas de estrellas para variables estadísticas
462     discretas, tanto para una como para más muestras.
463
464     <data> puede ser una lista de resultados provenientes de una
465     muestra o una matriz de <m> filas y <n> columnas, representando <n>
466     muestras de tamaño <m> cada una.
467
468     Las opciones disponibles son:
469
470        * <stars_colors> (valor por defecto, '[]'): una lista de colores
471          para muestras múltiples.  Cuando haya más muestras que colores
472          especificados, los colores que faltan se eligen
473          aleatoriamente.  Véase 'color' para más información.
474
475        * <frequency> (valor por defecto, 'absolute'): indica la escala
476          de los radios.  Valores admitidos son: 'absolute' y
477          'relative'.
478
479        * <ordering> (valor por defecto, 'orderlessp'): los valores
480          admitidos para esta opción son: 'orderlessp' y 'ordergreatp',
481          indicando cómo se deben ordenar los resultados muestrales
482          sobre el eje-<x>.
483
484        * <sample_keys> (valor por defecto, '[]'): es una lista de
485          cadenas de texto a usar como leyendas.  Cuando la lista tenga
486          una longitud diferente de cero o del número de muestras, se
487          devolverá un mensaje de error.
488
489        * <star_center> (valor por defecto, '[0,0]'): centro del
490          diagrama.
491
492        * <star_radius> (valor por defecto, '1'): radio del diagrama.
493
494        * Todas las opciones globales de 'draw', excepto
495          'points_joined', 'point_type', and 'key', que se asignan
496          internamente por 'starplot'.  Si es necesario que el usuario
497          les dé sus propios valores a estas opciones, o quiere
498          construir una escena más compleja, debe hacer uso de
499          'starplot_description'.
500
501        * La siguiente opción local de 'draw': 'line_width'.
502
503     La función 'starplot_description' crea un objeto gráfico útil para
504     formar escenas complejas, junto con otros objetos gráficos.  Se
505     dispone también de la función 'wxstarplot' para crear histogramas
506     incorporados en los interfaces wxMaxima y iMaxima.
507
508     Ejemplo:
509
510     Gráfico basado en frecuencias absolutas.  La localización y el
511     radios lo define el usuario.
512
513          (%i1) load (descriptive)$
514          (%i2) l1: makelist(random(10),k,1,50)$
515          (%i3) l2: makelist(random(10),k,1,200)$
516          (%i4) starplot(
517                  l1, l2,
518                  stars_colors = [blue,red],
519                  sample_keys = ["1st sample", "2nd sample"],
520                  star_center = [1,2],
521                  star_radius = 4,
522                  proportional_axes = xy,
523                  line_width = 2 ) $
524
525 -- Función: stemplot (<m>)
526 -- Función: stemplot (<m>, <option>)
527
528     Dibuja diagrama de tallos y hojas.
529
530     La única opción disponible es:
531
532        * <leaf_unit> (valor por defecto, '1'): indica la unidad de las
533          hojas; debe ser una potencia de 10.
534
535     Ejemplo:
536
537          (%i1) load (descriptive)$
538          (%i2) load(distrib)$
539          (%i3) stemplot(
540                  random_normal(15, 6, 100),
541                  leaf_unit = 0.1);
542          -5|4
543           0|37
544           1|7
545           3|6
546           4|4
547           5|4
548           6|57
549           7|0149
550           8|3
551           9|1334588
552          10|07888
553          11|01144467789
554          12|12566889
555          13|24778
556          14|047
557          15|223458
558          16|4
559          17|11557
560          18|000247
561          19|4467799
562          20|00
563          21|1
564          22|2335
565          23|01457
566          24|12356
567          25|455
568          27|79
569          key: 6|3 =  6.3
570          (%o3)                  done
571
572
573File: maxima.info,  Node: diag,  Next: distrib,  Prev: descriptive,  Up: Top
574
57545 diag
576*******
577
578* Menu:
579
580* Funciones y variables para diag::
581
582
583File: maxima.info,  Node: Funciones y variables para diag,  Prev: diag,  Up: diag
584
58545.1 Funciones y variables para diag
586====================================
587
588 -- Función: diag (<lm>)
589     Genera una matriz cuadrada con las matrices de <lm> en la diagonal,
590     siendo <lm> una lista de matrices o de escalares.
591
592     Ejemplo:
593          (%i1) load("diag")$
594
595          (%i2) a1:matrix([1,2,3],[0,4,5],[0,0,6])$
596
597          (%i3) a2:matrix([1,1],[1,0])$
598
599          (%i4) diag([a1,x,a2]);
600                             [ 1  2  3  0  0  0 ]
601                             [                  ]
602                             [ 0  4  5  0  0  0 ]
603                             [                  ]
604                             [ 0  0  6  0  0  0 ]
605          (%o4)              [                  ]
606                             [ 0  0  0  x  0  0 ]
607                             [                  ]
608                             [ 0  0  0  0  1  1 ]
609                             [                  ]
610                             [ 0  0  0  0  1  0 ]
611
612     Antes de hacer uso de esta función ejecútese 'load("diag")'.
613
614 -- Función: JF (<lambda>,<n>)
615     Devuelve la célula de Jordan de orden <n> con valor propio
616     <lambda>.
617
618     Ejemplo:
619          (%i1) load("diag")$
620
621          (%i2) JF(2,5);
622                              [ 2  1  0  0  0 ]
623                              [               ]
624                              [ 0  2  1  0  0 ]
625                              [               ]
626          (%o2)               [ 0  0  2  1  0 ]
627                              [               ]
628                              [ 0  0  0  2  1 ]
629                              [               ]
630                              [ 0  0  0  0  2 ]
631          (%i3) JF(3,2);
632                                   [ 3  1 ]
633          (%o3)                    [      ]
634                                   [ 0  3 ]
635
636     Antes de hacer uso de esta función ejecútese 'load("diag")'.
637
638 -- Función: jordan (<mat>)
639     Devuelve la forma de Jordan de la matriz <mat>, pero en formato de
640     lista de Maxima.  Para obtener la matriz correspondiente, llámese a
641     la función 'dispJordan' utilizando como argumento la salida de
642     'jordan'.
643
644     Ejemplo:
645          (%i1) load("diag")$
646
647          (%i3) a:matrix([2,0,0,0,0,0,0,0],
648                         [1,2,0,0,0,0,0,0],
649                         [-4,1,2,0,0,0,0,0],
650                         [2,0,0,2,0,0,0,0],
651                         [-7,2,0,0,2,0,0,0],
652                         [9,0,-2,0,1,2,0,0],
653                         [-34,7,1,-2,-1,1,2,0],
654                         [145,-17,-16,3,9,-2,0,3])$
655
656          (%i34) jordan(a);
657          (%o4)             [[2, 3, 3, 1], [3, 1]]
658          (%i5) dispJordan(%);
659                          [ 2  1  0  0  0  0  0  0 ]
660                          [                        ]
661                          [ 0  2  1  0  0  0  0  0 ]
662                          [                        ]
663                          [ 0  0  2  0  0  0  0  0 ]
664                          [                        ]
665                          [ 0  0  0  2  1  0  0  0 ]
666          (%o5)           [                        ]
667                          [ 0  0  0  0  2  1  0  0 ]
668                          [                        ]
669                          [ 0  0  0  0  0  2  0  0 ]
670                          [                        ]
671                          [ 0  0  0  0  0  0  2  0 ]
672                          [                        ]
673                          [ 0  0  0  0  0  0  0  3 ]
674
675     Antes de hacer uso de esta función ejecútese 'load("diag")'.
676     Véanse también 'dispJordan' y 'minimalPoly'.
677
678 -- Función: dispJordan (<l>)
679     Devuelve la matriz de Jordan asociada a la codificación dada por la
680     lista <l>, que habitualmente será la salida de la función 'jordan'.
681
682     Ejemplo:
683          (%i1) load("diag")$
684
685          (%i2) b1:matrix([0,0,1,1,1],
686                          [0,0,0,1,1],
687                          [0,0,0,0,1],
688                          [0,0,0,0,0],
689                          [0,0,0,0,0])$
690
691          (%i3) jordan(b1);
692          (%o3)                  [[0, 3, 2]]
693          (%i4) dispJordan(%);
694                              [ 0  1  0  0  0 ]
695                              [               ]
696                              [ 0  0  1  0  0 ]
697                              [               ]
698          (%o4)               [ 0  0  0  0  0 ]
699                              [               ]
700                              [ 0  0  0  0  1 ]
701                              [               ]
702                              [ 0  0  0  0  0 ]
703
704     Antes de hacer uso de esta función ejecútese 'load("diag")'.
705     Véanse también 'jordan' y 'minimalPoly'.
706
707 -- Función: minimalPoly (<l>)
708     Devuelve el polinomio mínimo asociado a la codificación dada por la
709     lista <l>, que habitualmente será la salida de la función 'jordan'.
710
711     Ejemplo:
712          (%i1) load("diag")$
713
714          (%i2) a:matrix([2,1,2,0],
715                         [-2,2,1,2],
716                         [-2,-1,-1,1],
717                         [3,1,2,-1])$
718
719          (%i3) jordan(a);
720          (%o3)               [[- 1, 1], [1, 3]]
721          (%i4) minimalPoly(%);
722                                      3
723          (%o4)                (x - 1)  (x + 1)
724
725     Antes de hacer uso de esta función ejecútese 'load("diag")'.
726     Véanse también 'jordan' y 'dispJordan'.
727
728 -- Función: ModeMatrix (<A>,<l>)
729     Devuelve la matriz <M> tal que (M^^-1).A.M=J, donde <J> es la forma
730     de Jordan de <A>.  La lista <l> es la forma codificada de la forma
731     de Jordan tal como la devuelve la función 'jordan'.
732
733     Ejemplo:
734          (%i1) load("diag")$
735
736          (%i2) a:matrix([2,1,2,0],
737                    [-2,2,1,2],
738                    [-2,-1,-1,1],
739                    [3,1,2,-1])$
740
741          (%i3) jordan(a);
742          (%o3)               [[- 1, 1], [1, 3]]
743          (%i4) M: ModeMatrix(a,%);
744                            [  1    - 1   1   1 ]
745                            [                   ]
746                            [   1               ]
747                            [ - -   - 1   0   0 ]
748                            [   9               ]
749                            [                   ]
750          (%o4)             [   13              ]
751                            [ - --   1   - 1  0 ]
752                            [   9               ]
753                            [                   ]
754                            [  17               ]
755                            [  --   - 1   1   1 ]
756                            [  9                ]
757          (%i5) is(  (M^^-1).a.M = dispJordan(%o3)  );
758          (%o5)                      true
759     Nótese que 'dispJordan(%o3)' es la forma de Jordan de la matriz
760     'a'.
761
762     Antes de hacer uso de esta función ejecútese 'load("diag")'.
763     Véanse también 'jordan' y 'dispJordan'.
764
765 -- Función: mat_function (<f>,<mat>)
766     Devuelve f(mat), siendo <f> una función analítica y <mat> una
767     matriz.  Este cálculo se basa en la fórmula integral de Cauchy, que
768     establece que si 'f(x)' es analítica y
769          mat=diag([JF(m1,n1),...,JF(mk,nk)]),
770
771     entonces
772
773          f(mat)=ModeMatrix*diag([f(JF(m1,n1)),...,f(JF(mk,nk))])
774                    * ModeMatrix^^(-1)
775
776     Nótese que hay otros métodos alternativos para realizar este
777     cálculo.
778
779     Se presentan algunos ejemplos.
780
781     Ejemplo 1:
782          (%i1) load("diag")$
783
784          (%i2) b2:matrix([0,1,0], [0,0,1], [-1,-3,-3])$
785
786          (%i3) mat_function(exp,t*b2);
787                         2   - t
788                        t  %e          - t     - t
789          (%o3) matrix([-------- + t %e    + %e   ,
790                           2
791                  - t     - t                           - t
792           2    %e      %e        - t           - t   %e
793          t  (- ----- - ----- + %e   ) + t (2 %e    - -----)
794                  t       2                             t
795                         t
796                                   - t          - t     - t
797                 - t       - t   %e        2  %e      %e
798           + 2 %e   , t (%e    - -----) + t  (----- - -----)
799                                   t            2       t
800                         2   - t            - t     - t
801               - t      t  %e        2    %e      %e        - t
802           + %e   ], [- --------, - t  (- ----- - ----- + %e   ),
803                           2                t       2
804                                                   t
805                  - t     - t      2   - t
806             2  %e      %e        t  %e          - t
807          - t  (----- - -----)], [-------- - t %e   ,
808                  2       t          2
809                  - t     - t                           - t
810           2    %e      %e        - t           - t   %e
811          t  (- ----- - ----- + %e   ) - t (2 %e    - -----),
812                  t       2                             t
813                         t
814                - t     - t                 - t
815           2  %e      %e            - t   %e
816          t  (----- - -----) - t (%e    - -----)])
817                2       t                   t
818          (%i4) ratsimp(%);
819                         [   2              - t ]
820                         [ (t  + 2 t + 2) %e    ]
821                         [ -------------------- ]
822                         [          2           ]
823                         [                      ]
824                         [         2   - t      ]
825          (%o4)  Col 1 = [        t  %e         ]
826                         [      - --------      ]
827                         [           2          ]
828                         [                      ]
829                         [     2          - t   ]
830                         [   (t  - 2 t) %e      ]
831                         [   ----------------   ]
832                         [          2           ]
833                   [      2        - t    ]
834                   [    (t  + t) %e       ]
835                   [                      ]
836           Col 2 = [     2            - t ]
837                   [ - (t  - t - 1) %e    ]
838                   [                      ]
839                   [     2          - t   ]
840                   [   (t  - 3 t) %e      ]
841                   [        2   - t       ]
842                   [       t  %e          ]
843                   [       --------       ]
844                   [          2           ]
845                   [                      ]
846                   [      2          - t  ]
847           Col 3 = [    (t  - 2 t) %e     ]
848                   [  - ----------------  ]
849                   [           2          ]
850                   [                      ]
851                   [   2              - t ]
852                   [ (t  - 4 t + 2) %e    ]
853                   [ -------------------- ]
854                   [          2           ]
855
856
857     Ejemplo 2:
858          (%i5) b1:matrix([0,0,1,1,1],
859                          [0,0,0,1,1],
860                          [0,0,0,0,1],
861                          [0,0,0,0,0],
862                          [0,0,0,0,0])$
863
864          (%i6) mat_function(exp,t*b1);
865                            [              2     ]
866                            [             t      ]
867                            [ 1  0  t  t  -- + t ]
868                            [             2      ]
869                            [                    ]
870          (%o6)             [ 0  1  0  t    t    ]
871                            [                    ]
872                            [ 0  0  1  0    t    ]
873                            [                    ]
874                            [ 0  0  0  1    0    ]
875                            [                    ]
876                            [ 0  0  0  0    1    ]
877          (%i7) minimalPoly(jordan(b1));
878                                       3
879          (%o7)                       x
880          (%i8) ident(5)+t*b1+1/2*(t^2)*b1^^2;
881                            [              2     ]
882                            [             t      ]
883                            [ 1  0  t  t  -- + t ]
884                            [             2      ]
885                            [                    ]
886          (%o8)             [ 0  1  0  t    t    ]
887                            [                    ]
888                            [ 0  0  1  0    t    ]
889                            [                    ]
890                            [ 0  0  0  1    0    ]
891                            [                    ]
892                            [ 0  0  0  0    1    ]
893          (%i9) mat_function(exp,%i*t*b1);
894                       [                           2 ]
895                       [                          t  ]
896                       [ 1  0  %i t  %i t  %i t - -- ]
897                       [                          2  ]
898                       [                             ]
899          (%o9)        [ 0  1   0    %i t    %i t    ]
900                       [                             ]
901                       [ 0  0   1     0      %i t    ]
902                       [                             ]
903                       [ 0  0   0     1        0     ]
904                       [                             ]
905                       [ 0  0   0     0        1     ]
906          (%i10) mat_function(cos,t*b1)+%i*mat_function(sin,t*b1);
907                        [                           2 ]
908                        [                          t  ]
909                        [ 1  0  %i t  %i t  %i t - -- ]
910                        [                          2  ]
911                        [                             ]
912          (%o10)        [ 0  1   0    %i t    %i t    ]
913                        [                             ]
914                        [ 0  0   1     0      %i t    ]
915                        [                             ]
916                        [ 0  0   0     1        0     ]
917                        [                             ]
918                        [ 0  0   0     0        1     ]
919
920     Ejemplo 3:
921          (%i11) a1:matrix([2,1,0,0,0,0],
922                           [-1,4,0,0,0,0],
923                           [-1,1,2,1,0,0],
924                           [-1,1,-1,4,0,0],
925                           [-1,1,-1,1,3,0],
926                           [-1,1,-1,1,1,2])$
927
928          (%i12) fpow(x):=block([k],declare(k,integer),x^k)$
929
930          (%i13) mat_function(fpow,a1);
931                          [  k      k - 1 ]         [      k - 1    ]
932                          [ 3  - k 3      ]         [   k 3         ]
933                          [               ]         [               ]
934                          [       k - 1   ]         [  k      k - 1 ]
935                          [  - k 3        ]         [ 3  + k 3      ]
936                          [               ]         [               ]
937                          [       k - 1   ]         [      k - 1    ]
938                          [  - k 3        ]         [   k 3         ]
939          (%o13)  Col 1 = [               ] Col 2 = [               ]
940                          [       k - 1   ]         [      k - 1    ]
941                          [  - k 3        ]         [   k 3         ]
942                          [               ]         [               ]
943                          [       k - 1   ]         [      k - 1    ]
944                          [  - k 3        ]         [   k 3         ]
945                          [               ]         [               ]
946                          [       k - 1   ]         [      k - 1    ]
947                          [  - k 3        ]         [   k 3         ]
948                   [       0       ]         [       0       ]
949                   [               ]         [               ]
950                   [       0       ]         [       0       ]
951                   [               ]         [               ]
952                   [  k      k - 1 ]         [      k - 1    ]
953                   [ 3  - k 3      ]         [   k 3         ]
954                   [               ]         [               ]
955           Col 3 = [       k - 1   ] Col 4 = [  k      k - 1 ]
956                   [  - k 3        ]         [ 3  + k 3      ]
957                   [               ]         [               ]
958                   [       k - 1   ]         [      k - 1    ]
959                   [  - k 3        ]         [   k 3         ]
960                   [               ]         [               ]
961                   [       k - 1   ]         [      k - 1    ]
962                   [  - k 3        ]         [   k 3         ]
963                   [    0    ]
964                   [         ]         [ 0  ]
965                   [    0    ]         [    ]
966                   [         ]         [ 0  ]
967                   [    0    ]         [    ]
968                   [         ]         [ 0  ]
969           Col 5 = [    0    ] Col 6 = [    ]
970                   [         ]         [ 0  ]
971                   [    k    ]         [    ]
972                   [   3     ]         [ 0  ]
973                   [         ]         [    ]
974                   [  k    k ]         [  k ]
975                   [ 3  - 2  ]         [ 2  ]
976
977     Antes de hacer uso de esta función ejecútese 'load("diag")'.
978
979
980File: maxima.info,  Node: distrib,  Next: draw,  Prev: diag,  Up: Top
981
98246 distrib
983**********
984
985* Menu:
986
987* Introducción a distrib::
988* Funciones y variables para distribuciones continuas::
989* Funciones y variables para distribuciones discretas::
990
991
992File: maxima.info,  Node: Introducción a distrib,  Next: Funciones y variables para distribuciones continuas,  Prev: distrib,  Up: distrib
993
99446.1 Introducción a distrib
995===========================
996
997El paquete 'distrib' contiene un conjunto de funciones para la
998realización de cálculos probabilísticos con modelos univariantes, tanto
999discretos como continuos.
1000
1001A continuación un breve recordatorio de las deficiones básicas sobre
1002distribuciones de probabilidad.
1003
1004Sea f(x) la <función de densidad> de una variable aleatoria X
1005absolutamente continua.  La <función de distribución> se define como
1006                            x
1007                           /
1008                           [
1009                    F(x) = I     f(u) du
1010                           ]
1011                           /
1012                            minf
1013que es igual a la probabilidad <Pr(X <= x)>.
1014
1015La <media> es un parámetro de localización y se define como
1016                          inf
1017                         /
1018                         [
1019                E[X]  =  I   x f(x) dx
1020                         ]
1021                         /
1022                          minf
1023
1024La <varianza> es una medida de dispersión,
1025                      inf
1026                     /
1027                     [                    2
1028              V[X] = I     f(x) (x - E[X])  dx
1029                     ]
1030                     /
1031                      minf
1032que es un número real positivo.  La raíz cuadrada de la varianza es la
1033<desviación típica>, D[X]=sqrt(V[X]), siendo otra medida de dispersión.
1034
1035El <coeficiente de asimetría> es una medida de forma,
1036                      inf
1037                     /
1038                 1   [                    3
1039       SK[X] = ----- I     f(x) (x - E[X])  dx
1040                   3 ]
1041               D[X]  /
1042                      minf
1043
1044Y el <coeficiente de curtosis> mide el apuntamiento de la densidad,
1045                      inf
1046                     /
1047                 1   [                    4
1048       KU[X] = ----- I     f(x) (x - E[X])  dx - 3
1049                   4 ]
1050               D[X]  /
1051                      minf
1052Si X es normal, KU[X]=0.  De hecho, tanto la asimetría como la curtosis
1053son parámetros de forma para medir la no normalidad de una distribución.
1054
1055Si la variable aleatoria X es discreta, su función de densidad, o de
1056<probabiliad>, f(x) toma valores positivos dentro de un conjunto
1057numerable de valores x_i, y cero en cualquier otro lugar.  En este caso,
1058la función de distribución es
1059                            ====
1060                            \
1061                     F(x) =  >    f(x )
1062                            /        i
1063                            ====
1064                           x <= x
1065                            i
1066
1067La media, varianza, desviación típica y los coeficientes de asimetría y
1068curtosis adquieren las formas
1069                            ====
1070                            \
1071                     E[X] =  >  x  f(x ) ,
1072                            /    i    i
1073                            ====
1074                             x
1075                              i
1076
1077                     ====
1078                     \                     2
1079             V[X] =   >    f(x ) (x - E[X])  ,
1080                     /        i    i
1081                     ====
1082                      x
1083                       i
1084
1085                    D[X] = sqrt(V[X]),
1086
1087                          ====
1088                   1      \                     3
1089       SK[X] =  -------    >    f(x ) (x - E[X])
1090                D[X]^3    /        i    i
1091                          ====
1092                           x
1093                            i
1094y
1095                          ====
1096                   1      \                     4
1097       KU[X] =  -------    >    f(x ) (x - E[X])   - 3 ,
1098                D[X]^4    /        i    i
1099                          ====
1100                           x
1101                            i
1102respectivamente.
1103
1104Por favor, consúltese cualquier manual introductorio de probabilidad y
1105estadística para más información sobre toda esta parafernalia
1106matemática.
1107
1108Se sigue cierta convención a la hora de nombrar las funciones del
1109paquete 'distrib'.  Cada nombre tiene dos partes, el primero hace
1110referencia a la función o parámetro que se quiere calcular,
1111     Funciones:
1112        Función de densidad        (pdf_*)
1113        Función de distribución    (cdf_*)
1114        Cuantil                    (quantile_*)
1115        Media                      (mean_*)
1116        Varianza                   (var_*)
1117        Desviación típica          (std_*)
1118        Coeficiente de asimetría   (skewness_*)
1119        Coeficiente de curtosis    (kurtosis_*)
1120        Valor aleatorio            (random_*)
1121
1122La segunda parte hace referencia explícita al modelo probabilístico,
1123     Distribuciones continuas:
1124        Normal              (*normal)
1125        Student             (*student_t)
1126        Chi^2               (*chi2)
1127        Chi^2 no central    (*noncentral_chi2)
1128        F                   (*f)
1129        Exponencial         (*exp)
1130        Lognormal           (*lognormal)
1131        Gamma               (*gamma)
1132        Beta                (*beta)
1133        Continua uniforme   (*continuous_uniform)
1134        Logística           (*logistic)
1135        Pareto              (*pareto)
1136        Weibull             (*weibull)
1137        Rayleigh            (*rayleigh)
1138        Laplace             (*laplace)
1139        Cauchy              (*cauchy)
1140        Gumbel              (*gumbel)
1141
1142     Distribuciones discretas:
1143        Binomial             (*binomial)
1144        Poisson              (*poisson)
1145        Bernoulli            (*bernoulli)
1146        Geométrica           (*geometric)
1147        Uniforme discreta    (*discrete_uniform)
1148        Hipergeométrica      (*hypergeometric)
1149        Binomial negativa    (*negative_binomial)
1150        Finita discreta      (*general_finite_discrete)
1151
1152Por ejemplo, 'pdf_student_t(x,n)' es la función de densidad de la
1153distribución de Student con <n> grados de libertad, 'std_pareto(a,b)' es
1154la desviación típica de la distribución de Pareto de parámetros <a> y
1155<b>, y 'kurtosis_poisson(m)' es el coeficiente de curtosis de la
1156distribución de Poisson de media <m>.
1157
1158Para poder hacer uso del paquete 'distrib' es necesario cargarlo primero
1159tecleando
1160     (%i1) load(distrib)$
1161
1162Para comentarios, errores o sugerencias, por favor contáctese conmigo en
1163<'riotorto AT yahoo DOT com'>.
1164
1165
1166File: maxima.info,  Node: Funciones y variables para distribuciones continuas,  Next: Funciones y variables para distribuciones discretas,  Prev: Introducción a distrib,  Up: distrib
1167
116846.2 Funciones y variables para distribuciones continuas
1169========================================================
1170
1171 -- Función: pdf_normal (<x>,<m>,<s>)
1172     Devuelve el valor correspondiente a <x> de la función de densidad
1173     de la variable aleatoria Normal(m,s), con s>0.  Para hacer uso de
1174     esta función, ejecútese primero 'load(distrib)'.
1175
1176 -- Función: cdf_normal (<x>,<m>,<s>)
1177     Devuelve el valor correspondiente a <x> de la función de
1178     distribución de la variable aleatoria Normal(m,s), con s>0.  Esta
1179     función se define en términos de la función de error, 'erf', de
1180     Maxima.
1181
1182          (%i1) load (distrib)$
1183          (%i2) cdf_normal(x,m,s);
1184                                              x - m
1185                                        erf(---------)
1186                                            sqrt(2) s    1
1187          (%o2)                         -------------- + -
1188                                              2          2
1189
1190     Véase también 'erf'.
1191
1192 -- Función: quantile_normal (<q>,<m>,<s>)
1193     Devuelve el <q>-cuantil de una variable aleatoria Normal(m,s), con
1194     s>0; en otras palabras, es la inversa de 'cdf_normal'.  El
1195     argumento <q> debe ser un número de [0,1].  Para hacer uso de esta
1196     función, ejecútese primero 'load(distrib)'.
1197
1198          (%i1) load (distrib)$
1199          (%i2) quantile_normal(95/100,0,1);
1200                                                9
1201          (%o2)             sqrt(2) inverse_erf(--)
1202                                                10
1203          (%i3) float(%);
1204          (%o3)               1.644853626951472
1205
1206 -- Función: mean_normal (<m>,<s>)
1207     Devuelve la media de una variable aleatoria Normal(m,s), con s>0,
1208     es decir <m>.  Para hacer uso de esta función, ejecútese primero
1209     'load(distrib)'.
1210
1211 -- Función: var_normal (<m>,<s>)
1212     Devuelve la varianza de una variable aleatoria Normal(m,s), con
1213     s>0, es decir <s^2>.
1214
1215 -- Función: std_normal (<m>,<s>)
1216     Devuelve la desviación típica de una variable aleatoria
1217     Normal(m,s), con s>0, es decir <s>.  Para hacer uso de esta
1218     función, ejecútese primero 'load(distrib)'.
1219
1220 -- Función: skewness_normal (<m>,<s>)
1221     Devuelve el coeficiente de asimetría de una variable aleatoria
1222     Normal(m,s), con s>0, que es siempre igual a 0.  Para hacer uso de
1223     esta función, ejecútese primero 'load(distrib)'.
1224
1225 -- Función: kurtosis_normal (<m>,<s>)
1226     Devuelve el coeficiente de curtosis de una variable aleatoria
1227     Normal(m,s), con s>0, que es siempre igual a 0.  Para hacer uso de
1228     esta función, ejecútese primero 'load(distrib)'.
1229
1230 -- Función: random_normal (<m>,<s>)
1231 -- Función: random_normal (<m>,<s>,<n>)
1232     Devuelve un valor aleatorio Normal(m,s), con s>0.  Llamando a
1233     'random_normal' con un tercer argumento <n>, se simula una muestra
1234     aleatoria de tamaño <n>.
1235
1236     El algoritmo de simulación es el de Box-Mueller, tal como está
1237     descrito en Knuth, D.E. (1981) <Seminumerical Algorithms.  The Art
1238     of Computer Programming.> Addison-Wesley.
1239
1240     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1241
1242 -- Función: pdf_student_t (<x>,<n>)
1243     Devuelve el valor correspondiente a <x> de la función de densidad
1244     de una variable aleatoria de Student t(n), con n>0.  Para hacer uso
1245     de esta función, ejecútese primero 'load(distrib)'.
1246
1247 -- Función: cdf_student_t (<x>,<n>)
1248     Devuelve el valor correspondiente a <x> de la función de
1249     distribución de una variable aleatoria de Student t(n), con n>0.
1250
1251          (%i1) load (distrib)$
1252          (%i2) cdf_student_t(1/2, 7/3);
1253                                                   7  1  28
1254                       beta_incomplete_regularized(-, -, --)
1255                                                   6  2  31
1256          (%o2)    1 - -------------------------------------
1257                                         2
1258          (%i3) float(%);
1259          (%o3)                .6698450596140415
1260
1261 -- Función: quantile_student_t (<q>,<n>)
1262     Devuelve el <q>-cuantil de una variable aleatoria de Student t(n),
1263     con n>0; en otras palabras, se trata de la inversa de
1264     'cdf_student_t'.  El argumento <q> debe ser un número de [0,1].
1265     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1266
1267 -- Función: mean_student_t (<n>)
1268     Devuelve la media de una variable aleatoria de Student t(n), con
1269     n>0, que vale siempre 0.  Para hacer uso de esta función, ejecútese
1270     primero 'load(distrib)'.
1271
1272 -- Función: var_student_t (<n>)
1273     Devuelve la varianza de una variable aleatoria de Student t(n), con
1274     n>2.
1275
1276          (%i1) load (distrib)$
1277          (%i2) var_student_t(n);
1278                                          n
1279          (%o2)                         -----
1280                                        n - 2
1281
1282 -- Función: std_student_t (<n>)
1283     Devuelve la desviación típica de una variable aleatoria de Student
1284     t(n), con n>2.  Para hacer uso de esta función, ejecútese primero
1285     'load(distrib)'.
1286
1287 -- Función: skewness_student_t (<n>)
1288     Devuelve el coeficiente de asimetría de una variable aleatoria de
1289     Student t(n), con n>3, que vale siempre 0.  Para hacer uso de esta
1290     función, ejecútese primero 'load(distrib)'.
1291
1292 -- Función: kurtosis_student_t (<n>)
1293     Devuelve el coeficiente de curtosis una variable aleatoria de
1294     Student t(n), con n>4.  Para hacer uso de esta función, ejecútese
1295     primero 'load(distrib)'.
1296
1297 -- Función: random_student_t (<n>)
1298 -- Función: random_student_t (<n>,<m>)
1299     Devuelve un valor aleatorio t(n), con n>0.  Llamando a
1300     'random_student_t' con un segundo argumento <m>, se obtiene una
1301     muestra aleatoria simulada de tamaño <m>.
1302
1303     El algoritmo utilizado está basado en el hecho de que si <Z> es una
1304     variable aleatoria normal N(0,1) y S^2 es una chi cuadrada de <n>
1305     grados de libertad, Chi^2(n), entonces
1306                                     Z
1307                           X = -------------
1308                               /   2  \ 1/2
1309                               |  S   |
1310                               | ---  |
1311                               \  n   /
1312
1313     es una variable aleatoria de Student de <n> grados de libertad,
1314     t(n).
1315
1316     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1317
1318 -- Función: pdf_noncentral_student_t (<x>,<n>,<ncp>)
1319     Devuelve el valor correspondiente a <x> de la función de densidad
1320     de una variable aleatoria no central de Student nc_t(n,ncp), con
1321     n>0 grados de libertad y parámetro de no centralidad ncp.  Para
1322     hacer uso de esta función, ejecútese primero 'load(distrib)'.
1323
1324     En ocasiones es necesario hacer algún trabajo extra para obtener el
1325     resultado final.
1326
1327          (%i1) load (distrib)$
1328          (%i2) expand(pdf_noncentral_student_t(3,5,0.1));
1329                                     7/2                         7/2
1330                0.04296414417400905 5      1.323650307289301e-6 5
1331          (%o2) ------------------------ + -------------------------
1332                   3/2   5/2                       sqrt(%pi)
1333                  2    14    sqrt(%pi)
1334                                                                  7/2
1335                                             1.94793720435093e-4 5
1336                                           + ------------------------
1337                                                       %pi
1338          (%i3) float(%);
1339          (%o3)          .02080593159405669
1340
1341 -- Función: cdf_noncentral_student_t (<x>,<n>,<ncp>)
1342     Devuelve el valor correspondiente a <x> de la función de
1343     distribución de una variable aleatoria no central de Student
1344     nc_t(n,ncp), con n>0 grados de libertad y parámetro de no
1345     centralidad ncp.  Esta función no tiene expresión compacta y se
1346     calcula numéricamente.  Para hacer uso de esta función, ejecútese
1347     primero 'load(distrib)'.
1348
1349          (%i1) load (distrib)$
1350          (%i2) cdf_noncentral_student_t(-2,5,-5);
1351          (%o2)          .9952030093319743
1352
1353 -- Función: quantile_noncentral_student_t (<q>,<n>,<ncp>)
1354     Devuelve el <q>-cuantil de una variable aleatoria no central de
1355     Student nc_t(n,ncp), con n>0 grados de libertad y parámetro de no
1356     centralidad ncp; en otras palabras, se trata de la inversa de
1357     'cdf_noncentral_student_t'.  El argumento <q> debe ser un número de
1358     [0,1].  Para hacer uso de esta función, ejecútese primero
1359     'load(distrib)'.
1360
1361 -- Función: mean_noncentral_student_t (<n>,<ncp>)
1362     Devuelve la media de una variable aleatoria no central de Student
1363     nc_t(n,ncp), con n>1 grados de libertad y parámetro de no
1364     centralidad ncp.  Para hacer uso de esta función, ejecútese primero
1365     'load(distrib)'.
1366
1367          (%i1) load (distrib)$
1368          (%i2) mean_noncentral_student_t(df,k);
1369                             df - 1
1370                       gamma(------) sqrt(df) k
1371                               2
1372          (%o2)        ------------------------
1373                                        df
1374                          sqrt(2) gamma(--)
1375                                        2
1376
1377 -- Función: var_noncentral_student_t (<n>,<ncp>)
1378     Devuelve la varianza de una variable aleatoria no central de
1379     Student nc_t(n,ncp), con n>2 grados de libertad y parámetro de no
1380     centralidad ncp.  Para hacer uso de esta función, ejecútese primero
1381     'load(distrib)'.
1382
1383 -- Función: std_noncentral_student_t (<n>,<ncp>)
1384     Devuelve la desviación típica de una variable aleatoria no central
1385     de Student nc_t(n,ncp), con n>2 grados de libertad y parámetro de
1386     no centralidad ncp.  Para hacer uso de esta función, ejecútese
1387     primero 'load(distrib)'.
1388
1389 -- Función: skewness_noncentral_student_t (<n>,<ncp>)
1390     Devuelve el coeficiente de asimetría de una variable aleatoria no
1391     central de Student nc_t(n,ncp), con n>3 grados de libertad y
1392     parámetro de no centralidad ncp.  Para hacer uso de esta función,
1393     ejecútese primero 'load(distrib)'.
1394
1395 -- Función: kurtosis_noncentral_student_t (<n>,<ncp>)
1396     Devuelve el coeficiente de curtosis de una variable aleatoria no
1397     central de Student nc_t(n,ncp), con n>4 grados de libertad y
1398     parámetro de no centralidad ncp.  Para hacer uso de esta función,
1399     ejecútese primero 'load(distrib)'.
1400
1401 -- Función: random_noncentral_student_t (<n>,<ncp>)
1402 -- Función: random_noncentral_student_t (<n>,<ncp>,<m>)
1403     Devuelve un valor aleatorio nc_t(n,ncp), con n>0.  Llamando a
1404     'random_noncentral_student_t' con un tercer argumento <m>, se
1405     obtiene una muestra aleatoria simulada de tamaño <m>.
1406
1407     El algoritmo utilizado está basado en el hecho de que si <X> es una
1408     variable aleatoria normal N(ncp,1) y S^2 es una chi cuadrada de <n>
1409     grados de libertad, Chi^2(n), entonces
1410                                     X
1411                           U = -------------
1412                               /   2  \ 1/2
1413                               |  S   |
1414                               | ---  |
1415                               \  n   /
1416
1417     es una variable aleatoria no central de Student de <n> grados de
1418     libertad y parámetro de no centralidad ncp, nc_t(n,ncp).
1419
1420     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1421
1422 -- Función: pdf_chi2 (<x>,<n>)
1423     Devuelve el valor correspondiente a <x> de la función de densidad
1424     de una variable aleatoria chi-cuadrado Chi^2(n), con n>0.  La
1425     variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1426
1427          (%i1) load (distrib)$
1428          (%i2) pdf_chi2(x,n);
1429                                   n/2 - 1   - x/2
1430                                  x        %e
1431          (%o2)                   ----------------
1432                                    n/2       n
1433                                   2    gamma(-)
1434                                              2
1435
1436 -- Función: cdf_chi2 (<x>,<n>)
1437     Devuelve el valor correspondiente a <x> de la función de
1438     distribución de una variable aleatoria chi-cuadrado Chi^2(n), con
1439     n>0.
1440
1441          (%i1) load (distrib)$
1442          (%i2) cdf_chi2(3,4);
1443                                                         3
1444          (%o2)      1 - gamma_incomplete_regularized(2, -)
1445                                                         2
1446          (%i3) float(%);
1447          (%o3)               .4421745996289256
1448
1449 -- Función: quantile_chi2 (<q>,<n>)
1450     Devuelve el <q>-cuantil de una variable aleatoria Chi^2(n), con
1451     n>0; en otras palabras, se trata de la inversa de 'cdf_chi2'.  El
1452     argumento <q> debe ser un número de [0,1].
1453
1454     Esta función no tiene expresión compacta y se calcula
1455     numéricamente.
1456
1457          (%i1) load (distrib)$
1458          (%i2) quantile_chi2(0.99,9);
1459          (%o2)                   21.66599433346194
1460
1461 -- Función: mean_chi2 (<n>)
1462     Devuelve la media de una variable aleatoria Chi^2(n), con n>0.
1463
1464     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1465
1466          (%i1) load (distrib)$
1467          (%i2) mean_chi2(n);
1468          (%o2)                           n
1469
1470 -- Función: var_chi2 (<n>)
1471     Devuelve la varianza de una variable aleatoria Chi^2(n), con n>0.
1472
1473     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1474
1475          (%i1) load (distrib)$
1476          (%i2) var_chi2(n);
1477          (%o2)                          2 n
1478
1479 -- Función: std_chi2 (<n>)
1480     Devuelve la desviación típica de una variable aleatoria Chi^2(n),
1481     con n>0.
1482
1483     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1484
1485          (%i1) load (distrib)$
1486          (%i2) std_chi2(n);
1487          (%o2)                    sqrt(2) sqrt(n)
1488
1489 -- Función: skewness_chi2 (<n>)
1490     Devuelve el coeficiente de asimetría de una variable aleatoria
1491     Chi^2(n), con n>0.
1492
1493     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1494
1495          (%i1) load (distrib)$
1496          (%i2) skewness_chi2(n);
1497                                               3/2
1498                                              2
1499          (%o2)                              -------
1500                                             sqrt(n)
1501
1502 -- Función: kurtosis_chi2 (<n>)
1503     Devuelve el coeficiente de curtosis una variable aleatoria
1504     Chi^2(n), con n>0.
1505
1506     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).
1507
1508          (%i1) load (distrib)$
1509          (%i2) kurtosis_chi2(n);
1510                                         12
1511          (%o2)                          --
1512                                         n
1513
1514 -- Función: random_chi2 (<n>)
1515 -- Función: random_chi2 (<n>,<m>)
1516     Devuelve un valor aleatorio Chi^2(n), con n>0.  Llamando a
1517     'random_chi2' con un segundo argumento <m>, se simulará una muestra
1518     aleatoria de tamaño <m>.
1519
1520     La simulación está basada en el algoritmo de Ahrens-Cheng.  Véase
1521     'random_gamma' para más detalles.
1522
1523     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1524
1525 -- Función: pdf_noncentral_chi2 (<x>,<n>,<ncp>)
1526     Devuelve el valor correspondiente a <x> de la función de densidad
1527     de una variable aleatoria chi-cuadrado no centrada nc_Chi^2(n,ncp),
1528     con n>0 y parámetro de no centralidad ncp>=0.  Para hacer uso de
1529     esta función ejecútese primero 'load(distrib)'.
1530
1531 -- Función: cdf_noncentral_chi2 (<x>,<n>,<ncp>)
1532     Devuelve el valor correspondiente a <x> de la función de
1533     distribución de una variable aleatoria chi-cuadrado no centrada
1534     nc_Chi^2(n,ncp), con n>0 y parámetro de no centralidad ncp>=0.
1535
1536 -- Función: quantile_noncentral_chi2 (<q>,<n>,<ncp>)
1537     Devuelve el <q>-cuantil de una variable aleatoria chi-cuadrado no
1538     centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no centralidad
1539     ncp>=0; en otras palabras, se trata de la inversa de
1540     'cdf_noncentral_chi2'.  El argumento <q> debe ser un número de
1541     [0,1].
1542
1543     Esta función no tiene expresión compacta y se calcula
1544     numéricamente.
1545
1546 -- Función: mean_noncentral_chi2 (<n>,<ncp>)
1547     Devuelve la media de una variable aleatoria chi-cuadrado no
1548     centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no centralidad
1549     ncp>=0.
1550
1551 -- Función: var_noncentral_chi2 (<n>,<ncp>)
1552     Devuelve la varianza de una variable aleatoria chi-cuadrado no
1553     centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no centralidad
1554     ncp>=0.
1555
1556 -- Función: std_noncentral_chi2 (<n>,<ncp>)
1557     Devuelve la desviación típica de una variable aleatoria
1558     chi-cuadrado no centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no
1559     centralidad ncp>=0.
1560
1561 -- Función: skewness_noncentral_chi2 (<n>,<ncp>)
1562     Devuelve el coeficiente de asimetría de una variable aleatoria
1563     chi-cuadrado no centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no
1564     centralidad ncp>=0.
1565
1566 -- Función: kurtosis_noncentral_chi2 (<n>,<ncp>)
1567     Devuelve el coeficiente de curtosis una variable aleatoria
1568     chi-cuadrado no centrada nc_Chi^2(n,ncp), con n>0 y parámetro de no
1569     centralidad ncp>=0.
1570
1571 -- Función: random_noncentral_chi2 (<n>,<ncp>)
1572 -- Función: random_noncentral_chi2 (<n>,<ncp>,<m>)
1573     Devuelve un valor aleatorio nc_Chi^2(n,ncp), con n>0 y parámetro de
1574     no centralidad ncp>=0.  Llamando a 'random_noncentral_chi2' con un
1575     tercer argumento <m>, se simulará una muestra aleatoria de tamaño
1576     <m>.
1577
1578     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1579
1580 -- Función: pdf_f (<x>,<m>,<n>)
1581     Devuelve el valor correspondiente a <x> de la función de densidad
1582     de una variable aleatoria F(m,n), con m,n>0.  Para hacer uso de
1583     esta función, ejecútese primero 'load(distrib)'.
1584
1585 -- Función: cdf_f (<x>,<m>,<n>)
1586     Devuelve el valor correspondiente a <x> de la función de
1587     distribución de una variable aleatoria F(m,n), con m,n>0.
1588
1589          (%i1) load (distrib)$
1590          (%i2) cdf_f(2,3,9/4);
1591                                                   9  3  3
1592          (%o2)    1 - beta_incomplete_regularized(-, -, --)
1593                                                   8  2  11
1594          (%i3) float(%);
1595          (%o3)                 0.66756728179008
1596
1597 -- Función: quantile_f (<q>,<m>,<n>)
1598     Devuelve el <q>-cuantil de una variable aleatoria F(m,n), con
1599     m,n>0; en otras palabras, se trata de la inversa de 'cdf_f'.  El
1600     argumento <q> debe ser un número de [0,1].
1601
1602          (%i1) load (distrib)$
1603          (%i2) quantile_f(2/5,sqrt(3),5);
1604                                         2
1605          (%o2)               quantile_f(-, sqrt(3), 5)
1606                                         5
1607          (%i3) %,numer;
1608          (%o3)                   0.518947838573693
1609
1610 -- Función: mean_f (<m>,<n>)
1611     Devuelve la media de una variable aleatoria F(m,n), con m>0, n>2.
1612     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1613
1614 -- Función: var_f (<m>,<n>)
1615     Devuelve la varianza de una variable aleatoria F(m,n), con m>0,
1616     n>4.  Para hacer uso de esta función, ejecútese primero
1617     'load(distrib)'.
1618
1619 -- Función: std_f (<m>,<n>)
1620     Devuelve la desviación típica de una variable aleatoria F(m,n), con
1621     m>0, n>4.  Para hacer uso de esta función, ejecútese primero
1622     'load(distrib)'.
1623
1624 -- Función: skewness_f (<m>,<n>)
1625     Devuelve el coeficiente de asimetría de una variable aleatoria
1626     F(m,n), con m>0, n>6.  Para hacer uso de esta función, ejecútese
1627     primero 'load(distrib)'.
1628
1629 -- Función: kurtosis_f (<m>,<n>)
1630     Devuelve el coeficiente de curtosis una variable aleatoria F(m,n),
1631     con m>0, n>8.  Para hacer uso de esta función, ejecútese primero
1632     'load(distrib)'.
1633
1634 -- Función: random_f (<m>,<n>)
1635 -- Función: random_f (<m>,<n>,<k>)
1636     Devuelve un valor aleatorio F(m,n), con m,n>0.  Llamando a
1637     'random_f' con un tercer argumento <k>, se simulará una muestra
1638     aleatoria de tamaño <k>.
1639
1640     El algoritmo de simulación está basado en el hecho de que si <X> es
1641     una variable aleatoria Chi^2(m) y Y es una Chi^2(n), entonces
1642                                  n X
1643                              F = ---
1644                                  m Y
1645
1646     es una variable aleatoria F con <m> y <n> grados de libertad,
1647     F(m,n).
1648
1649     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1650
1651 -- Función: pdf_exp (<x>,<m>)
1652     Devuelve el valor correspondiente a <x> de la función de densidad
1653     de una variable aleatoria Exponencial(m), con m>0.
1654
1655     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1656
1657          (%i1) load (distrib)$
1658          (%i2) pdf_exp(x,m);
1659                                          - m x
1660          (%o2)                       m %e
1661
1662 -- Función: cdf_exp (<x>,<m>)
1663     Devuelve el valor correspondiente a <x> de la función de
1664     distribución de una variable aleatoria Exponencial(m), con m>0.
1665
1666     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1667
1668          (%i1) load (distrib)$
1669          (%i2) cdf_exp(x,m);
1670                                           - m x
1671          (%o2)                      1 - %e
1672
1673 -- Función: quantile_exp (<q>,<m>)
1674     Devuelve el <q>-cuantil de una variable aleatoria Exponencial(m),
1675     con m>0; en otras palabras, se trata de la inversa de 'cdf_exp'.
1676     El argumento <q> debe ser un número de [0,1].
1677
1678     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1679
1680          (%i1) load (distrib)$
1681          (%i2) quantile_exp(0.56,5);
1682          (%o2)                   .1641961104139661
1683          (%i3) quantile_exp(0.56,m);
1684                                                      1
1685          (%o3)             quantile_weibull(0.56, 1, -)
1686                                                      m
1687
1688 -- Función: mean_exp (<m>)
1689     Devuelve la media de una variable aleatoria Exponencial(m), con
1690     m>0.
1691
1692     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1693
1694          (%i1) load (distrib)$
1695          (%i2) mean_exp(m);
1696                                          1
1697          (%o2)                           -
1698                                          m
1699
1700 -- Función: var_exp (<m>)
1701     Devuelve la varianza de una variable aleatoria Exponencial(m), con
1702     m>0.
1703
1704     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1705
1706          (%i1) load (distrib)$
1707          (%i2) var_exp(m);
1708                                         1
1709          (%o2)                          --
1710                                          2
1711                                         m
1712
1713 -- Función: std_exp (<m>)
1714     Devuelve la desviación típica de una variable aleatoria
1715     Exponencial(m), con m>0.
1716
1717     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1718
1719          (%i1) load (distrib)$
1720          (%i2) std_exp(m);
1721                                          1
1722          (%o2)                           -
1723                                          m
1724
1725 -- Función: skewness_exp (<m>)
1726     Devuelve el coeficiente de asimetría de una variable aleatoria
1727     Exponencial(m), con m>0.
1728
1729     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1730
1731          (%i1) load (distrib)$
1732          (%i2) skewness_exp(m);
1733          (%o2)                           2
1734
1735 -- Función: kurtosis_exp (<m>)
1736     Devuelve el coeficiente de curtosis una variable aleatoria
1737     Exponencial(m), con m>0.
1738
1739     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m).
1740
1741          (%i1) load (distrib)$
1742          (%i2) kurtosis_exp(m);
1743          (%o3)                           6
1744
1745 -- Función: random_exp (<m>)
1746 -- Función: random_exp (<m>,<k>)
1747     Devuelve un valor aleatorio Exponencial(m), con m>0.  Llamando a
1748     'random_exp2' con un segundo argumento <k>, se simulará una muestra
1749     aleatoria de tamaño <k>.
1750
1751     El algoritmo de simulación está basado en el método inverso.
1752
1753     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1754
1755 -- Función: pdf_lognormal (<x>,<m>,<s>)
1756     Devuelve el valor correspondiente a <x> de la función de densidad
1757     de una variable aleatoria Lognormal(m,s), con s>0.  Para hacer uso
1758     de esta función, ejecútese primero 'load(distrib)'.
1759
1760 -- Función: cdf_lognormal (<x>,<m>,<s>)
1761     Devuelve el valor correspondiente a <x> de la función de
1762     distribución de una variable aleatoria Lognormal(m,s), con s>0.
1763     Esta función se define en términos de la función de error, 'erf',
1764     de Maxima.
1765
1766          (%i1) load (distrib)$
1767          (%i2) assume(x>0, s>0)$  cdf_lognormal(x,m,s);
1768                                     log(x) - m
1769                                 erf(----------)
1770                                     sqrt(2) s     1
1771          (%o2)                  --------------- + -
1772                                        2          2
1773
1774     Véase también 'erf'.
1775
1776 -- Función: quantile_lognormal (<q>,<m>,<s>)
1777     Devuelve el <q>-cuantil de una variable aleatoria Lognormal(m,s),
1778     con s>0; en otras palabras, se trata de la inversa de
1779     'cdf_lognormal'.  El argumento <q> debe ser un número de [0,1].
1780     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1781
1782 -- Función: mean_lognormal (<m>,<s>)
1783     Devuelve la media de una variable aleatoria Lognormal(m,s), con
1784     s>0.  Para hacer uso de esta función, ejecútese primero
1785     'load(distrib)'.
1786
1787 -- Función: var_lognormal (<m>,<s>)
1788     Devuelve la varianza de una variable aleatoria Lognormal(m,s), con
1789     s>0.  Para hacer uso de esta función, ejecútese primero
1790     'load(distrib)'.
1791
1792 -- Función: std_lognormal (<m>,<s>)
1793     Devuelve la desviación típica de una variable aleatoria
1794     Lognormal(m,s), con s>0.  Para hacer uso de esta función, ejecútese
1795     primero 'load(distrib)'.
1796
1797 -- Función: skewness_lognormal (<m>,<s>)
1798     Devuelve el coeficiente de asimetría de una variable aleatoria
1799     Lognormal(m,s), con s>0.  Para hacer uso de esta función, ejecútese
1800     primero 'load(distrib)'.
1801
1802 -- Función: kurtosis_lognormal (<m>,<s>)
1803     Devuelve el coeficiente de curtosis una variable aleatoria
1804     Lognormal(m,s), con s>0.  Para hacer uso de esta función, ejecútese
1805     primero 'load(distrib)'.
1806
1807 -- Función: random_lognormal (<m>,<s>)
1808 -- Función: random_lognormal (<m>,<s>,<n>)
1809     Devuelve un valor aleatorio Lognormal(m,s), con s>0.  Llamando a
1810     'random_lognormal' con un tercer argumento <n>, se simulará una
1811     muestra aleatoria de tamaño <n>.
1812
1813     Las variables lognormales se simulan mediante variables normales.
1814     Véase 'random_normal' para más detalles.
1815
1816     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1817
1818 -- Función: pdf_gamma (<x>,<a>,<b>)
1819     Devuelve el valor correspondiente a <x> de la función de densidad
1820     de una variable aleatoria Gamma(a,b), con a,b>0.  Para hacer uso de
1821     esta función, ejecútese primero 'load(distrib)'.
1822
1823 -- Función: cdf_gamma (<x>,<a>,<b>)
1824     Devuelve el valor correspondiente a <x> de la función de
1825     distribución de una variable aleatoria Gamma(a,b), con a,b>0.
1826
1827          (%i1) load (distrib)$
1828          (%i2) cdf_gamma(3,5,21);
1829                                                        1
1830          (%o2)     1 - gamma_incomplete_regularized(5, -)
1831                                                        7
1832          (%i3) float(%);
1833          (%o3)              4.402663157376807E-7
1834
1835 -- Función: quantile_gamma (<q>,<a>,<b>)
1836     Devuelve el <q>-cuantil de una variable aleatoria Gamma(a,b), con
1837     a,b>0; en otras palabras, se trata de la inversa de 'cdf_gamma'.
1838     El argumento <q> debe ser un número de [0,1].  Para hacer uso de
1839     esta función, ejecútese primero 'load(distrib)'.
1840
1841 -- Función: mean_gamma (<a>,<b>)
1842     Devuelve la media de una variable aleatoria Gamma(a,b), con a,b>0.
1843     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1844
1845 -- Función: var_gamma (<a>,<b>)
1846     Devuelve la varianza de una variable aleatoria Gamma(a,b), con
1847     a,b>0.  Para hacer uso de esta función, ejecútese primero
1848     'load(distrib)'.
1849
1850 -- Función: std_gamma (<a>,<b>)
1851     Devuelve la desviación típica de una variable aleatoria Gamma(a,b),
1852     con a,b>0.  Para hacer uso de esta función, ejecútese primero
1853     'load(distrib)'.
1854
1855 -- Función: skewness_gamma (<a>,<b>)
1856     Devuelve el coeficiente de asimetría de una variable aleatoria
1857     Gamma(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
1858     primero 'load(distrib)'.
1859
1860 -- Función: kurtosis_gamma (<a>,<b>)
1861     Devuelve el coeficiente de curtosis una variable aleatoria
1862     Gamma(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
1863     primero 'load(distrib)'.
1864
1865 -- Función: random_gamma (<a>,<b>)
1866 -- Función: random_gamma (<a>,<b>,<n>)
1867     Devuelve un valor aleatorio Gamma(a,b), con a,b>0.  Llamando a
1868     'random_gamma' con un tercer argumento <n>, se simulará una muestra
1869     aleatoria de tamaño <n>.
1870
1871     El algoritmo de simulación es una combinación de dos
1872     procedimientos, según sea el valor del parámetro <a>:
1873
1874     Para a>=1, Cheng, R.C.H. y Feast, G.M. (1979).  <Some simple gamma
1875     variate generators>.  Appl.  Stat., 28, 3, 290-295.
1876
1877     Para 0<a<1, Ahrens, J.H. y Dieter, U. (1974).  <Computer methods
1878     for sampling from gamma, beta, poisson and binomial distributions>.
1879     Computing, 12, 223-246.
1880
1881     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1882
1883 -- Función: pdf_beta (<x>,<a>,<b>)
1884     Devuelve el valor correspondiente a <x> de la función de densidad
1885     de una variable aleatoria Beta(a,b), con a,b>0.  Para hacer uso de
1886     esta función, ejecútese primero 'load(distrib)'.
1887
1888 -- Función: cdf_beta (<x>,<a>,<b>)
1889     Devuelve el valor correspondiente a <x> de la función de
1890     distribución de una variable aleatoria Beta(a,b), con a,b>0.
1891
1892          (%i1) load (distrib)$
1893          (%i2) cdf_beta(1/3,15,2);
1894                                       11
1895          (%o2)                     --------
1896                                    14348907
1897          (%i3) float(%);
1898          (%o3)              7.666089131388195E-7
1899
1900 -- Función: quantile_beta (<q>,<a>,<b>)
1901     Devuelve el <q>-cuantil de una variable aleatoria Beta(a,b), con
1902     a,b>0; en otras palabras, se trata de la inversa de 'cdf_beta'.  El
1903     argumento <q> debe ser un número de [0,1].  Para hacer uso de esta
1904     función, ejecútese primero 'load(distrib)'.
1905
1906 -- Función: mean_beta (<a>,<b>)
1907     Devuelve la media de una variable aleatoria Beta(a,b), con a,b>0.
1908     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1909
1910 -- Función: var_beta (<a>,<b>)
1911     Devuelve la varianza de una variable aleatoria Beta(a,b), con
1912     a,b>0.  Para hacer uso de esta función, ejecútese primero
1913     'load(distrib)'.
1914
1915 -- Función: std_beta (<a>,<b>)
1916     Devuelve la desviación típica de una variable aleatoria Beta(a,b),
1917     con a,b>0.  Para hacer uso de esta función, ejecútese primero
1918     'load(distrib)'.
1919
1920 -- Función: skewness_beta (<a>,<b>)
1921     Devuelve el coeficiente de asimetría de una variable aleatoria
1922     Beta(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
1923     primero 'load(distrib)'.
1924
1925 -- Función: kurtosis_beta (<a>,<b>)
1926     Devuelve el coeficiente de curtosis de una variable aleatoria
1927     Beta(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
1928     primero 'load(distrib)'.
1929
1930 -- Función: random_beta (<a>,<b>)
1931 -- Función: random_beta (<a>,<b>,<n>)
1932     Devuelve un valor aleatorio Beta(a,b), con a,b>0.  Llamando a
1933     'random_beta' con un tercer argumento <n>, se simulará una muestra
1934     aleatoria de tamaño <n>.
1935
1936     El algoritmo de simulación es el decrito en Cheng, R.C.H. (1978).
1937     <Generating Beta Variates with Nonintegral Shape Parameters>.
1938     Communications of the ACM, 21:317-322.
1939
1940     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
1941
1942 -- Función: pdf_continuous_uniform (<x>,<a>,<b>)
1943     Devuelve el valor correspondiente a <x> de la función de densidad
1944     de una variable aleatoria Uniforme Continua(a,b), con a<b.  Para
1945     hacer uso de esta función, ejecútese primero 'load(distrib)'.
1946
1947 -- Función: cdf_continuous_uniform (<x>,<a>,<b>)
1948     Devuelve el valor correspondiente a <x> de la función de
1949     distribución de una variable aleatoria Uniforme Continua(a,b), con
1950     a<b.  Para hacer uso de esta función, ejecútese primero
1951     'load(distrib)'.
1952
1953 -- Función: quantile_continuous_uniform (<q>,<a>,<b>)
1954     Devuelve el <q>-cuantil de una variable aleatoria Uniforme
1955     Continua(a,b), con a<b; en otras palabras, se trata de la inversa
1956     de 'cdf_continuous_uniform'.  El argumento <q> debe ser un número
1957     de [0,1].  Para hacer uso de esta función, ejecútese primero
1958     'load(distrib)'.
1959
1960 -- Función: mean_continuous_uniform (<a>,<b>)
1961     Devuelve la media de una variable aleatoria Uniforme Continua(a,b),
1962     con a<b.  Para hacer uso de esta función, ejecútese primero
1963     'load(distrib)'.
1964
1965 -- Función: var_continuous_uniform (<a>,<b>)
1966     Devuelve la varianza de una variable aleatoria Uniforme
1967     Continua(a,b), con a<b.  Para hacer uso de esta función, ejecútese
1968     primero 'load(distrib)'.
1969
1970 -- Función: std_continuous_uniform (<a>,<b>)
1971     Devuelve la desviación típica de una variable aleatoria Uniforme
1972     Continua(a,b), con a<b.  Para hacer uso de esta función, ejecútese
1973     primero 'load(distrib)'.
1974
1975 -- Función: skewness_continuous_uniform (<a>,<b>)
1976     Devuelve el coeficiente de asimetría de una variable aleatoria
1977     Uniforme Continua(a,b), con a<b.  Para hacer uso de esta función,
1978     ejecútese primero 'load(distrib)'.
1979
1980 -- Función: kurtosis_continuous_uniform (<a>,<b>)
1981     Devuelve el coeficiente de curtosis una variable aleatoria Uniforme
1982     Continua(a,b), con a<b.  Para hacer uso de esta función, ejecútese
1983     primero 'load(distrib)'.
1984
1985 -- Función: random_continuous_uniform (<a>,<b>)
1986 -- Función: random_continuous_uniform (<a>,<b>,<n>)
1987     Devuelve un valor aleatorio Uniforme Continuo(a,b), con a<b.
1988     Llamando a 'random_continuous_uniform' con un tercer argumento <n>,
1989     se simulará una muestra aleatoria de tamaño <n>.
1990
1991     Esta función es una aplicación directa de la función 'random' de
1992     Maxima.
1993
1994     Véase también 'random'.  Para hacer uso de esta función, ejecútese
1995     primero 'load(distrib)'.
1996
1997 -- Función: pdf_logistic (<x>,<a>,<b>)
1998     Devuelve el valor correspondiente a <x> de la función de densidad
1999     de una variable aleatoria Logística(a,b), con b>0.  Para hacer uso
2000     de esta función, ejecútese primero 'load(distrib)'.
2001
2002 -- Función: cdf_logistic (<x>,<a>,<b>)
2003     Devuelve el valor correspondiente a <x> de la función de
2004     distribución de una variable aleatoria Logística(a,b), con b>0.
2005     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2006
2007 -- Función: quantile_logistic (<q>,<a>,<b>)
2008     Devuelve el <q>-cuantil de una variable aleatoria Logística(a,b),
2009     con b>0; en otras palabras, se trata de la inversa de
2010     'cdf_logistic'.  El argumento <q> debe ser un número de [0,1].
2011     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2012
2013 -- Función: mean_logistic (<a>,<b>)
2014     Devuelve la media de una variable aleatoria Logística(a,b), con
2015     b>0.  Para hacer uso de esta función, ejecútese primero
2016     'load(distrib)'.
2017
2018 -- Función: var_logistic (<a>,<b>)
2019     Devuelve la varianza de una variable aleatoria Logística(a,b), con
2020     b>0.  Para hacer uso de esta función, ejecútese primero
2021     'load(distrib)'.
2022
2023 -- Función: std_logistic (<a>,<b>)
2024     Devuelve la desviación típica de una variable aleatoria
2025     Logística(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2026     primero 'load(distrib)'.
2027
2028 -- Función: skewness_logistic (<a>,<b>)
2029     Devuelve el coeficiente de asimetría de una variable aleatoria
2030     Logística(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2031     primero 'load(distrib)'.
2032
2033 -- Función: kurtosis_logistic (<a>,<b>)
2034     Devuelve el coeficiente de curtosis una variable aleatoria
2035     Logística(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2036     primero 'load(distrib)'.
2037
2038 -- Función: random_logistic (<a>,<b>)
2039 -- Función: random_logistic (<a>,<b>,<n>)
2040     Devuelve un valor aleatorio Logístico(a,b), con b>0.  Llamando a
2041     'random_logistic' con un tercer argumento <n>, se simulará una
2042     muestra aleatoria de tamaño <n>.
2043
2044     El algoritmo de simulación está basado en el método inverso.
2045
2046     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2047
2048 -- Función: pdf_pareto (<x>,<a>,<b>)
2049     Devuelve el valor correspondiente a <x> de la función de densidad
2050     de una variable aleatoria de Pareto(a,b), con a,b>0.  Para hacer
2051     uso de esta función, ejecútese primero 'load(distrib)'.
2052
2053 -- Función: cdf_pareto (<x>,<a>,<b>)
2054     Devuelve el valor correspondiente a <x> de la función de
2055     distribución de una variable aleatoria de Pareto(a,b), con a,b>0.
2056     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2057
2058 -- Función: quantile_pareto (<q>,<a>,<b>)
2059     Devuelve el <q>-cuantil de una variable aleatoria de Pareto(a,b),
2060     con a,b>0; en otras palabras, se trata de la inversa de
2061     'cdf_pareto'.  El argumento <q> debe ser un número de [0,1].  Para
2062     hacer uso de esta función, ejecútese primero 'load(distrib)'.
2063
2064 -- Función: mean_pareto (<a>,<b>)
2065     Devuelve la media de una variable aleatoria de Pareto(a,b), con
2066     a>1,b>0.  Para hacer uso de esta función, ejecútese primero
2067     'load(distrib)'.
2068
2069 -- Función: var_pareto (<a>,<b>)
2070     Devuelve la varianza de una variable aleatoria de Pareto(a,b), con
2071     a>2,b>0.  Para hacer uso de esta función, ejecútese primero
2072     'load(distrib)'.
2073
2074 -- Función: std_pareto (<a>,<b>)
2075     Devuelve la desviación típica de una variable aleatoria de
2076     Pareto(a,b), con a>2,b>0.  Para hacer uso de esta función,
2077     ejecútese primero 'load(distrib)'.
2078
2079 -- Función: skewness_pareto (<a>,<b>)
2080     Devuelve el coeficiente de asimetría de una variable aleatoria de
2081     Pareto(a,b), con a>3,b>0.  Para hacer uso de esta función,
2082     ejecútese primero 'load(distrib)'.
2083
2084 -- Función: kurtosis_pareto (<a>,<b>)
2085     Devuelve el coeficiente de curtosis de una variable aleatoria de
2086     Pareto(a,b), con a>4,b>0.  Para hacer uso de esta función,
2087     ejecútese primero 'load(distrib)'.
2088
2089 -- Función: random_pareto (<a>,<b>)
2090 -- Función: random_pareto (<a>,<b>,<n>)
2091     Devuelve un valor aleatorio Pareto(a,b), con a>0,b>0.  Llamando a
2092     'random_pareto' con un tercer argumento <n>, se simulará una
2093     muestra aleatoria de tamaño <n>.
2094
2095     El algoritmo de simulación está basado en el método inverso.
2096
2097     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2098
2099 -- Función: pdf_weibull (<x>,<a>,<b>)
2100     Devuelve el valor correspondiente a <x> de la función de densidad
2101     de una variable aleatoria de Weibull(a,b), con a,b>0.  Para hacer
2102     uso de esta función, ejecútese primero 'load(distrib)'.
2103
2104 -- Función: cdf_weibull (<x>,<a>,<b>)
2105     Devuelve el valor correspondiente a <x> de la función de
2106     distribución de una variable aleatoria de Weibull(a,b), con a,b>0.
2107     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2108
2109 -- Función: quantile_weibull (<q>,<a>,<b>)
2110     Devuelve el <q>-cuantil de una variable aleatoria de Weibull(a,b),
2111     con a,b>0; en otras palabras, se trata de la inversa de
2112     'cdf_weibull'.  El argumento <q> debe ser un número de [0,1].  Para
2113     hacer uso de esta función, ejecútese primero 'load(distrib)'.
2114
2115 -- Función: mean_weibull (<a>,<b>)
2116     Devuelve la media de una variable aleatoria de Weibull(a,b), con
2117     a,b>0.  Para hacer uso de esta función, ejecútese primero
2118     'load(distrib)'.
2119
2120 -- Función: var_weibull (<a>,<b>)
2121     Devuelve la varianza de una variable aleatoria de Weibull(a,b), con
2122     a,b>0.  Para hacer uso de esta función, ejecútese primero
2123     'load(distrib)'.
2124
2125 -- Función: std_weibull (<a>,<b>)
2126     Devuelve la desviación típica de una variable aleatoria de
2127     Weibull(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
2128     primero 'load(distrib)'.
2129
2130 -- Función: skewness_weibull (<a>,<b>)
2131     Devuelve el coeficiente de asimetría de una variable aleatoria de
2132     Weibull(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
2133     primero 'load(distrib)'.
2134
2135 -- Función: kurtosis_weibull (<a>,<b>)
2136     Devuelve el coeficiente de curtosis una variable aleatoria de
2137     Weibull(a,b), con a,b>0.  Para hacer uso de esta función, ejecútese
2138     primero 'load(distrib)'.
2139
2140 -- Función: random_weibull (<a>,<b>)
2141 -- Función: random_weibull (<a>,<b>,<n>)
2142     Devuelve un valor aleatorio Weibull(a,b), con a,b>0.  Llamando a
2143     'random_weibull' con un tercer argumento <n>, se simulará una
2144     muestra aleatoria de tamaño <n>.
2145
2146     El algoritmo de simulación está basado en el método inverso.
2147
2148     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2149
2150 -- Función: pdf_rayleigh (<x>,<b>)
2151     Devuelve el valor correspondiente a <x> de la función de densidad
2152     de una variable aleatoria de Rayleigh(b), con b>0.
2153
2154     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2155
2156          (%i1) load (distrib)$
2157          (%i2) pdf_rayleigh(x,b);
2158                                              2  2
2159                                     2     - b  x
2160          (%o2)                   2 b  x %e
2161
2162 -- Función: cdf_rayleigh (<x>,<b>)
2163     Devuelve el valor correspondiente a <x> de la función de
2164     distribución de una variable aleatoria de Rayleigh(b), con b>0.
2165
2166     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2167
2168          (%i1) load (distrib)$
2169          (%i2) cdf_rayleigh(x,b);
2170                                             2  2
2171                                          - b  x
2172          (%o2)                     1 - %e
2173
2174 -- Función: quantile_rayleigh (<q>,<b>)
2175     Devuelve el <q>-cuantil de una variable aleatoria de Rayleigh(b),
2176     con b>0; en otras palabras, se trata de la inversa de
2177     'cdf_rayleigh'.  El argumento <q> debe ser un número de [0,1].
2178
2179     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2180
2181          (%i1) load (distrib)$
2182          (%i2) quantile_rayleigh(0.99,b);
2183                                  2.145966026289347
2184          (%o2)                   -----------------
2185                                          b
2186
2187 -- Función: mean_rayleigh (<b>)
2188     Devuelve la media de una variable aleatoria de Rayleigh(b), con
2189     b>0.
2190
2191     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2192
2193          (%i1) load (distrib)$
2194          (%i2) mean_rayleigh(b);
2195                                      sqrt(%pi)
2196          (%o2)                       ---------
2197                                         2 b
2198
2199 -- Función: var_rayleigh (<b>)
2200     Devuelve la varianza de una variable aleatoria de Rayleigh(b), con
2201     b>0.
2202
2203     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2204
2205          (%i1) load (distrib)$
2206          (%i2) var_rayleigh(b);
2207                                           %pi
2208                                       1 - ---
2209                                            4
2210          (%o2)                        -------
2211                                          2
2212                                         b
2213
2214 -- Función: std_rayleigh (<b>)
2215     Devuelve la desviación típica de una variable aleatoria de
2216     Rayleigh(b), con b>0.
2217
2218     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2219
2220          (%i1) load (distrib)$
2221          (%i2) std_rayleigh(b);
2222                                             %pi
2223                                    sqrt(1 - ---)
2224                                              4
2225          (%o2)                     -------------
2226                                          b
2227
2228 -- Función: skewness_rayleigh (<b>)
2229     Devuelve el coeficiente de asimetría de una variable aleatoria de
2230     Rayleigh(b), con b>0.
2231
2232     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2233
2234          (%i1) load (distrib)$
2235          (%i2) skewness_rayleigh(b);
2236                                   3/2
2237                                %pi      3 sqrt(%pi)
2238                                ------ - -----------
2239                                  4           4
2240          (%o2)                 --------------------
2241                                         %pi 3/2
2242                                    (1 - ---)
2243                                          4
2244
2245 -- Función: kurtosis_rayleigh (<b>)
2246     Devuelve el coeficiente de curtosis una variable aleatoria de
2247     Rayleigh(b), con b>0.
2248
2249     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b).
2250
2251          (%i1) load (distrib)$
2252          (%i2) kurtosis_rayleigh(b);
2253                                            2
2254                                       3 %pi
2255                                   2 - ------
2256                                         16
2257          (%o2)                    ---------- - 3
2258                                        %pi 2
2259                                   (1 - ---)
2260                                         4
2261
2262 -- Función: random_rayleigh (<b>)
2263 -- Función: random_rayleigh (<b>,<n>)
2264     Devuelve un valor aleatorio Rayleigh(b), con b>0.  Llamando a
2265     'random_rayleigh' con un segundo argumento <n>, se simulará una
2266     muestra aleatoria de tamaño <n>.
2267
2268     El algoritmo de simulación está basado en el método inverso.
2269
2270     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2271
2272 -- Función: pdf_laplace (<x>,<a>,<b>)
2273     Devuelve el valor correspondiente a <x> de la función de densidad
2274     de una variable aleatoria de Laplace(a,b), con b>0.  Para hacer uso
2275     de esta función, ejecútese primero 'load(distrib)'.
2276
2277 -- Función: cdf_laplace (<x>,<a>,<b>)
2278     Devuelve el valor correspondiente a <x> de la función de
2279     distribución de una variable aleatoria de Laplace(a,b), con b>0.
2280     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2281
2282 -- Función: quantile_laplace (<q>,<a>,<b>)
2283     Devuelve el <q>-cuantil de una variable aleatoria de Laplace(a,b),
2284     con b>0; en otras palabras, se trata de la inversa de
2285     'cdf_laplace'.  El argumento <q> debe ser un número de [0,1].  Para
2286     hacer uso de esta función, ejecútese primero 'load(distrib)'.
2287
2288 -- Función: mean_laplace (<a>,<b>)
2289     Devuelve la media de una variable aleatoria de Laplace(a,b), con
2290     b>0.  Para hacer uso de esta función, ejecútese primero
2291     'load(distrib)'.
2292
2293 -- Función: var_laplace (<a>,<b>)
2294     Devuelve la varianza de una variable aleatoria de Laplace(a,b), con
2295     b>0.  Para hacer uso de esta función, ejecútese primero
2296     'load(distrib)'.
2297
2298 -- Función: std_laplace (<a>,<b>)
2299     Devuelve la desviación típica de una variable aleatoria de
2300     Laplace(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2301     primero 'load(distrib)'.
2302
2303 -- Función: skewness_laplace (<a>,<b>)
2304     Devuelve el coeficiente de asimetría de una variable aleatoria de
2305     Laplace(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2306     primero 'load(distrib)'.
2307
2308 -- Función: kurtosis_laplace (<a>,<b>)
2309     Devuelve el coeficiente de curtosis una variable aleatoria de
2310     Laplace(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2311     primero 'load(distrib)'.
2312
2313 -- Función: random_laplace (<a>,<b>)
2314 -- Función: random_laplace (<a>,<b>,<n>)
2315     Devuelve un valor aleatorio Laplace(a,b), con b>0.  Llamando a
2316     'random_laplace' con un tercer argumento <n>, se simulará una
2317     muestra aleatoria de tamaño <n>.
2318
2319     El algoritmo de simulación está basado en el método inverso.
2320
2321     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2322
2323 -- Función: pdf_cauchy (<x>,<a>,<b>)
2324     Devuelve el valor correspondiente a <x> de la función de densidad
2325     de una variable aleatoria de Cauchy(a,b), con b>0.  Para hacer uso
2326     de esta función, ejecútese primero 'load(distrib)'.
2327
2328 -- Función: cdf_cauchy (<x>,<a>,<b>)
2329     Devuelve el valor correspondiente a <x> de la función de
2330     distribución de una variable aleatoria de Cauchy(a,b), con b>0.
2331     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2332
2333 -- Función: quantile_cauchy (<q>,<a>,<b>)
2334     Devuelve el <q>-cuantil de una variable aleatoria de Cauchy(a,b),
2335     con b>0; en otras palabras, se trata de la inversa de 'cdf_cauchy'.
2336     El argumento <q> debe ser un número de [0,1].  Para hacer uso de
2337     esta función, ejecútese primero 'load(distrib)'.
2338
2339 -- Función: random_cauchy (<a>,<b>)
2340 -- Función: random_cauchy (<a>,<b>,<n>)
2341     Devuelve un valor aleatorio Cauchy(a,b), con b>0.  Llamando a
2342     'random_cauchy' con un tercer argumento <n>, se simulará una
2343     muestra aleatoria de tamaño <n>.
2344
2345     El algoritmo de simulación está basado en el método inverso.
2346
2347     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2348
2349 -- Función: pdf_gumbel (<x>,<a>,<b>)
2350     Devuelve el valor correspondiente a <x> de la función de densidad
2351     de una variable aleatoria de Gumbel(a,b), con b>0.  Para hacer uso
2352     de esta función, ejecútese primero 'load(distrib)'.
2353
2354 -- Función: cdf_gumbel (<x>,<a>,<b>)
2355     Devuelve el valor correspondiente a <x> de la función de
2356     distribución de una variable aleatoria de Gumbel(a,b), con b>0.
2357     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2358
2359 -- Función: quantile_gumbel (<q>,<a>,<b>)
2360     Devuelve el <q>-cuantil de una variable aleatoria de Gumbel(a,b),
2361     con b>0; en otras palabras, se trata de la inversa de 'cdf_gumbel'.
2362     El argumento <q> debe ser un número de [0,1].  Para hacer uso de
2363     esta función, ejecútese primero 'load(distrib)'.
2364
2365 -- Función: mean_gumbel (<a>,<b>)
2366     Devuelve la media de una variable aleatoria de Gumbel(a,b), con
2367     b>0.
2368
2369          (%i1) load (distrib)$
2370          (%i2) mean_gumbel(a,b);
2371          (%o2)                     %gamma b + a
2372     donde el símbolo '%gamma' representa la constante de
2373     Euler-Mascheroni.  Véase también '%gamma'.
2374
2375 -- Función: var_gumbel (<a>,<b>)
2376     Devuelve la varianza de una variable aleatoria de Gumbel(a,b), con
2377     b>0.  Para hacer uso de esta función, ejecútese primero
2378     'load(distrib)'.
2379
2380 -- Función: std_gumbel (<a>,<b>)
2381     Devuelve la desviación típica de una variable aleatoria de
2382     Gumbel(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2383     primero 'load(distrib)'.
2384
2385 -- Función: skewness_gumbel (<a>,<b>)
2386     Devuelve el coeficiente de asimetría de una variable aleatoria de
2387     Gumbel(a,b), con b>0.
2388
2389          (%i1) load (distrib)$
2390          (%i2) skewness_gumbel(a,b);
2391                                            3/2
2392                                         2 6    zeta(3)
2393          (%o2)                          --------------
2394                                                 3
2395                                              %pi
2396     donde 'zeta' representa la función zeta de Riemann.
2397
2398 -- Función: kurtosis_gumbel (<a>,<b>)
2399     Devuelve el coeficiente de curtosis de una variable aleatoria de
2400     Gumbel(a,b), con b>0.  Para hacer uso de esta función, ejecútese
2401     primero 'load(distrib)'.
2402
2403 -- Función: random_gumbel (<a>,<b>)
2404 -- Función: random_gumbel (<a>,<b>,<n>)
2405     Devuelve un valor aleatorio Gumbel(a,b), con b>0.  Llamando a
2406     'random_gumbel' con un tercer argumento <n>, se simulará una
2407     muestra aleatoria de tamaño <n>.
2408
2409     El algoritmo de simulación está basado en el método inverso.
2410
2411     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2412
2413
2414File: maxima.info,  Node: Funciones y variables para distribuciones discretas,  Prev: Funciones y variables para distribuciones continuas,  Up: distrib
2415
241646.3 Funciones y variables para distribuciones discretas
2417========================================================
2418
2419 -- Función: pdf_general_finite_discrete (<x>,<v>)
2420     Devuelve el valor correspondiente a <x> de la función de densidad
2421     de una variable aleatoria general discreta finita, con vector de
2422     probabilidades v, tal que 'Pr(X=i) = v_i'.  El vector v puede ser
2423     una lista de expresiones no negativas, cuyas componentes se
2424     normalizarán para obtener un vector de probabilidades.  Para hacer
2425     uso de esta función, ejecútese primero 'load(distrib)'.
2426
2427          (%i1) load (distrib)$
2428          (%i2) pdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
2429                                          4
2430          (%o2)                           -
2431                                          7
2432          (%i3) pdf_general_finite_discrete(2, [1, 4, 2]);
2433                                          4
2434          (%o3)                           -
2435                                          7
2436
2437 -- Función: cdf_general_finite_discrete (<x>,<v>)
2438     Devuelve el valor correspondiente a <x> de la función de
2439     distribución de una variable aleatoria general discreta finita, con
2440     vector de probabilidades v.
2441
2442     Véase 'pdf_general_finite_discrete' para más detalles.
2443
2444          (%i1) load (distrib)$
2445          (%i2) cdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
2446                                          5
2447          (%o2)                           -
2448                                          7
2449          (%i3) cdf_general_finite_discrete(2, [1, 4, 2]);
2450                                          5
2451          (%o3)                           -
2452                                          7
2453          (%i4) cdf_general_finite_discrete(2+1/2, [1, 4, 2]);
2454                                          5
2455          (%o4)                           -
2456                                          7
2457
2458 -- Función: quantile_general_finite_discrete (<q>,<v>)
2459     Devuelve el <q>-cuantil de una variable aleatoria general discreta
2460     finita, con vector de probabilidades v.
2461
2462     Véase 'pdf_general_finite_discrete' para más detalles.
2463
2464 -- Función: mean_general_finite_discrete (<v>)
2465     Devuelve la media de una variable aleatoria general discreta
2466     finita, con vector de probabilidades v.
2467
2468     Véase 'pdf_general_finite_discrete' para más detalles.
2469
2470 -- Función: var_general_finite_discrete (<v>)
2471     Devuelve la varianza de una variable aleatoria general discreta
2472     finita, con vector de probabilidades v.
2473
2474     Véase 'pdf_general_finite_discrete' para más detalles.
2475
2476 -- Función: std_general_finite_discrete (<v>)
2477     Devuelve la desviación típica de una variable aleatoria general
2478     discreta finita, con vector de probabilidades v.
2479
2480     Véase 'pdf_general_finite_discrete' para más detalles.
2481
2482 -- Función: skewness_general_finite_discrete (<v>)
2483     Devuelve el coeficiente de asimetría de una variable aleatoria
2484     general discreta finita, con vector de probabilidades v.
2485
2486     Véase 'pdf_general_finite_discrete' para más detalles.
2487
2488 -- Función: kurtosis_general_finite_discrete (<v>)
2489     Devuelve el coeficiente de curtosis de una variable aleatoria
2490     general discreta finita, con vector de probabilidades v.
2491
2492     Véase 'pdf_general_finite_discrete' para más detalles.
2493
2494 -- Función: random_general_finite_discrete (<v>)
2495 -- Función: random_general_finite_discrete (<v>,<m>)
2496     Devuelve un valor aleatorio de una variable aleatoria general
2497     discreta finita, con vector de probabilidades v.  Llamando a
2498     'random_general_finite_discrete' con un segundo argumento <n>, se
2499     simulará una muestra aleatoria de tamaño <n>.
2500
2501     Véase 'pdf_general_finite_discrete' para más detalles.
2502
2503          (%i1) load (distrib)$
2504          (%i2) random_general_finite_discrete([1,3,1,5]);
2505          (%o2)                          4
2506          (%i3) random_general_finite_discrete([1,3,1,5], 10);
2507          (%o3)           [4, 2, 2, 3, 2, 4, 4, 1, 2, 2]
2508
2509 -- Función: pdf_binomial (<x>,<n>,<p>)
2510     Devuelve el valor correspondiente a <x> de la función de
2511     probabilidad de una variable aleatoria Binomial(n,p), con 0 \leq p
2512     \leq 1 y n entero positivo.  Para hacer uso de esta función,
2513     ejecútese primero 'load(distrib)'.
2514
2515 -- Función: cdf_binomial (<x>,<n>,<p>)
2516     Devuelve el valor correspondiente a <x> de la función de
2517     distribución de una variable aleatoria Binomial(n,p), con 0 \leq p
2518     \leq 1 y n entero positivo.
2519
2520          (%i1) load (distrib)$
2521          (%i2) cdf_binomial(5,7,1/6);
2522                                      7775
2523          (%o2)                       ----
2524                                      7776
2525          (%i3) float(%);
2526          (%o3)               .9998713991769548
2527
2528 -- Función: quantile_binomial (<q>,<n>,<p>)
2529     Devuelve el <q>-cuantil de una variable aleatoria Binomial(n,p),
2530     con 0 \leq p \leq 1 y n entero positivo; en otras palabras, se
2531     trata de la inversa de 'cdf_binomial'.  El argumento <q> debe ser
2532     un número de [0,1].  Para hacer uso de esta función, ejecútese
2533     primero 'load(distrib)'.
2534
2535 -- Función: mean_binomial (<n>,<p>)
2536     Devuelve la media de una variable aleatoria Binomial(n,p), con 0
2537     \leq p \leq 1 y n entero positivo.  Para hacer uso de esta función,
2538     ejecútese primero 'load(distrib)'.
2539
2540 -- Función: var_binomial (<n>,<p>)
2541     Devuelve la varianza de una variable aleatoria Binomial(n,p), con 0
2542     \leq p \leq 1 y n entero positivo.  Para hacer uso de esta función,
2543     ejecútese primero 'load(distrib)'.
2544
2545 -- Función: std_binomial (<n>,<p>)
2546     Devuelve la desviación típica de una variable aleatoria
2547     Binomial(n,p), con 0 \leq p \leq 1 y n entero positivo.  Para hacer
2548     uso de esta función, ejecútese primero 'load(distrib)'.
2549
2550 -- Función: skewness_binomial (<n>,<p>)
2551     Devuelve el coeficiente de asimetría de una variable aleatoria
2552     Binomial(n,p), con 0 \leq p \leq 1 y n entero positivo.  Para hacer
2553     uso de esta función, ejecútese primero 'load(distrib)'.
2554
2555 -- Función: kurtosis_binomial (<n>,<p>)
2556     Devuelve el coeficiente de curtosis de una variable aleatoria
2557     binomial Binomial(n,p), con 0 \leq p \leq 1 y n entero positivo.
2558     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2559
2560 -- Función: random_binomial (<n>,<p>)
2561 -- Función: random_binomial (<n>,<p>,<m>)
2562     Devuelve un valor aleatorio Binomial(n,p), con 0 \leq p \leq 1 y n
2563     entero positivo.  Llamando a 'random_binomial' con un tercer
2564     argumento <m>, se simulará una muestra aleatoria de tamaño <m>.
2565
2566     El algoritmo de simulación es el descrito en Kachitvichyanukul, V.
2567     y Schmeiser, B.W. (1988) <Binomial Random Variate Generation>.
2568     Communications of the ACM, 31, Feb., 216.
2569
2570     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2571
2572 -- Función: pdf_poisson (<x>,<m>)
2573     Devuelve el valor correspondiente a <x> de la función de
2574     probabilidad de una variable aleatoria de Poisson(m), con m>0.
2575     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2576
2577 -- Función: cdf_poisson (<x>,<m>)
2578     Devuelve el valor correspondiente a <x> de la función de
2579     distribución de una variable aleatoria de Poisson(m), con m>0.
2580
2581          (%i1) load (distrib)$
2582          (%i2) cdf_poisson(3,5);
2583          (%o2)       gamma_incomplete_regularized(4, 5)
2584          (%i3) float(%);
2585          (%o3)               .2650259152973623
2586
2587 -- Función: quantile_poisson (<q>,<m>)
2588     Devuelve el <q>-cuantil de una variable aleatoria de Poisson(m),
2589     con m>0; en otras palabras, se trata de la inversa de
2590     'cdf_poisson'.  El argumento <q> debe ser un número de [0,1].  Para
2591     hacer uso de esta función, ejecútese primero 'load(distrib)'.
2592
2593 -- Función: mean_poisson (<m>)
2594     Devuelve la media de una variable aleatoria de Poisson(m), con m>0.
2595     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2596
2597 -- Función: var_poisson (<m>)
2598     Devuelve la varianza de una variable aleatoria de Poisson(m), con
2599     m>0.  Para hacer uso de esta función, ejecútese primero
2600     'load(distrib)'.
2601
2602 -- Función: std_poisson (<m>)
2603     Devuelve la desviación típica de una variable aleatoria de
2604     Poisson(m), con m>0.  Para hacer uso de esta función, ejecútese
2605     primero 'load(distrib)'.
2606
2607 -- Función: skewness_poisson (<m>)
2608     Devuelve el coeficiente de asimetría de una variable aleatoria de
2609     Poisson(m), con m>0.  Para hacer uso de esta función, ejecútese
2610     primero 'load(distrib)'.
2611
2612 -- Función: kurtosis_poisson (<m>)
2613     Devuelve el coeficiente de curtosis de una variable aleatoria de
2614     Poisson(m), con m>0.  Para hacer uso de esta función, ejecútese
2615     primero 'load(distrib)'.
2616
2617 -- Función: random_poisson (<m>)
2618 -- Función: random_poisson (<m>,<n>)
2619     Devuelve un valor aleatorio Poisson(m), con m>0.  Llamando a
2620     'random_poisson' con un segundo argumento <n>, se simulará una
2621     muestra aleatoria de tamaño <n>.
2622
2623     El algoritmo de simulación es el descrito en Ahrens, J.H. and
2624     Dieter, U. (1982) <Computer Generation of Poisson Deviates From
2625     Modified Normal Distributions>.  ACM Trans.  Math.  Software, 8, 2,
2626     June,163-179.
2627
2628     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2629
2630 -- Función: pdf_bernoulli (<x>,<p>)
2631     Devuelve el valor correspondiente a <x> de la función de
2632     probabilidad de una variable aleatoria de Bernoulli(p), con 0 \leq
2633     p \leq 1.
2634
2635     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2636
2637          (%i1) load (distrib)$
2638          (%i2) pdf_bernoulli(1,p);
2639          (%o2)                           p
2640
2641 -- Función: cdf_bernoulli (<x>,<p>)
2642     Devuelve el valor correspondiente a <x> de la función de
2643     distribución de una variable aleatoria de Bernoulli(p), con 0 \leq
2644     p \leq 1.  Para hacer uso de esta función, ejecútese primero
2645     'load(distrib)'.
2646
2647 -- Función: quantile_bernoulli (<q>,<p>)
2648     Devuelve el <q>-cuantil de una variable aleatoria de Bernoulli(p),
2649     con 0 \leq p \leq 1; en otras palabras, se trata de la inversa de
2650     'cdf_bernoulli'.  El argumento <q> debe ser un número de [0,1].
2651     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2652
2653 -- Función: mean_bernoulli (<p>)
2654     Devuelve la media de una variable aleatoria de Bernoulli(p), con 0
2655     \leq p \leq 1.
2656
2657     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2658
2659          (%i1) load (distrib)$
2660          (%i2) mean_bernoulli(p);
2661          (%o2)                           p
2662
2663 -- Función: var_bernoulli (<p>)
2664     Devuelve la varianza de una variable aleatoria de Bernoulli(p), con
2665     0 \leq p \leq 1.
2666
2667     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2668
2669          (%i1) load (distrib)$
2670          (%i2) var_bernoulli(p);
2671          (%o2)                       (1 - p) p
2672
2673 -- Función: std_bernoulli (<p>)
2674     Devuelve la desviación típica de una variable aleatoria de
2675     Bernoulli(p), con 0 \leq p \leq 1.
2676
2677     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2678
2679          (%i1) load (distrib)$
2680          (%i2) std_bernoulli(p);
2681          (%o2)                           sqrt((1 - p) p)
2682
2683 -- Función: skewness_bernoulli (<p>)
2684     Devuelve el coeficiente de asimetría de una variable aleatoria de
2685     Bernoulli(p), con 0 \leq p \leq 1.
2686
2687     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2688
2689          (%i1) load (distrib)$
2690          (%i2) skewness_bernoulli(p);
2691                                              1 - 2 p
2692          (%o2)                           ---------------
2693                                          sqrt((1 - p) p)
2694
2695 -- Función: kurtosis_bernoulli (<p>)
2696     Devuelve el coeficiente de curtosis una variable aleatoria de
2697     Bernoulli(p), con 0 \leq p \leq 1.
2698
2699     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p).
2700
2701          (%i1) load (distrib)$
2702          (%i2) kurtosis_bernoulli(p);
2703                                   1 - 6 (1 - p) p
2704          (%o2)                    ---------------
2705                                      (1 - p) p
2706
2707 -- Función: random_bernoulli (<p>)
2708 -- Función: random_bernoulli (<p>,<n>)
2709     Devuelve un valor aleatorio Bernoulli(p), con 0 \leq p \leq 1.
2710     Llamando a 'random_bernoulli' con un segundo argumento <n>, se
2711     simulará una muestra aleatoria de tamaño <n>.
2712
2713     Es aplicación directa de la función 'random' de Maxima.
2714
2715     Véase también 'random'.  Para hacer uso de esta función, ejecútese
2716     primero 'load(distrib)'.
2717
2718 -- Función: pdf_geometric (<x>,<p>)
2719     Devuelve el valor correspondiente a <x> de la función de
2720     probabilidad de una variable aleatoria Geométrica(p), con 0 < p
2721     \leq 1.  Para hacer uso de esta función, ejecútese primero
2722     'load(distrib)'.
2723
2724 -- Función: cdf_geometric (<x>,<p>)
2725     Devuelve el valor correspondiente a <x> de la función de
2726     distribución de una variable aleatoria Geométrica(p), con 0 < p
2727     \leq 1.  Para hacer uso de esta función, ejecútese primero
2728     'load(distrib)'.
2729
2730 -- Función: quantile_geometric (<q>,<p>)
2731     Devuelve el <q>-cuantil de una variable aleatoria Geométrica(p),
2732     con 0 < p \leq 1; en otras palabras, se trata de la inversa de
2733     'cdf_geometric'.  El argumento <q> debe ser un número de [0,1].
2734     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2735
2736 -- Función: mean_geometric (<p>)
2737     Devuelve la media de una variable aleatoria Geométrica(p), con 0 <
2738     p \leq 1.  Para hacer uso de esta función, ejecútese primero
2739     'load(distrib)'.
2740
2741 -- Función: var_geometric (<p>)
2742     Devuelve la varianza de una variable aleatoria Geométrica(p), con 0
2743     < p \leq 1.  Para hacer uso de esta función, ejecútese primero
2744     'load(distrib)'.
2745
2746 -- Función: std_geometric (<p>)
2747     Devuelve la desviación típica de una variable aleatoria
2748     Geométrica(p), con 0 < p \leq 1.  Para hacer uso de esta función,
2749     ejecútese primero 'load(distrib)'.
2750
2751 -- Función: skewness_geometric (<p>)
2752     Devuelve el coeficiente de asimetría de una variable aleatoria
2753     Geométrica(p), con 0 < p \leq 1.  Para hacer uso de esta función,
2754     ejecútese primero 'load(distrib)'.
2755
2756 -- Función: kurtosis_geometric (<p>)
2757     Devuelve el coeficiente de curtosis de una variable aleatoria
2758     Geométrica(p), con 0 < p \leq 1.  Para hacer uso de esta función,
2759     ejecútese primero 'load(distrib)'.
2760
2761 -- Función: random_geometric (<p>)
2762 -- Función: random_geometric (<p>,<n>)
2763     Devuelve un valor aleatorio Geométrico(p), con 0 < p \leq 1.
2764     Llamando a 'random_geometric' con un segundo argumento <n>, se
2765     simulará una muestra aleatoria de tamaño <n>.
2766
2767     El algoritmo está basado en la simulación de ensayos de Bernoulli.
2768
2769     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2770
2771 -- Función: pdf_discrete_uniform (<x>,<n>)
2772     Devuelve el valor correspondiente a <x> de la función de
2773     probabilidad de una variable aleatoria Uniforme Discreta(n), con n
2774     entero positivo.  Para hacer uso de esta función, ejecútese primero
2775     'load(distrib)'.
2776
2777 -- Función: cdf_discrete_uniform (<x>,<n>)
2778     Devuelve el valor correspondiente a <x> de la función de
2779     distribución de una variable aleatoria Uniforme Discreta(n), con n
2780     entero positivo.  Para hacer uso de esta función, ejecútese primero
2781     'load(distrib)'.
2782
2783 -- Función: quantile_discrete_uniform (<q>,<n>)
2784     Devuelve el <q>-cuantil de una variable aleatoria Uniforme
2785     Discreta(n), con n entero positivo; en otras palabras, se trata de
2786     la inversa de 'cdf_discrete_uniform'.  El argumento <q> debe ser un
2787     número de [0,1].  Para hacer uso de esta función, ejecútese primero
2788     'load(distrib)'.
2789
2790 -- Función: mean_discrete_uniform (<n>)
2791     Devuelve la media de una variable aleatoria Uniforme Discreta(n),
2792     con n entero positivo.  Para hacer uso de esta función, ejecútese
2793     primero 'load(distrib)'.
2794
2795 -- Función: var_discrete_uniform (<n>)
2796     Devuelve la varianza de una variable aleatoria Uniforme
2797     Discreta(n), con n entero positivo.  Para hacer uso de esta
2798     función, ejecútese primero 'load(distrib)'.
2799
2800 -- Función: std_discrete_uniform (<n>)
2801     Devuelve la desviación típica de una variable aleatoria Uniforme
2802     Discreta(n), con n entero positivo.  Para hacer uso de esta
2803     función, ejecútese primero 'load(distrib)'.
2804
2805 -- Función: skewness_discrete_uniform (<n>)
2806     Devuelve el coeficiente de asimetría de una variable aleatoria
2807     Uniforme Discreta(n), con n entero positivo.  Para hacer uso de
2808     esta función, ejecútese primero 'load(distrib)'.
2809
2810 -- Función: kurtosis_discrete_uniform (<n>)
2811     Devuelve el coeficiente de curtosis de una variable aleatoria
2812     Uniforme Discreta(n), con n entero positivo.  Para hacer uso de
2813     esta función, ejecútese primero 'load(distrib)'.
2814
2815 -- Función: random_discrete_uniform (<n>)
2816 -- Función: random_discrete_uniform (<n>,<m>)
2817     Devuelve un valor aleatorio Uniforme Discreto(n), con n entero
2818     positivo.  Llamando a 'random_discrete_uniform' con un segundo
2819     argumento <m>, se simulará una muestra aleatoria de tamaño <m>.
2820
2821     Se trata de una aplicación directa de la función 'random' de
2822     Maxima.
2823
2824     Véase también 'random'.  Para hacer uso de esta función, ejecútese
2825     primero 'load(distrib)'.
2826
2827 -- Función: pdf_hypergeometric (<x>,<n1>,<n2>,<n>)
2828     Devuelve el valor correspondiente a <x> de la función de
2829     probabilidad de una variable aleatoria Hipergeométrica(n1,n2,n),
2830     con <n1>, <n2> y <n> enteros positivos y n<=n1+n2.  Siendo <n1> el
2831     número de objetos de la clase A, <n2> el número de objetos de la
2832     clase B y <n> el tamaño de una muestra sin reemplazo, esta función
2833     devuelve la probabilidad del suceso "extraer exactamente <x>
2834     objetos de la clase A".
2835
2836     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2837
2838 -- Función: cdf_hypergeometric (<x>,<n1>,<n2>,<n>)
2839     Devuelve el valor correspondiente a <x> de la función de
2840     distribución of una variable aleatoria Hipergeométrica(n1,n2,n),
2841     con <n1>, <n2> y <n> enteros positivos y n<=n1+n2.  Véase
2842     'pdf_hypergeometric' para una descripción más completa.
2843
2844     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2845
2846 -- Función: quantile_hypergeometric (<q>,<n1>,<n2>,<n>)
2847     Devuelve el <q>-cuantil de una variable aleatoria
2848     Hipergeométrica(n1,n2,n), con <n1>, <n2> y <n> enteros positivos y
2849     n<=n1+n2; en otras palabras, se trata de la inversa de
2850     'cdf_hypergeometric'.  El argumento <q> debe ser un número de
2851     [0,1].  Para hacer uso de esta función, ejecútese primero
2852     'load(distrib)'.
2853
2854 -- Función: mean_hypergeometric (<n1>,<n2>,<n>)
2855     Devuelve la media de una variable aleatoria uniforme discreta
2856     Hyp(n1,n2,n), con <n1>, <n2> y <n> enteros positivos y n<=n1+n2.
2857     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2858
2859 -- Función: var_hypergeometric (<n1>,<n2>,<n>)
2860     Devuelve la varianza de una variable aleatoria
2861     Hipergeométrica(n1,n2,n), con <n1>, <n2> y <n> enteros positivos y
2862     n<=n1+n2.  Para hacer uso de esta función, ejecútese primero
2863     'load(distrib)'.
2864
2865 -- Función: std_hypergeometric (<n1>,<n2>,<n>)
2866     Devuelve la desviación típica de una variable aleatoria
2867     Hipergeométrica(n1,n2,n), con <n1>, <n2> y <n> enteros positivos y
2868     n<=n1+n2.  Para hacer uso de esta función, ejecútese primero
2869     'load(distrib)'.
2870
2871 -- Función: skewness_hypergeometric (<n1>,<n2>,<n>)
2872     Devuelve el coeficiente de asimetría de una variable aleatoria
2873     Hipergeométrica(n1,n2,n), con <n1>, <n2> y <n> enteros positivos y
2874     n<=n1+n2.  Para hacer uso de esta función, ejecútese primero
2875     'load(distrib)'.
2876
2877 -- Función: random_hypergeometric (<n1>,<n2>,<n>)
2878 -- Función: random_hypergeometric (<n1>,<n2>,<n>,<m>)
2879     Devuelve un valor aleatorio Hipergeométrico(n1,n2,n), con <n1>,
2880     <n2> y <n> enteros positivos y n<=n1+n2.  Llamando a
2881     'random_hypergeometric' con un cuarto argumento <m>, se simulará
2882     una muestra aleatoria de tamaño <m>.
2883
2884     Algoritmo descrito en Kachitvichyanukul, V., Schmeiser, B.W. (1985)
2885     <Computer generation of hypergeometric random variates.> Journal of
2886     Statistical Computation and Simulation 22, 127-145.
2887
2888     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2889
2890 -- Función: pdf_negative_binomial (<x>,<n>,<p>)
2891     Devuelve el valor correspondiente a <x> de la función de
2892     probabilidad de una variable aleatoria Binomial Negativa(n,p), con
2893     0 < p \leq 1 y n positivo.  Para hacer uso de esta función,
2894     ejecútese primero 'load(distrib)'.
2895
2896 -- Función: cdf_negative_binomial (<x>,<n>,<p>)
2897     Devuelve el valor correspondiente a <x> de la función de
2898     distribución de una variable aleatoria Binomial Negativa(n,p), con
2899     0 < p \leq 1 y n positivo.
2900
2901          (%i1) load (distrib)$
2902          (%i2) cdf_negative_binomial(3,4,1/8);
2903                                      3271
2904          (%o2)                      ------
2905                                     524288
2906
2907 -- Función: quantile_negative_binomial (<q>,<n>,<p>)
2908     Devuelve el <q>-cuantil de una variable aleatoria Binomial
2909     Negativa(n,p), con 0 < p \leq 1 y n positivo; en otras palabras, se
2910     trata de la inversa de 'cdf_negative_binomial'.  El argumento <q>
2911     debe ser un número de [0,1].  Para hacer uso de esta función,
2912     ejecútese primero 'load(distrib)'.
2913
2914 -- Función: mean_negative_binomial (<n>,<p>)
2915     Devuelve la media de una variable aleatoria Binomial Negativa(n,p),
2916     con 0 < p \leq 1 and n positivo.  Para hacer uso de esta función,
2917     ejecútese primero 'load(distrib)'.
2918
2919 -- Función: var_negative_binomial (<n>,<p>)
2920     Devuelve la varianza de una variable aleatoria Binomial
2921     Negativa(n,p), con 0 < p \leq 1 and n positivo.  Para hacer uso de
2922     esta función, ejecútese primero 'load(distrib)'.
2923
2924 -- Función: std_negative_binomial (<n>,<p>)
2925     Devuelve la desviación típica de una variable aleatoria Binomial
2926     Negativa(n,p), con 0 < p \leq 1 and n positivo.  Para hacer uso de
2927     esta función, ejecútese primero 'load(distrib)'.
2928
2929 -- Función: skewness_negative_binomial (<n>,<p>)
2930     Devuelve el coeficiente de asimetría de una variable aleatoria
2931     Binomial Negativa(n,p), con 0 < p \leq 1 and n positivo.  Para
2932     hacer uso de esta función, ejecútese primero 'load(distrib)'.
2933
2934 -- Función: kurtosis_negative_binomial (<n>,<p>)
2935     Devuelve el coeficiente de curtosis una variable aleatoria binomial
2936     negativa NB(n,p), con 0 < p \leq 1 and n positivo.  Para hacer uso
2937     de esta función, ejecútese primero 'load(distrib)'.
2938
2939 -- Función: random_negative_binomial (<n>,<p>)
2940 -- Función: random_negative_binomial (<n>,<p>,<m>)
2941     Devuelve un valor aleatorio Binomial Negativo(n,p), con 0 < p \leq
2942     1 y n positivo.  Llamando a 'random_negative_binomial' con un
2943     tercer argumento <m>, se simulará una muestra aleatoria de tamaño
2944     <m>.
2945
2946     Algoritmo descrito en Devroye, L. (1986) <Non-Uniform Random
2947     Variate Generation>.  Springer Verlag, p.  480.
2948
2949     Para hacer uso de esta función, ejecútese primero 'load(distrib)'.
2950
2951
2952File: maxima.info,  Node: draw,  Next: drawdf,  Prev: distrib,  Up: Top
2953
295447 draw
2955*******
2956
2957* Menu:
2958
2959* Introducción a draw::
2960* Funciones y variables para draw::
2961* Funciones y variables para picture::
2962* Funciones y variables para worldmap::
2963
2964
2965File: maxima.info,  Node: Introducción a draw,  Next: Funciones y variables para draw,  Prev: draw,  Up: draw
2966
296747.1 Introducción a draw
2968========================
2969
2970'draw' es un interfaz para comunicar Maxima con Gnuplot.
2971
2972Tres son las funciones principales a utilizar a nivel de Maxima:
2973'draw2d', 'draw3d' y 'draw'.
2974
2975Síganse estos enlaces para ver ejemplos más elaborados de este paquete:
2976
2977<http://tecnostats.net/Maxima/gnuplot>
2978
2979y
2980
2981<http://tecnostats.net/Maxima/vtk>
2982
2983Se necesita tener instalado Gnuplot 4.2 o superior para ejecutar este
2984paquete.
2985
2986
2987File: maxima.info,  Node: Funciones y variables para draw,  Next: Funciones y variables para picture,  Prev: Introducción a draw,  Up: draw
2988
298947.2 Funciones y variables para draw
2990====================================
2991
299247.2.1 Escenas
2993--------------
2994
2995 -- Constructor de escena: gr2d (<Opción gráfica>, ...,
2996          <graphic_object>, ...)
2997
2998     La función 'gr2d' construye un objeto que describe una escena 2d.
2999     Los argumentos son opciones gráficas y objetos gráficos o listas
3000     que contengan elementos de ambos tipos.  Esta escena se interpreta
3001     secuencialmente: las opciones gráficas afectan a aquellos objetos
3002     gráficos colocados a su derecha.  Algunas opciones gráficas afectan
3003     al aspecto global de la escena.
3004
3005     La lista de objetos gráficos disponibles para escenas en dos
3006     dimensiones: 'bars', 'ellipse', 'explicit', 'image', 'implicit',
3007     'label', 'parametric', 'points', 'polar', 'polygon',
3008     'quadrilateral', 'rectangle', 'triangle', 'vector' y 'geomap' (este
3009     último definido en el paquete 'worldmap').
3010
3011     Véanse también 'draw' y 'draw2d'.
3012
3013     Para utilizar este objecto, ejecútese primero 'load(draw)'.
3014
3015 -- Constructor de escena: gr3d (<Opción gráfica>, ...,
3016          <graphic_object>, ...)
3017
3018     La función 'gr3d' construye un objeto que describe una escena 3d.
3019     Los argumentos son opciones gráficas y objetos gráficos o listas
3020     que contengan elementos de ambos tipos.  Esta escena se interpreta
3021     secuencialmente: las opciones gráficas afectan a aquellos objetos
3022     gráficos colocados a su derecha.  Algunas opciones gráficas afectan
3023     al aspecto global de la escena.
3024
3025     La lista de objetos gráficos disponibles para escenas en tres
3026     dimensiones: 'cylindrical', 'elevation_grid', 'explicit',
3027     'implicit', 'label', 'mesh', 'parametric', 'parametric_surface',
3028     'points', 'quadrilateral', 'spherical', 'triangle', 'tube',
3029     'vector' y 'geomap' (este último definido en el paquete
3030     'worldmap').
3031
3032     Véanse también 'draw' y 'draw3d'.
3033
3034     Para utilizar este objeto, ejecútese primero 'load(draw)'.
3035
303647.2.2 Funciones
3037----------------
3038
3039 -- Función: draw (<gr2d>, ..., <gr3d>, ..., <options>, ...)
3040
3041     Representa gráficamente una serie de escenas; sus argumentos son
3042     objetos 'gr2d' y/o 'gr3d', junto con algunas opciones, o listas de
3043     escenas y opciones.  Por defecto, las escenas se representan en una
3044     columna.
3045
3046     La función 'draw' acepta las siguientes opciones globales:
3047     'terminal', 'columns', 'dimensions', 'file_name' y 'delay'.
3048
3049     Las funciones 'draw2d' y 'draw3d' son atajos a utilizar cuando se
3050     quiere representar una única escena en dos o tres dimensiones,
3051     respectivamente.
3052
3053     Véanse también 'gr2d' y 'gr3d'.
3054
3055     Para utilizar esta función, ejecútese primero 'load(draw)'.
3056
3057     Ejemplo:
3058
3059          (%i1) load(draw)$
3060          (%i2) scene1: gr2d(title="Ellipse",
3061                             nticks=30,
3062                             parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
3063          (%i3) scene2: gr2d(title="Triangle",
3064                             polygon([4,5,7],[6,4,2]))$
3065          (%i4) draw(scene1, scene2, columns = 2)$
3066
3067     Las dos sentencias gráficas siguientes son equivalentes:
3068          (%i1) load(draw)$
3069          (%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
3070          (%o2)                          [gr3d(explicit)]
3071          (%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
3072          (%o3)                          [gr3d(explicit)]
3073
3074     Un fichero gif animado:
3075          (%i1) load(draw)$
3076          (%i2) draw(
3077                  delay     = 100,
3078                  file_name = "zzz",
3079                  terminal  = 'animated_gif,
3080                  gr2d(explicit(x^2,x,-1,1)),
3081                  gr2d(explicit(x^3,x,-1,1)),
3082                  gr2d(explicit(x^4,x,-1,1)));
3083          End of animation sequence
3084          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
3085
3086     Véanse también 'gr2d', 'gr3d', 'draw2d' y 'draw3d'.
3087
3088 -- Función: draw2d (<option>, <graphic_object>, ...)
3089
3090     Esta función es un atajo para 'draw(gr2d(<options>, ...,
3091     <graphic_object>, ...))'.
3092
3093     Puede utilizarse para representar una única escena en 2d.
3094
3095     Para utilizar esta función, ejecútese primero 'load(draw)'.
3096
3097     Véanse también 'draw' y 'gr2d'.
3098
3099 -- Función: draw3d (<option>, <graphic_object>, ...)
3100
3101     Esta función es un atajo para 'draw(gr3d(<options>, ...,
3102     <graphic_object>, ...))'.
3103
3104     Puede utilizarse para representar una única escena en 3d.
3105
3106     Para utilizar esta función, ejecútese primero 'load(draw)'.
3107
3108     Véanse también 'draw' y 'gr3d'.
3109
3110 -- Función: draw_file (<Opción gráfica>, ..., <Opción gráfica>, ...)
3111
3112     Almacena el gráfico actual en un fichero.  Las opciones gráficas
3113     que acepta son: 'terminal', 'dimensions' y'file_name'.
3114
3115     Ejemplo:
3116
3117          (%i1) load(draw)$
3118          (%i2) /* dibujo en pantalla */
3119                draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)))$
3120          (%i3) /* same plot in eps format */
3121                draw_file(terminal  = eps,
3122                          dimensions = [5,5]) $
3123
3124 -- Función: multiplot_mode (<term>)
3125
3126     Esta función permite a Maxima trabajar en modo de gráficos
3127     múltiples en una sola ventana del terminal <term>; argumentos
3128     válidos para esta función son 'screen', 'wxt', 'aquaterm' y 'none'.
3129
3130     Cuando el modo de gráficos múltiples está activo, cada llamada a
3131     'draw' envía un nuevo gr'afico a la misma ventana, sin borrar los
3132     anteriores.  Para desactivar el modo de gráficos múltiples
3133     escríbase 'multiplot_mode(none)'.
3134
3135     Cuando el modo de gráficos múltiples está activo, la opción global
3136     'terminal' se bloquea; para desbloquearla y cambiar de terminal es
3137     necesario desactivar previamente el modo de gráficos múltiples.
3138
3139     Este modo de trabajo no funciona en plataformas Windows.
3140
3141     Ejemplo:
3142
3143          (%i1) load(draw)$
3144          (%i2) set_draw_defaults(
3145                   xrange = [-1,1],
3146                   yrange = [-1,1],
3147                   grid   = true,
3148                   title  = "Step by step plot" )$
3149          (%i3) multiplot_mode(screen)$
3150          (%i4) draw2d(color=blue,  explicit(x^2,x,-1,1))$
3151          (%i5) draw2d(color=red,   explicit(x^3,x,-1,1))$
3152          (%i6) draw2d(color=brown, explicit(x^4,x,-1,1))$
3153          (%i7) multiplot_mode(none)$
3154
3155 -- Función: set_draw_defaults (<Opción gráfica>, ..., <Opción gráfica>,
3156          ...)
3157
3158     Establece las opciones gráficas de usuario.  Esta función es útil
3159     para dibujar varios gráficos con las mismas opciones.  Llamando a
3160     la función sin argumentos se borran las opciones de usuario por
3161     defecto.
3162
3163     Ejemplo:
3164
3165          (%i1) load(draw)$
3166          (%i2) set_draw_defaults(
3167                   xrange = [-10,10],
3168                   yrange = [-2, 2],
3169                   color  = blue,
3170                   grid   = true)$
3171          (%i3) /* dibujo con opciones de usuario */
3172                draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
3173          (%i4) set_draw_defaults()$
3174          (%i5) /* dibujo con opciones por defecto */
3175                draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
3176
3177     Para utilizar esta función, ejecútese primero 'load(draw)'.
3178
317947.2.3 Opciones gráficas
3180------------------------
3181
3182 -- Opción gráfica: adapt_depth
3183     Valor por defecto: 10
3184
3185     'adapt_depth' es el número máximo de particiones utilizadas por la
3186     rutina gráfica adaptativa.
3187
3188     Esta opción sólo es relevante para funciones de tipo 'explicit' en
3189     2d.
3190
3191 -- Opción gráfica: allocation
3192     Valor por defecto: 'false'
3193
3194     Con la opción 'allocation' es posible colocar a voluntad una escena
3195     en la ventana de salida, lo cual resulta de utilidad en el caso de
3196     gráficos múltiples.  Cuando la opción toma el valor 'false', la
3197     escena se coloca de forma automática, dependiendo del valor
3198     asignado a la opción 'columns'.  En cualquier otro caso, a
3199     'allocation' se le debe asignar una lista con dos pares de números;
3200     el primero se corresponde con la posición de la esquina inferior
3201     izquierda del gráfico y el segundo par hace referencia al ancho y
3202     alto de la escena.  Todas las cantidades deben darse en coordenadas
3203     relativas, entre 0 y 1.
3204
3205     Ejemplos:
3206
3207     Gráficos internos.
3208
3209          (%i1) load(draw)$
3210          (%i2) draw(
3211                  gr2d(
3212                    explicit(x^2,x,-1,1)),
3213                  gr2d(
3214                    allocation = [[1/4, 1/4],[1/2, 1/2]],
3215                    explicit(x^3,x,-1,1),
3216                    grid = true) ) $
3217
3218     Multiplot con dimensiones establecidas por el usuario.
3219
3220          (%i1) load(draw)$
3221          (%i2) draw(
3222                  terminal = wxt,
3223                  gr2d(
3224                    allocation = [[0, 0],[1, 1/4]],
3225                    explicit(x^2,x,-1,1)),
3226                  gr3d(
3227                    allocation = [[0, 1/4],[1, 3/4]],
3228                    explicit(x^2+y^2,x,-1,1,y,-1,1) ))$
3229
3230     Véase también la opción 'columns'.
3231
3232 -- Opción gráfica: axis_3d
3233     Valor por defecto: 'true'
3234
3235     Cuando 'axis_3d' vale 'true', los ejes <x>, <y> y <z> permanecen
3236     visibles en las escenas 3d.
3237
3238     Puesto que ésta es una opción global, su posición dentro de la
3239     descripción de la escena no reviste importancia.
3240
3241     Ejemplo:
3242
3243          (%i1) load(draw)$
3244          (%i2) draw3d(axis_3d = false,
3245                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
3246
3247     Véanse también 'axis_bottom', 'axis_left', 'axis_top' y
3248     'axis_right' for axis in 2d.
3249
3250 -- Opción gráfica: axis_bottom
3251     Valor por defecto: 'true'
3252
3253     Cuando 'axis_bottom' vale 'true', el eje inferior permanece visible
3254     en las escenas 2d.
3255
3256     Puesto que ésta es una opción global, su posición dentro de la
3257     descripción de la escena no reviste importancia.
3258
3259     Ejemplo:
3260
3261          (%i1) load(draw)$
3262          (%i2) draw2d(axis_bottom = false,
3263                       explicit(x^3,x,-1,1))$
3264
3265     Véanse también 'axis_left', 'axis_top', 'axis_right' y 'axis_3d'.
3266
3267 -- Opción gráfica: axis_left
3268     Valor por defecto: 'true'
3269
3270     Cuando 'axis_left' vale 'true', el eje izquierdo permanece visible
3271     en las escenas 2d.
3272
3273     Puesto que ésta es una opción global, su posición dentro de la
3274     descripción de la escena no reviste importancia.
3275
3276     Ejemplo:
3277
3278          (%i1) load(draw)$
3279          (%i2) draw2d(axis_left = false,
3280                       explicit(x^3,x,-1,1))$
3281
3282     Véanse también 'axis_bottom', 'axis_top', 'axis_right' y 'axis_3d'.
3283
3284 -- Opción gráfica: axis_right
3285     Valor por defecto: 'true'
3286
3287     Cuando 'axis_right' vale 'true', el eje derecho permanece visible
3288     en las escenas 2d.
3289
3290     Puesto que ésta es una opción global, su posición dentro de la
3291     descripción de la escena no reviste importancia.
3292
3293     Ejemplo:
3294
3295          (%i1) load(draw)$
3296          (%i2) draw2d(axis_right = false,
3297                       explicit(x^3,x,-1,1))$
3298
3299     Véanse también 'axis_bottom', 'axis_left', 'axis_top' y 'axis_3d'.
3300
3301 -- Opción gráfica: axis_top
3302     Valor por defecto: 'true'
3303
3304     Cuando 'axis_top' vale 'true', el eje superior permanece visible en
3305     las escenas 2d.
3306
3307     Puesto que ésta es una opción global, su posición dentro de la
3308     descripción de la escena no reviste importancia.
3309
3310     Ejemplo:
3311
3312          (%i1) load(draw)$
3313          (%i2) draw2d(axis_top = false,
3314                       explicit(x^3,x,-1,1))$
3315
3316     Véanse también 'axis_bottom', 'axis_left', 'axis_right' y
3317     'axis_3d'.
3318
3319 -- Opción gráfica: background_color
3320     Valor por defecto: 'white'
3321
3322     Establece el color de fondo en los terminales 'gif', 'png', 'jpg' y
3323     'gif'.  El color de fondo por defecto es blanco.
3324
3325     Puesto que ésta es una opción global, su posición dentro de la
3326     descripción de la escena no reviste importancia.
3327
3328     Esta opción no es compatible con los terminales 'epslatex' y
3329     'epslatex_standalone'.
3330
3331     Véase también 'color'.
3332
3333 -- Opción gráfica: border
3334     Valor por defecto: 'true'
3335
3336     Cuando 'border' vale 'true', los bordes de los polígonos se dibujan
3337     de acuerdo con 'line_type' y 'line_width'.
3338
3339     Esta opción afecta a los siguientes objetos gráficos:
3340        * 'gr2d': 'polygon', 'rectangle' y 'ellipse'.
3341
3342     Ejemplo:
3343
3344          (%i1) load(draw)$
3345          (%i2) draw2d(color       = brown,
3346                       line_width  = 8,
3347                       polygon([[3,2],[7,2],[5,5]]),
3348                       border      = false,
3349                       fill_color  = blue,
3350                       polygon([[5,2],[9,2],[7,5]]) )$
3351
3352 -- Opción gráfica: capping
3353     Valor por defecto: '[false, false]'
3354
3355     Una lista de dos elementos, 'true' y 'false', indicando si los
3356     extremos de un objeto gráfico 'tube' permanece abiertos o si deben
3357     ser cerrados.  Por defecto, ambos extremos se dejan abiertos.
3358
3359     La asignación 'capping = false' equivale a 'capping = [false,
3360     false]' y 'capping = true' equivale a 'capping = [true, true]'.
3361
3362     Ejemplo:
3363
3364          (%i1) load(draw)$
3365          (%i2) draw3d(
3366                  capping = [false, true],
3367                  tube(0, 0, a, 1,
3368                       a, 0, 8) )$
3369
3370 -- Opción gráfica: cbrange
3371     Valor por defecto: 'auto'
3372
3373     Cuando 'cbrange' vale 'auto', el rango de los valores que se
3374     colorean cuando 'enhanced3d' es diferente de 'false' se calcula
3375     automáticamente.  Valores fuera del rango utilizan el color del
3376     valor extremo más cercano.
3377
3378     Cuando 'enhanced3d' o 'colorbox' vale 'false', la opción 'cbrange'
3379     no tiene efecto alguno.
3380
3381     Si el usuario quiere especificar un intervalo para los valores a
3382     colorear, éste debe expresarse como una lista de Maxima, como en
3383     'cbrange=[-2, 3]'.
3384
3385     Puesto que ésta es una opción global, su posición dentro de la
3386     descripción de la escena no reviste importancia.
3387
3388     Ejemplo:
3389
3390          (%i1) load(draw)$
3391          (%i2) draw3d (
3392                  enhanced3d     = true,
3393                  color          = green,
3394                  cbrange = [-3,10],
3395                  explicit(x^2+y^2, x,-2,2,y,-2,2)) $
3396
3397     Véanse también 'enhanced3d' y 'cbtics'.
3398
3399 -- Opción gráfica: cbtics
3400     Valor por defecto: 'auto'
3401
3402     Esta opción gráfica controla la forma en la que se dibujarán las
3403     marcas en la escala de color cuando la opción 'enhanced3d' sea
3404     diferente de 'false'.
3405
3406     Cuando 'enhanced3d' o 'colorbox' vale 'false', la opción 'cbtics'
3407     no tiene efecto alguno.
3408
3409     Véase 'xtics' para una descripción completa.
3410
3411     Ejemplo :
3412
3413          (%i1) load(draw)$
3414          (%i2) draw3d (
3415                  enhanced3d = true,
3416                  color      = green,
3417                  cbtics  = {["High",10],["Medium",05],["Low",0]},
3418                  cbrange = [0, 10],
3419                  explicit(x^2+y^2, x,-2,2,y,-2,2)) $
3420
3421     See also 'enhanced3d', 'colorbox' and 'cbrange'.
3422
3423 -- Opción gráfica: color
3424     Valor por defecto: 'blue'
3425
3426     'color' especifica el color para dibujar líneas, puntos, bordes de
3427     polígonos y etiquetas.
3428
3429     Los colores se pueden dar a partir de sus nombres o en código
3430     hexadecimal rgb.
3431
3432     Los nombres de colores disponibles son: 'white', 'black', 'gray0',
3433     'grey0', 'gray10', 'grey10', 'gray20', 'grey20', 'gray30',
3434     'grey30', 'gray40', 'grey40', 'gray50', 'grey50', 'gray60',
3435     'grey60', 'gray70', 'grey70', 'gray80', 'grey80', 'gray90',
3436     'grey90', 'gray100', 'grey100', 'gray', 'grey', 'light_gray',
3437     'light_grey', 'dark_gray', 'dark_grey', 'red', 'light_red',
3438     'dark_red', 'yellow', 'light_yellow', 'dark_yellow', 'green',
3439     'light_green', 'dark_green', 'spring_green', 'forest_green',
3440     'sea_green', 'blue', 'light_blue', 'dark_blue', 'midnight_blue',
3441     'navy', 'medium_blue', 'royalblue', 'skyblue', 'cyan',
3442     'light_cyan', 'dark_cyan', 'magenta', 'light_magenta',
3443     'dark_magenta', 'turquoise', 'light_turquoise', 'dark_turquoise',
3444     'pink', 'light_pink', 'dark_pink', 'coral', 'light_coral',
3445     'orange_red', 'salmon', 'light_salmon', 'dark_salmon',
3446     'aquamarine', 'khaki', 'dark_khaki', 'goldenrod',
3447     'light_goldenrod', 'dark_goldenrod', 'gold', 'beige', 'brown',
3448     'orange', 'dark_orange', 'violet', 'dark_violet', 'plum' y
3449     'purple'.
3450
3451     Las componentes cromáticas en código hexadecimal se introducen en
3452     el formato '"#rrggbb"'.
3453
3454     Ejemplo:
3455
3456          (%i1) load(draw)$
3457          (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
3458                       color = red,
3459                       explicit(0.5 + x^2,x,-1,1),
3460                       color = blue,
3461                       explicit(1 + x^2,x,-1,1),
3462                       color = light_blue,
3463                       explicit(1.5 + x^2,x,-1,1),
3464                       color = "#23ab0f",
3465                       label(["This is a label",0,1.2])  )$
3466
3467     Véase también 'fill_color'.
3468
3469 -- Opción gráfica: colorbox
3470     Valor por defecto: 'true'
3471
3472     Cuando 'colorbox' vale 'true', se dibuja una escala de colores sin
3473     título al lado de los objetos 'image' en 2D o de objetos coloreados
3474     en 3D. Cuando 'colorbox' vale 'false', no se presenta la escala de
3475     colores.  Cuando 'colorbox' es una cadena de caracteres, se
3476     mostrará la escala de colores con un título.
3477
3478     Puesto que ésta es una opción global, su posición dentro de la
3479     descripción de la escena no reviste importancia.
3480
3481     Ejemplo:
3482
3483     Escala de colores e imágenes.
3484
3485          (%i1) load(draw)$
3486          (%i2) im: apply('matrix,
3487                           makelist(makelist(random(200),i,1,30),i,1,30))$
3488          (%i3) draw2d(image(im,0,0,30,30))$
3489          (%i4) draw2d(colorbox = false, image(im,0,0,30,30))$
3490
3491     Escala de colores y objeto 3D coloreado.
3492
3493          (%i1) load(draw)$
3494          (%i2) draw3d(
3495                  colorbox   = "Magnitude",
3496                  enhanced3d = true,
3497                  explicit(x^2+y^2,x,-1,1,y,-1,1))$
3498
3499     Véase también 'palette'.
3500
3501 -- Opción gráfica: columns
3502     Valor por defecto: 1
3503
3504     'columns' es el número de columnas en gráficos múltiples.
3505
3506     Puesto que ésta es una opción global, su posición dentro de la
3507     descripción de la escena no reviste importancia.  También puede
3508     usarse como argumento de la función 'draw'.
3509
3510     Ejemplo:
3511
3512          (%i1) load(draw)$
3513          (%i2) scene1: gr2d(title="Ellipse",
3514                             nticks=30,
3515                             parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
3516          (%i3) scene2: gr2d(title="Triangle",
3517                             polygon([4,5,7],[6,4,2]))$
3518          (%i4) draw(scene1, scene2, columns = 2)$
3519
3520 -- Opción gráfica: contour
3521     Valor por defecto: 'none'
3522
3523     La opción 'contour' permite al usuario decidir dónde colocar las
3524     líneas de nivel.  Valores posibles son:
3525
3526        * 'none': no se dibujan líneas de nivel.
3527
3528        * 'base': las líneas de nivel se proyectan sobre el plano xy.
3529
3530        * 'surface': las líneas de nivel se dibujan sobre la propia
3531          superficie.
3532
3533        * 'both': se dibujan dos conjuntos de líneas de nivel: sobre la
3534          superficie y las que se proyectan sobre el plano xy.
3535
3536        * 'map': las líneas de nivel se proyectan sobre el plano xy y el
3537          punto de vista del observador se coloca perpendicularmente a
3538          él.
3539
3540     Puesto que ésta es una opción global, su posición dentro de la
3541     descripción de la escena no reviste importancia.
3542
3543     Ejemplo:
3544
3545          (%i1) load(draw)$
3546          (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
3547                       contour_levels = 15,
3548                       contour        = both,
3549                       surface_hide   = true) $
3550
3551     Véase también 'contour_levels'.
3552
3553 -- Opción gráfica: contour_levels
3554     Valor por defecto: 5
3555
3556     Esta opción gráfica controla cómo se dibujarán las líneas de nivel.
3557     A 'contour_levels' se le puede asignar un número entero positivo,
3558     una lista de tres números o un conjunto numérico arbitrario:
3559
3560        * Si a 'contour_levels' se le asigna un entero positivo <n>,
3561          entonces se dibujarán <n> líneas de nivel a intervalos
3562          iguales.  Por defecto, se dibujaán cinco isolíneas.
3563
3564        * Si a 'contour_levels' se le asigna una lista de tres números
3565          de la forma '[inf,p,sup]', las isolíneas se dibujarán desde
3566          'inf' hasta 'sup' en pasos de amplitud 'p'.
3567
3568        * Si a 'contour_levels' se le asigna un conjunto de números de
3569          la forma '{n1, n2, ...}', entonces se dibujarán las isolíneas
3570          correspondientes a los niveles 'n1', 'n2', ...
3571
3572     Puesto que ésta es una opción global, su posición dentro de la
3573     descripción de la escena no reviste importancia.
3574
3575     Ejemplos:
3576
3577     Diez isolíneas igualmente espaciadas.  El número real puede
3578     ajustarse a fin de poder conseguir etiquetas más sencillas.
3579          (%i1) load(draw)$
3580          (%i2) draw3d(color = green,
3581                       explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
3582                       contour_levels = 10,
3583                       contour        = both,
3584                       surface_hide   = true) $
3585
3586     Desde -8 hasta 8 en pasos de amplitud 4.
3587          (%i1) load(draw)$
3588          (%i2) draw3d(color = green,
3589                       explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
3590                       contour_levels = [-8,4,8],
3591                       contour        = both,
3592                       surface_hide   = true) $
3593
3594     Líneas correspondientes a los niveles -7, -6, 0.8 y 5.
3595          (%i1) load(draw)$
3596          (%i2) draw3d(color = green,
3597                       explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
3598                       contour_levels = {-7, -6, 0.8, 5},
3599                       contour        = both,
3600                       surface_hide   = true) $
3601
3602     Véase también 'contour'.
3603
3604 -- Opción gráfica: data_file_name
3605     Valor por defecto: '"data.gnuplot"'
3606
3607     'data_file_name' es el nombre del fichero que almacena la
3608     información numérica que necesita Gnuplot para crear el gráfico
3609     solicitado.
3610
3611     Puesto que ésta es una opción global, su posición dentro de la
3612     descripción de la escena no reviste importancia.  También puede
3613     usarse como argumento de la función 'draw'.
3614
3615     Véase ejemplo en 'gnuplot_file_name'.
3616
3617 -- Opción gráfica: delay
3618     Valor por defecto: 5
3619
3620     Este es el retraso en centésimas de segundo entre imágenes en los
3621     ficheros gif animados.
3622
3623     Puesto que ésta es una opción global, su posición dentro de la
3624     descripción de la escena no reviste importancia.  También puede
3625     usarse como argumento de la función 'draw'.
3626
3627     Ejemplo:
3628
3629          (%i1) load(draw)$
3630          (%i2) draw(
3631                  delay     = 100,
3632                  file_name = "zzz",
3633                  terminal  = 'animated_gif,
3634                  gr2d(explicit(x^2,x,-1,1)),
3635                  gr2d(explicit(x^3,x,-1,1)),
3636                  gr2d(explicit(x^4,x,-1,1)));
3637          End of animation sequence
3638          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
3639
3640     La opciób 'delay' sólo se activa en caso de gifs animados; se
3641     ignora en cualquier otro caso.
3642
3643     Véanse también 'terminal', 'dimensions'.
3644
3645 -- Opción gráfica: dimensions
3646     Valor por defecto: '[600,500]'
3647
3648     Dimensiones del terminal de salida.  Su valor es una lista formada
3649     por el ancho y el alto.  El significado de estos dos números
3650     depende del terminal con el que se esté trabajando.
3651
3652     Con los terminales 'gif', 'animated_gif', 'png', 'jpg', 'svg',
3653     'screen', 'wxt' y 'aquaterm', los enteros representan números de
3654     puntos en cada dirección.  Si no son enteros se redondean.
3655
3656     Con los terminales 'eps', 'eps_color', 'pdf' y 'pdfcairo', los
3657     números representan centésimas de cm, lo que significa que, por
3658     defecto, las imágenes en estos formatos tienen 6 cm de ancho por 5
3659     cm de alto.
3660
3661     Puesto que ésta es una opción global, su posición dentro de la
3662     descripción de la escena no reviste importancia.  También puede
3663     usarse como argumento de la función 'draw'.
3664
3665     Ejemplos:
3666
3667     La opción 'dimensions' aplicada a un fichero de salida y al lienzo
3668     wxt.
3669
3670          (%i1) load(draw)$
3671          (%i2) draw2d(
3672                  dimensions = [300,300],
3673                  terminal   = 'png,
3674                  explicit(x^4,x,-1,1)) $
3675          (%i3) draw2d(
3676                  dimensions = [300,300],
3677                  terminal   = 'wxt,
3678                  explicit(x^4,x,-1,1)) $
3679
3680     La opción 'dimensions' aplicada a una salida eps.  En este caso
3681     queremos un fichero eps con dimensiones A4.
3682
3683          (%i1) load(draw)$
3684          (%i2) A4portrait: 100*[21, 29.7]$
3685          (%i3) draw3d(
3686                  dimensions = A4portrait,
3687                  terminal   = 'eps,
3688                  explicit(x^2-y^2,x,-2,2,y,-2,2)) $
3689
3690 -- Opción gráfica: draw_realpart
3691     Valor por defecto: 'true'
3692
3693     Cuando vale 'true', las funciones a dibujar se consideran funciones
3694     complejas cuyas partes reales se deben dibujar; cuando la opción
3695     vale 'false', no se dibujará nada en caso de que la función no
3696     devuelve valores reales.
3697
3698     Esta opción afecta a los objetos 'explicit' y 'parametric' en 2D y
3699     3D, y al objeto 'parametric_surface'.
3700
3701     Ejemplo:
3702
3703     La opción 'draw_realpart' afecta a los objetos 'explicit' y
3704     'parametric'.
3705
3706          (%i1) load(draw)$
3707          (%i2) draw2d(
3708                  draw_realpart = false,
3709                  explicit(sqrt(x^2  - 4*x) - x, x, -1, 5),
3710                  color         = red,
3711                  draw_realpart = true,
3712                  parametric(x,sqrt(x^2  - 4*x) - x + 1, x, -1, 5) );
3713
3714 -- Opción gráfica: enhanced3d
3715     Valor por defecto: 'none'
3716
3717     Cuando 'enhanced3d' vale 'none', las superficies no se colorean en
3718     escenas 3D. Para obtener una superficie coloreada se debe asignar
3719     una lista a la opción 'enhanced3d', en la que el primer elemento es
3720     una expresión y el resto son los nombres de las variables o
3721     parámetros utilizados en la expresión.  Una lista tal como
3722     '[f(x,y,z), x, y, z]' significa que al punto '[x,y,z]' de la
3723     superficie se le asigna el número 'f(x,y,z)', el cual será
3724     coloreado de acuerdo con el valor actual de 'palette'.  Para
3725     aquellos objetos gráficos 3D definidos en términos de parámetros,
3726     es posible definir el número de color en términos de dichos
3727     parámetros, como en '[f(u), u]', para los objetos 'parametric' y
3728     'tube', o '[f(u,v), u, v]', para el objeto 'parametric_surface'.
3729     Mientras que todos los objetos 3D admiten el modelo basado en
3730     coordenadas absolutas, '[f(x,y,z), x, y, z]', solamente dos de
3731     ellos, esto es 'explicit' y 'elevation_grid', aceptan también el
3732     modelo basado en las coordenadas '[x,y]', '[f(x,y), x, y]'.  El
3733     objeto 3D 'implicit' acepta solamente el modelo '[f(x,y,z), x, y,
3734     z]'.  El objeto 'points' también acepta el modelo '[f(x,y,z), x, y,
3735     z]', pero cuando los puntos tienen naturaleza cronológica también
3736     admite el modelo '[f(k), k]', siendo 'k' un parámetro de orden.
3737
3738     Cuando a 'enhanced3d' se le asigna algo diferente de 'none', se
3739     ignoran las opciones 'color' y 'surface_hide'.
3740
3741     Los nombres de las variables definidas en las listas pueden ser
3742     diferentes de aquellas utilizadas en las definiciones de los
3743     objetos gráficos.
3744
3745     A fin de mantener compatibilidad con versiones anteriores,
3746     'enhanced3d = false' es equivalente a 'enhanced3d = none' y
3747     'enhanced3d = true' es equivalente a 'enhanced3d = [z, x, y, z]'.
3748     Si a 'enhanced3d' se le asigna una expresión, sus variables deben
3749     ser las mismas utilizadas en la definición de la superficie.  Esto
3750     no es necesario cuando se utilizan listas.
3751
3752     Sobre la definición de paletas, véase 'palette'.
3753
3754     Ejemplos:
3755
3756     Objeto 'explicit' con coloreado definido por el modelo '[f(x,y,z),
3757     x, y, z]'.
3758
3759          (%i1) load(draw)$
3760          (%i2) draw3d(
3761                   enhanced3d = [x-z/10,x,y,z],
3762                   palette    = gray,
3763                   explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
3764
3765     Objeto 'explicit' con coloreado definido por el modelo '[f(x,y), x,
3766     y]'.  Los nombres de las variables definidas en las listas pueden
3767     ser diferentes de aquellas utilizadas en las definiciones de los
3768     objetos gráficos 3D; en este caso, 'r' corresponde a 'x' y 's' a
3769     'y'.
3770
3771          (%i1) load(draw)$
3772          (%i2) draw3d(
3773                   enhanced3d = [sin(r*s),r,s],
3774                   explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
3775
3776     Objeto 'parametric' con coloreado definido por el modelo
3777     '[f(x,y,z), x, y, z]'.
3778
3779          (%i1) load(draw)$
3780          (%i2) draw3d(
3781                   nticks = 100,
3782                   line_width = 2,
3783                   enhanced3d = [if y>= 0 then 1 else 0, x, y, z],
3784                   parametric(sin(u)^2,cos(u),u,u,0,4*%pi)) $
3785
3786     Objeto 'parametric' con coloreado definido por el modelo '[f(u),
3787     u]'.  En este caso, '(u-1)^2' es una simplificación de
3788     '[(u-1)^2,u]'.
3789
3790          (%i1) load(draw)$
3791          (%i2) draw3d(
3792                   nticks = 60,
3793                   line_width = 3,
3794                   enhanced3d = (u-1)^2,
3795                   parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2))$
3796
3797     Objeto 'elevation_grid' con coloreado definido por el modelo
3798     '[f(x,y), x, y]'.
3799
3800          (%i1) load(draw)$
3801          (%i2) m: apply(
3802                     matrix,
3803                     makelist(makelist(cos(i^2/80-k/30),k,1,30),i,1,20)) $
3804          (%i3) draw3d(
3805                   enhanced3d = [cos(x*y*10),x,y],
3806                   elevation_grid(m,-1,-1,2,2),
3807                   xlabel = "x",
3808                   ylabel = "y");
3809
3810     Objeto 'tube' con coloreado definido por el modelo '[f(x,y,z), x,
3811     y, z]'.
3812
3813          (%i1) load(draw)$
3814          (%i2) draw3d(
3815                   enhanced3d = [cos(x-y),x,y,z],
3816                   palette = gray,
3817                   xu_grid = 50,
3818                   tube(cos(a), a, 0, 1, a, 0, 4*%pi) )$
3819
3820     Objeto 'tube' con coloreado definido por el modelo '[f(u), u]'.  En
3821     este caso, 'enhanced3d = -a' puede ser una simplificación de
3822     'enhanced3d = [-foo,foo]'.
3823
3824          (%i1) load(draw)$
3825          (%i2) draw3d(
3826                   capping = [true, false],
3827                   palette = [26,15,-2],
3828                   enhanced3d = [-foo, foo],
3829                   tube(a, a, a^2, 1, a, -2, 2) )$
3830
3831     Objetos 'implicit' y 'points' con coloreado definido por el modelo
3832     '[f(x,y,z), x, y, z]'.
3833
3834          (%i1) load(draw)$
3835          (%i2) draw3d(
3836                   enhanced3d = [x-y,x,y,z],
3837                   implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
3838                            x,-1,1,y,-1.2,2.3,z,-1,1)) $
3839          (%i3) m: makelist([random(1.0),random(1.0),random(1.0)],k,1,2000)$
3840          (%i4) draw3d(
3841                   point_type = filled_circle,
3842                   point_size = 2,
3843                   enhanced3d = [u+v-w,u,v,w],
3844                   points(m) ) $
3845
3846     cuando los puntos tienen naturaleza cronológica también se admite
3847     el modelo '[f(k), k]', siendo 'k' un parámetro de orden.
3848
3849          (%i1) load(draw)$
3850          (%i2) m:makelist([random(1.0), random(1.0), random(1.0)],k,1,5)$
3851          (%i3) draw3d(
3852                   enhanced3d = [sin(j), j],
3853                   point_size = 3,
3854                   point_type = filled_circle,
3855                   points_joined = true,
3856                   points(m)) $
3857
3858 -- Opción gráfica: error_type
3859     Valor por defecto: 'y'
3860
3861     Dependiendo de su valor, el cual puede ser 'x', 'y' o 'xy', el
3862     objeto gráfico 'errors' dibujará puntos con barras de error
3863     horizontales, verticales, o ambas.  Si 'error_type=boxes', se
3864     dibujarán cajas en lugar de cruces.
3865
3866     Véase también 'errors'.
3867
3868 -- Opción gráfica: file_name
3869     Valor por defecto: '"maxima_out"'
3870
3871     'file_name' es el nombre del fichero en el que los terminales
3872     'png', 'jpg', 'gif', 'eps', 'eps_color', 'pdf', 'pdfcairo' y 'svg'
3873     guardarán el gráfico.
3874
3875     Puesto que ésta es una opción global, su posición dentro de la
3876     descripción de la escena no reviste importancia.  También puede
3877     usarse como argumento de la función 'draw'.
3878
3879     Ejemplo:
3880
3881          (%i1) load(draw)$
3882          (%i2) draw2d(file_name = "myfile",
3883                       explicit(x^2,x,-1,1),
3884                       terminal  = 'png)$
3885
3886     Véanse también 'terminal', 'dimensions'.
3887
3888 -- Opción gráfica: fill_color
3889     Valor por defecto: '"red"'
3890
3891     'fill_color' especifica el color para rellenar polígonos y
3892     funciones explícitas bidimensionales.
3893
3894     Véase 'color' para más información sobre cómo definir colores.
3895
3896 -- Opción gráfica: fill_density
3897     Valor por defecto: 0
3898
3899     'fill_density' es un número entre 0 y 1 que especifica la
3900     intensidad del color de relleno (dado por 'fill_color') en los
3901     objetos 'bars'.
3902
3903     Véase 'bars' para ejemplos.
3904
3905 -- Opción gráfica: filled_func
3906     Valor por defecto: 'false'
3907
3908     La opción 'filled_func' establece cómo se van a rellenar las
3909     regiones limitadas por funciones.  Si 'filled_func' vale 'true', la
3910     región limitada por la función definida en el objeto 'explicit' y
3911     el borde inferior del la ventana gráfica se rellena con
3912     'fill_color'.  Si 'filled_func' guarda la expresión de una función,
3913     entonces la región limitada por esta función y la definida en el
3914     objeto 'explicit' será la que se rellene.  Por defecto, las
3915     funciones explícitas no se rellenan.
3916
3917     Un caso de especial utilidad es 'filled_func=0', con lo que se
3918     sombrea la región limitada por el eje horizontal y la función
3919     explícita.
3920
3921     Esta opción sólo afecta al objeto gráfico bidimensional 'explicit'.
3922
3923     Ejemplo:
3924
3925     Región limitada por un objeto 'explicit' y el borde inferior de la
3926     ventana gráfica.
3927          (%i1) load(draw)$
3928          (%i2) draw2d(fill_color  = red,
3929                       filled_func = true,
3930                       explicit(sin(x),x,0,10) )$
3931
3932     Región limitada por un objeto 'explicit' y la función definida en
3933     la opción 'filled_func'.  Nótese que la variable en 'filled_func'
3934     debe ser la misma que la utilizada en 'explicit'.
3935          (%i1) load(draw)$
3936          (%i2) draw2d(fill_color  = grey,
3937                       filled_func = sin(x),
3938                       explicit(-sin(x),x,0,%pi));
3939
3940     Véanse también 'fill_color' y 'explicit'.
3941
3942 -- Opción gráfica: font
3943     Valor por defecto: '""' (cadena vacía)
3944
3945     Esta opción permite seleccionar el tipo de fuente a utilizar por el
3946     terminal.  Sólo se puede utilizar un tipo de fuente y tamaño por
3947     gráfico.
3948
3949     Puesto que ésta es una opción global, su posición dentro de la
3950     descripción de la escena no reviste importancia.
3951
3952     Véase también 'font_size'.
3953
3954     Gnuplot no puede gestionar por sí mismo las fuentes, dejando esta
3955     tarea a las librerías que dan soporte a los diferentes terminales,
3956     cada uno con su propia manera de controlar la tipografía.  A
3957     continuación un breve resumen:
3958
3959        * x11: Utiliza el mecanismo habitual para suministrar las
3960          fuentes en x11.
3961
3962          Ejemplo:
3963               (%i1) load(draw)$
3964               (%i2) draw2d(font      = "Arial",
3965                            font_size = 20,
3966                            label(["Arial font, size 20",1,1]))$
3967
3968        * windows: El terminal de windows no permite cambiar fuentes
3969          desde dentro del gráfico.  Una vez se ha creado el gráfico, se
3970          pueden cambiar las fuentes haciendo clic derecho en el menú de
3971          la ventana gráfica.
3972
3973        * png, jpeg, gif: La librería libgd utiliza la ruta a las
3974          fuentes almacenada en la variable de entorno 'GDFONTPATH'; en
3975          tal caso sólo es necesario darle a la opción 'font' el nombre
3976          de la fuente.  También es posible darle la ruta completa al
3977          fichero de la fuente.
3978
3979          Ejemplos:
3980
3981          A la opción 'font' se le puede dar la ruta completa al fichero
3982          de la fuente:
3983               (%i1) load(draw)$
3984               (%i2) path: "/usr/share/fonts/truetype/freefont/" $
3985               (%i3) file: "FreeSerifBoldItalic.ttf" $
3986               (%i4) draw2d(
3987                       font      = concat(path, file),
3988                       font_size = 20,
3989                       color     = red,
3990                       label(["FreeSerifBoldItalic font, size 20",1,1]),
3991                       terminal  = png)$
3992
3993          Si la variable de entorno 'GDFONTPATH' almacena la ruta a la
3994          carpeta donde se alojan las fuentes, es posible darle a la
3995          opción 'font' sólo el nombre de la fuente:
3996               (%i1) load(draw)$
3997               (%i2) draw2d(
3998                       font      = "FreeSerifBoldItalic",
3999                       font_size = 20,
4000                       color     = red,
4001                       label(["FreeSerifBoldItalic font, size 20",1,1]),
4002                       terminal  = png)$
4003
4004        * Postscript: Las fuentes estándar de Postscript son:
4005          '"Times-Roman"', '"Times-Italic"', '"Times-Bold"',
4006          '"Times-BoldItalic"', '"Helvetica"', '"Helvetica-Oblique"',
4007          '"Helvetica-Bold"', '"Helvetic-BoldOblique"', '"Courier"',
4008          '"Courier-Oblique"', '"Courier-Bold"' y
4009          '"Courier-BoldOblique"'.
4010
4011          Ejemplo:
4012               (%i1) load(draw)$
4013               (%i2) draw2d(
4014                       font      = "Courier-Oblique",
4015                       font_size = 15,
4016                       label(["Courier-Oblique font, size 15",1,1]),
4017                       terminal = eps)$
4018
4019        * pdf: Utiliza las mismas fuentes que Postscript.
4020
4021        * pdfcairo: Utiliza las mismas fuentes que wxt.
4022
4023        * wxt: La librería pango encuentra las fuentes por medio de la
4024          utilidad 'fontconfig'.
4025
4026        * aqua: La fuente por defecto es '"Times-Roman"'.
4027
4028     La documentación de gnuplot es una importante fuente de información
4029     sobre terminales y fuentes.
4030
4031 -- Opción gráfica: font_size
4032     Valor por defecto: 10
4033
4034     Esta opción permite seleccionar el tamaño de la fuente a utilizar
4035     por el terminal.  Sólo se puede utilizar un tipo de fuente y tamaño
4036     por gráfico.  'font_size' sólo se activa cuando la opción 'font'
4037     tiene un valor diferente de la cadena vacía.
4038
4039     Puesto que ésta es una opción global, su posición dentro de la
4040     descripción de la escena no reviste importancia.
4041
4042     Véase también 'font'.
4043
4044 -- Opción gráfica: gnuplot_file_name
4045     Valor por defecto: '"maxout.gnuplot"'
4046
4047     'gnuplot_file_name' es el nombre del fichero que almacena las
4048     instrucciones a ser procesadas por Gnuplot.
4049
4050     Puesto que ésta es una opción global, su posición dentro de la
4051     descripción de la escena no reviste importancia.  También puede
4052     usarse como argumento de la función 'draw'.
4053
4054     Ejemplo:
4055
4056          (%i1) load(draw)$
4057          (%i2) draw2d(
4058                 file_name = "my_file",
4059                 gnuplot_file_name = "my_commands_for_gnuplot",
4060                 data_file_name    = "my_data_for_gnuplot",
4061                 terminal          = png,
4062                 explicit(x^2,x,-1,1)) $
4063
4064     Véase también 'data_file_name'.
4065
4066 -- Opción gráfica: grid
4067     Valor por defecto: 'false'
4068
4069     Cuando
4070
4071     Cuando 'grid' toma un valor distinto de 'false', se dibujará una
4072     rejilla sobre el plano <xy>.  Si a 'grid' se le asigna el valor
4073     'true', se dibujará una línea de la rejilla por cada marca que haya
4074     sobre los ejes.  Si a 'grid' se le asigna la lista '[nx,ny]', con
4075     <[nx,ny] > [0,0]>, se dibujarán 'nx' líneas por cada marca del
4076     eje-<x> y <ny> líneas por cada marca del eje-<y>.
4077
4078     Puesto que ésta es una opción global, su posición dentro de la
4079     descripción de la escena no reviste importancia.
4080
4081     Ejemplo:
4082
4083          (%i1) load(draw)$
4084          (%i2) draw2d(grid = true,
4085                       explicit(exp(u),u,-2,2))$
4086
4087 -- Opción gráfica: head_angle
4088     Valor por defecto: 45
4089
4090     'head_angle' indica el ángulo, en grados, entre la flecha y el
4091     segmento del vector.
4092
4093     Esta opción sólo es relevante para objetos de tipo 'vector'.
4094
4095     Ejemplo:
4096
4097          (%i1) load(draw)$
4098          (%i2) draw2d(xrange      = [0,10],
4099                       yrange      = [0,9],
4100                       head_length = 0.7,
4101                       head_angle  = 10,
4102                       vector([1,1],[0,6]),
4103                       head_angle  = 20,
4104                       vector([2,1],[0,6]),
4105                       head_angle  = 30,
4106                       vector([3,1],[0,6]),
4107                       head_angle  = 40,
4108                       vector([4,1],[0,6]),
4109                       head_angle  = 60,
4110                       vector([5,1],[0,6]),
4111                       head_angle  = 90,
4112                       vector([6,1],[0,6]),
4113                       head_angle  = 120,
4114                       vector([7,1],[0,6]),
4115                       head_angle  = 160,
4116                       vector([8,1],[0,6]),
4117                       head_angle  = 180,
4118                       vector([9,1],[0,6]) )$
4119
4120     Véanse también 'head_both', 'head_length' y 'head_type'.
4121
4122 -- Opción gráfica: head_both
4123     Valor por defecto: 'false'
4124
4125     Cuando 'head_both' vale 'true', los vectores se dibujan
4126     bidireccionales.  Si vale 'false', se dibujan unidireccionales.
4127
4128     Esta opción sólo es relevante para objetos de tipo 'vector'.
4129
4130     Ejemplo:
4131
4132          (%i1) load(draw)$
4133          (%i2) draw2d(xrange      = [0,8],
4134                       yrange      = [0,8],
4135                       head_length = 0.7,
4136                       vector([1,1],[6,0]),
4137                       head_both   = true,
4138                       vector([1,7],[6,0]) )$
4139
4140     Véanse también 'head_length', 'head_angle' y 'head_type'.
4141
4142 -- Opción gráfica: head_length
4143     Valor por defecto: 2
4144
4145     'head_length' indica, en las unidades del eje <x>, la longitud de
4146     las flechas de los vectores.
4147
4148     Esta opción sólo es relevante para objetos de tipo 'vector'.
4149
4150     Ejemplo:
4151
4152          (%i1) load(draw)$
4153          (%i2) draw2d(xrange      = [0,12],
4154                       yrange      = [0,8],
4155                       vector([0,1],[5,5]),
4156                       head_length = 1,
4157                       vector([2,1],[5,5]),
4158                       head_length = 0.5,
4159                       vector([4,1],[5,5]),
4160                       head_length = 0.25,
4161                       vector([6,1],[5,5]))$
4162
4163     Véanse también 'head_both', 'head_angle' y 'head_type'.
4164
4165 -- Opción gráfica: head_type
4166     Valor por defecto: 'filled'
4167
4168     'head_type' se utiliza para especificar cómo se habrán de dibujar
4169     las flechas de los vectores.  Los valores posibles para esta opción
4170     son: 'filled' (flechas cerradas y rellenas), 'empty' (flechas
4171     cerradas pero no rellenas) y 'nofilled' (flechas abiertas).
4172
4173     Esta opción sólo es relevante para objetos de tipo 'vector'.
4174
4175     Ejemplo:
4176
4177          (%i1) load(draw)$
4178          (%i2) draw2d(xrange      = [0,12],
4179                       yrange      = [0,10],
4180                       head_length = 1,
4181                       vector([0,1],[5,5]), /* default type */
4182                       head_type = 'empty,
4183                       vector([3,1],[5,5]),
4184                       head_type = 'nofilled,
4185                       vector([6,1],[5,5]))$
4186
4187     Véanse también 'head_both', 'head_angle' y 'head_length'.
4188
4189 -- Opción gráfica: interpolate_color
4190     Valor por defecto: 'false'
4191
4192     Esta opción solo es relevante si 'enhanced3d' tiene un valor
4193     diferente de 'false'.
4194
4195     Si 'interpolate_color' vale 'false', las superficies se colorean
4196     con cuadriláteros homogéneos.  Si vale 'true', las transiciones de
4197     colores se suavizan por interpolación.
4198
4199     La opción 'interpolate_color' también acepta una lista de dos
4200     números, '[m,n]'.  Para <m> y <n> positivos, cada cuadrilátero o
4201     triángulo se interpola <m> y <n> veces en la dirección respectiva.
4202     Para <m> y <n> negativos, la frecuencia de interpolación se elige
4203     de forma que se dibujen al menos <abs(m)> y <abs(n)> puntos,
4204     pudiéndose considerar esto como una función especial de enrejado.
4205     Con valores nulos, esto es 'interpolate_color=[0,0]', se
4206     seleccionará un número óptimo de puntos interpolados en la
4207     superficie.
4208
4209     Además, 'interpolate_color=true' es equivalente a
4210     'interpolate_color=[0,0]'.
4211
4212     La interpolación de colores en superficies paramétricas puede dar
4213     resultados imprevisibles.
4214
4215     Ejemplos:
4216
4217     Interpolación de color con funciones explícitas.
4218
4219          (%i1) load(draw)$
4220          (%i2) draw3d(
4221                  enhanced3d   = sin(x*y),
4222                  explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $
4223          (%i3) draw3d(
4224                  interpolate_color = true,
4225                  enhanced3d   = sin(x*y),
4226                  explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $
4227          (%i4) draw3d(
4228                  interpolate_color = [-10,0],
4229                  enhanced3d   = sin(x*y),
4230                  explicit(20*exp(-x^2-y^2)-10, x ,-3, 3, y, -3, 3)) $
4231
4232     Interpolación de color con el objeto 'mesh'.
4233
4234          (%i1) load(draw)$
4235          (%i2) draw3d(
4236                  enhanced3d = true,
4237                  mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
4238                       [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
4239                       [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $
4240          (%i3) draw3d(
4241                  enhanced3d        = true,
4242                  interpolate_color = true,
4243                  mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
4244                       [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
4245                       [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $
4246          (%i4) draw3d(
4247                  enhanced3d        = true,
4248                  interpolate_color = true,
4249                  view=map,
4250                  mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
4251                       [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
4252                       [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $
4253
4254     Véase también 'enhanced3d'.
4255
4256 -- Opción gráfica: ip_grid
4257     Valor por defecto: '[50, 50]'
4258
4259     'ip_grid' establece la rejilla del primer muestreo para los
4260     gráficos de funciones implícitas.
4261
4262     Esta opción sólo es relevante para funciones de tipo 'implicit'.
4263
4264 -- Opción gráfica: ip_grid_in
4265     Valor por defecto: '[5, 5]'
4266
4267     'ip_grid_in' establece la rejilla del segundo muestreo para los
4268     gráficos de funciones implícitas.
4269
4270     Esta opción sólo es relevante para funciones de tipo 'implicit'.
4271
4272 -- Opción gráfica: key
4273     Valor por defecto: '""' (cadena vacía)
4274
4275     'key' es la clave de una función en la leyenda.  Si 'key' es una
4276     cadena vacía, las funciones no tendrán clave asociada en la
4277     leyenda.
4278
4279     Esta opción afecta a los siguientes objetos gráficos:
4280        * 'gr2d': 'points', 'polygon', 'rectangle', 'ellipse', 'vector',
4281          'explicit', 'implicit', 'parametric' y 'polar'.
4282
4283        * 'gr3d': 'points', 'explicit', 'parametric', y
4284          'parametric_surface'.
4285
4286     Ejemplo:
4287
4288          (%i1) load(draw)$
4289          (%i2) draw2d(key   = "Sinus",
4290                       explicit(sin(x),x,0,10),
4291                       key   = "Cosinus",
4292                       color = red,
4293                       explicit(cos(x),x,0,10) )$
4294
4295 -- Opción gráfica: key_pos
4296     Valor por defecto: '""' (cadena vacía)
4297
4298     La opción 'key_pos' establece en qué posición se colocará la
4299     leyenda.  Si 'key' es una cadena vacía, entonces se utilizará por
4300     defecto la posición '"top_right"'.  Los valores disponibles para
4301     esta opción son: 'top_left', 'top_center', 'top_right',
4302     'center_left', 'center', 'center_right', 'bottom_left',
4303     'bottom_center' y 'bottom_right'.
4304
4305     Puesto que ésta es una opción global, su posición dentro de la
4306     descripción de la escena no reviste importancia.
4307
4308     Ejemplos:
4309
4310          (%i1) load(draw)$
4311          (%i2) draw2d(
4312                  key_pos = top_left,
4313                  key     = "x",
4314                  explicit(x,  x,0,10),
4315                  color   = red,
4316                  key     = "x squared",
4317                  explicit(x^2,x,0,10))$
4318          (%i3) draw3d(
4319                  key_pos = center,
4320                  key     = "x",
4321                  explicit(x+y,x,0,10,y,0,10),
4322                  color= red,
4323                  key     = "x squared",
4324                  explicit(x^2+y^2,x,0,10,y,0,10))$
4325
4326 -- Opción gráfica: label_alignment
4327     Valor por defecto: 'center'
4328
4329     'label_alignment' se utiliza para especificar dónde se escribirán
4330     las etiquetas con respecto a las coordenadas de referencia.  Los
4331     valores posibles para esta opción son: 'center', 'left' y 'right'.
4332
4333     Esta opción sólo es relevante para objetos de tipo 'label'.
4334
4335     Ejemplo:
4336
4337          (%i1) load(draw)$
4338          (%i2) draw2d(xrange          = [0,10],
4339                       yrange          = [0,10],
4340                       points_joined   = true,
4341                       points([[5,0],[5,10]]),
4342                       color           = blue,
4343                       label(["Centered alignment (default)",5,2]),
4344                       label_alignment = 'left,
4345                       label(["Left alignment",5,5]),
4346                       label_alignment = 'right,
4347                       label(["Right alignment",5,8]))$
4348
4349     Véanse también 'label_orientation' y 'color'.
4350
4351 -- Opción gráfica: label_orientation
4352     Valor por defecto: 'horizontal'
4353
4354     'label_orientation' se utiliza para especificar la orientación de
4355     las etiquetas.  Los valores posibles para esta opción son:
4356     'horizontal' y 'vertical'.
4357
4358     Esta opción sólo es relevante para objetos de tipo 'label'.
4359
4360     Ejemplo:
4361
4362     En este ejemplo, el punto ficticio que se añade sirve para obtener
4363     la imagen, ya que el paquete 'draw' necesita siempre de datos para
4364     construir la escena.
4365          (%i1) load(draw)$
4366          (%i2) draw2d(xrange     = [0,10],
4367                       yrange     = [0,10],
4368                       point_size = 0,
4369                       points([[5,5]]),
4370                       color      = navy,
4371                       label(["Horizontal orientation (default)",5,2]),
4372                       label_orientation = 'vertical,
4373                       color             = "#654321",
4374                       label(["Vertical orientation",1,5]))$
4375
4376     Véanse también 'label_alignment' y 'color'.
4377
4378 -- Opción gráfica: line_type
4379     Valor por defecto: 'solid'
4380
4381     'line_type' indica cómo se van a dibujar las líneas; valores
4382     posibles son 'solid' y 'dots', que están disponibles en todos los
4383     terminales, y 'dashes', 'short_dashes', 'short_long_dashes',
4384     'short_short_long_dashes' y 'dot_dash', que no esán disponibles en
4385     los terminales 'png', 'jpg' y 'gif'.
4386
4387     Esta opción afecta a los siguientes objetos gráficos:
4388        * 'gr2d': 'points', 'polygon', 'rectangle', 'ellipse', 'vector',
4389          'explicit', 'implicit', 'parametric' y 'polar'.
4390
4391        * 'gr3d': 'points', 'explicit', 'parametric' y
4392          'parametric_surface'.
4393
4394     Ejemplo:
4395
4396          (%i1) load(draw)$
4397          (%i2) draw2d(line_type = dots,
4398                       explicit(1 + x^2,x,-1,1),
4399                       line_type = solid, /* default */
4400                       explicit(2 + x^2,x,-1,1))$
4401
4402     Véase también 'line_width'.
4403
4404 -- Opción gráfica: line_width
4405     Valor por defecto: 1
4406
4407     'line_width' es el ancho de las líneas a dibujar.  Su valor debe
4408     ser un número positivo.
4409
4410     Esta opción afecta a los siguientes objetos gráficos:
4411        * 'gr2d': 'points', 'polygon', 'rectangle', 'ellipse', 'vector',
4412          'explicit', 'implicit', 'parametric' y 'polar'.
4413
4414        * 'gr3d': 'points' y 'parametric'.
4415
4416     Ejemplo:
4417
4418          (%i1) load(draw)$
4419          (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
4420                       line_width = 5.5,
4421                       explicit(1 + x^2,x,-1,1),
4422                       line_width = 10,
4423                       explicit(2 + x^2,x,-1,1))$
4424
4425     Véase también 'line_type'.
4426
4427 -- Opción gráfica: logcb
4428     Valor por defecto: 'false'
4429
4430     Cuando 'logcb' vale 'true', la escala de colores se dibuja
4431     logarítmicamente.
4432
4433     Cuando 'enhanced3d' o 'colorbox' vale 'false', la opción 'logcb' no
4434     tiene efecto alguno.
4435
4436     Puesto que ésta es una opción global, su posición dentro de la
4437     descripción de la escena no reviste importancia.
4438
4439     Ejemplo:
4440
4441          (%i1) load(draw)$
4442          (%i2) draw3d (
4443                  enhanced3d = true,
4444                  color      = green,
4445                  logcb = true,
4446                  logz  = true,
4447                  palette = [-15,24,-9],
4448                  explicit(exp(x^2-y^2), x,-2,2,y,-2,2)) $
4449
4450     Véanse también 'enhanced3d', 'colorbox' y 'cbrange'.
4451
4452 -- Opción gráfica: logx
4453     Valor por defecto: 'false'
4454
4455     Cuando 'logx' vale 'true', el eje <x> se dibuja en la escala
4456     logarítmica.
4457
4458     Puesto que ésta es una opción global, su posición dentro de la
4459     descripción de la escena no reviste importancia.
4460
4461     Ejemplo:
4462
4463          (%i1) load(draw)$
4464          (%i2) draw2d(explicit(log(x),x,0.01,5),
4465                       logx = true)$
4466
4467     Véanse también 'logy', 'logx_secondary', 'logy_secondary' y 'logz'.
4468
4469 -- Opción gráfica: logx_secondary
4470     Valor por defecto: 'false'
4471
4472     Si 'logx_secondary' vale 'true', el eje secundario de <x> se dibuja
4473     en la escala logarítmica.
4474
4475     Puesto que ésta es una opción global, su posición dentro de la
4476     descripción de la escena no reviste importancia.
4477
4478     Ejemplo:
4479
4480          (%i1) load(draw)$
4481          (%i2) draw2d(
4482                  grid = true,
4483                  key="x^2, linear scale",
4484                  color=red,
4485                  explicit(x^2,x,1,100),
4486                  xaxis_secondary = true,
4487                  xtics_secondary = true,
4488                  logx_secondary  = true,
4489                  key = "x^2, logarithmic x scale",
4490                  color = blue,
4491                  explicit(x^2,x,1,100) )$
4492
4493     Véanse también 'logx', 'logy', 'logy_secondary' y 'logz'.
4494
4495 -- Opción gráfica: logy
4496     Valor por defecto: 'false'
4497
4498     Cuando 'logy' vale 'true', el eje <y> se dibuja en la escala
4499     logarítmica.
4500
4501     Puesto que ésta es una opción global, su posición dentro de la
4502     descripción de la escena no reviste importancia.
4503
4504     Ejemplo:
4505
4506          (%i1) load(draw)$
4507          (%i2) draw2d(logy = true,
4508                       explicit(exp(x),x,0,5))$
4509
4510     Véanse también 'logx', 'logx_secondary', 'logy_secondary' y 'logz'.
4511
4512 -- Opción gráfica: logy_secondary
4513     Valor por defecto: 'false'
4514
4515     Si 'logy_secondary' vale 'true', el eje secundario de <y> se dibuja
4516     en la escala logarítmica.
4517
4518     Puesto que ésta es una opción global, su posición dentro de la
4519     descripción de la escena no reviste importancia.
4520
4521     Ejemplo:
4522
4523          (%i1) load(draw)$
4524          (%i2) draw2d(
4525                  grid = true,
4526                  key="x^2, linear scale",
4527                  color=red,
4528                  explicit(x^2,x,1,100),
4529                  yaxis_secondary = true,
4530                  ytics_secondary = true,
4531                  logy_secondary  = true,
4532                  key = "x^2, logarithmic y scale",
4533                  color = blue,
4534                  explicit(x^2,x,1,100) )$
4535
4536     Véanse también 'logx', 'logy', 'logx_secondary' y 'logz'.
4537
4538 -- Opción gráfica: logz
4539     Valor por defecto: 'false'
4540
4541     Cuando 'logz' vale 'true', el eje <z> se dibuja en la escala
4542     logarítmica.
4543
4544     Puesto que ésta es una opción global, su posición dentro de la
4545     descripción de la escena no reviste importancia.
4546
4547     Ejemplo:
4548
4549          (%i1) load(draw)$
4550          (%i2) draw3d(logz = true,
4551                       explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
4552
4553     Véanse también 'logx' and 'logy'.
4554
4555 -- Opción gráfica: nticks
4556     Valor por defecto: 29
4557
4558     En 2d, 'nticks' es el número de puntos a utilizar por el programa
4559     adaptativo que genera las funciones explícitas.  También es el
4560     número de puntos que se representan en las curvas paramétricas y
4561     polares.
4562
4563     Esta opción afecta a los siguientes objetos gráficos:
4564        * 'gr2d': 'ellipse', 'explicit', 'parametric' y 'polar'.
4565
4566        * 'gr3d': 'parametric'.
4567
4568     Ejemplo:
4569
4570          (%i1) load(draw)$
4571          (%i2) draw2d(transparent = true,
4572                       ellipse(0,0,4,2,0,180),
4573                       nticks = 5,
4574                       ellipse(0,0,4,2,180,180) )$
4575
4576 -- Opción gráfica: palette
4577     Valor por defecto: 'color'
4578
4579     'palette' indica cómo transformar niveles de gris en componentes
4580     cromáticas.  Trabaja conjuntamente con la opción 'enhanced3d' en
4581     gráficos 3D, la cual asocia cada punto de una superficie con un
4582     número real o nivel de gris.  También trabaja con imágenes grises.
4583     Con 'palette', estos niveles se transforman en colores.
4584
4585     Hay dos formas de definir estas transformaciones.
4586
4587     En primer lugar, 'palette' puede ser un vector de longitud tres con
4588     sus componentes tomando valores enteros en el rango desde -36 a
4589     +36; cada valor es un índice para seleccionar una fórmula que
4590     transforma los niveles numéricos en las componentes cromáticas
4591     rojo, verde y azul:
4592           0: 0               1: 0.5           2: 1
4593           3: x               4: x^2           5: x^3
4594           6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
4595           9: sin(90x)       10: cos(90x)     11: |x-0.5|
4596          12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
4597          15: sin(360x)      16: cos(360x)    17: |sin(360x)|
4598          18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
4599          21: 3x             22: 3x-1         23: 3x-2
4600          24: |3x-1|         25: |3x-2|       26: (3x-1)/2
4601          27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
4602          30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
4603          33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
4604          36: 2*x - 1
4605     los números negativos se interpretan como colores invertidos de las
4606     componentes cromáticas.  'palette = gray' y 'palette = color' son
4607     atajos para 'palette = [3,3,3]' y 'palette = [7,5,15]',
4608     respectivamente.
4609
4610     En segundo lugar, 'palette' puede ser una paleta de colores
4611     definida por el usuario.  En este caso, el formato para crear una
4612     paleta de longitud 'n' es 'palette=[color_1, color_2, ...,
4613     color_n]', donde 'color_i' es un color correctamente definido
4614     (véase la opción 'color'), de tal manera que 'color_1' se asigna al
4615     valor más bajo del nivel y 'color_n' al más alto.  El resto de
4616     colores se interpolan.
4617
4618     Puesto que ésta es una opción global, su posición dentro de la
4619     descripción de la escena no reviste importancia.
4620
4621     Ejemplos:
4622
4623     Trabaja conjuntamente con la opción 'enhanced3d' en gráficos 3D.
4624
4625          (%i1) load(draw)$
4626          (%i2) draw3d(
4627                  enhanced3d = [z-x+2*y,x,y,z],
4628                  palette = [32, -8, 17],
4629                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
4630
4631     También trabaja con imágenes grises.
4632
4633          (%i1) load(draw)$
4634          (%i2) im: apply(
4635                     'matrix,
4636                      makelist(makelist(random(200),i,1,30),i,1,30))$
4637          (%i3) /* palette = color, default */
4638                draw2d(image(im,0,0,30,30))$
4639          (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
4640          (%i5) draw2d(palette = [15,20,-4],
4641                       colorbox=false,
4642                       image(im,0,0,30,30))$
4643
4644     'palette' puede ser una paleta de colores definida por el usuario.
4645     En este ejemplo, valores bajos de 'x' se colorean en rojo y altos
4646     en amarillo.
4647
4648          (%i1) load(draw)$
4649          (%i2) draw3d(
4650                   palette = [red, blue, yellow],
4651                   enhanced3d = x,
4652                   explicit(x^2+y^2,x,-1,1,y,-1,1)) $
4653
4654     Véase también 'colorbox' y 'enhanced3d'.
4655
4656 -- Opción gráfica: point_size
4657     Valor por defecto: 1
4658
4659     'point_size' establece el tamaño de los puntos dibujados.  Debe ser
4660     un número no negativo.
4661
4662     Esta opción no tiene efecto alguno cuando a la opción gráfica
4663     'point_type' se le ha dado el valor 'dot'.
4664
4665     Esta opción afecta a los siguientes objetos gráficos:
4666        * 'gr2d': 'points'.
4667
4668        * 'gr3d': 'points'.
4669
4670     Ejemplo:
4671
4672          (%i1) load(draw)$
4673          (%i2) draw2d(
4674                  points(makelist([random(20),random(50)],k,1,10)),
4675                  point_size = 5,
4676                  points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
4677
4678 -- Opción gráfica: point_type
4679     Valor por defecto: 1
4680
4681     'point_type' indica cómo se van a dibujar los puntos aislados.  Los
4682     valores para esta opción pueden ser índices enteros mayores o
4683     iguales que -1, o también nombres de estilos: '$none' (-1), 'dot'
4684     (0), 'plus' (1), 'multiply' (2), 'asterisk' (3), 'square' (4),
4685     'filled_square' (5), 'circle' (6), 'filled_circle' (7),
4686     'up_triangle' (8), 'filled_up_triangle' (9), 'down_triangle' (10),
4687     'filled_down_triangle' (11), 'diamant' (12) y 'filled_diamant'
4688     (13).
4689
4690     Esta opción afecta a los siguientes objetos gráficos:
4691        * 'gr2d': 'points'.
4692
4693        * 'gr3d': 'points'.
4694
4695     Ejemplo:
4696
4697          (%i1) load(draw)$
4698          (%i2) draw2d(xrange = [0,10],
4699                       yrange = [0,10],
4700                       point_size = 3,
4701                       point_type = diamant,
4702                       points([[1,1],[5,1],[9,1]]),
4703                       point_type = filled_down_triangle,
4704                       points([[1,2],[5,2],[9,2]]),
4705                       point_type = asterisk,
4706                       points([[1,3],[5,3],[9,3]]),
4707                       point_type = filled_diamant,
4708                       points([[1,4],[5,4],[9,4]]),
4709                       point_type = 5,
4710                       points([[1,5],[5,5],[9,5]]),
4711                       point_type = 6,
4712                       points([[1,6],[5,6],[9,6]]),
4713                       point_type = filled_circle,
4714                       points([[1,7],[5,7],[9,7]]),
4715                       point_type = 8,
4716                       points([[1,8],[5,8],[9,8]]),
4717                       point_type = filled_diamant,
4718                       points([[1,9],[5,9],[9,9]]) )$
4719
4720 -- Opción gráfica: points_joined
4721     Valor por defecto: 'false'
4722
4723     Cuando 'points_joined' vale 'true', los puntos se unen con
4724     segmentos; si vale 'false', se dibujarán puntos aislados.  Un
4725     tercer valor posible para esta opción gráfica es 'impulses'; en tal
4726     caso, se dibujarán segmentos verticales desde los puntos hasta el
4727     eje-x (2D) o hasta el plano-xy (3D).
4728
4729     Esta opción afecta a los siguientes objetos gráficos:
4730        * 'gr2d': 'points'.
4731
4732        * 'gr3d': 'points'.
4733
4734     Ejemplo:
4735
4736          (%i1) load(draw)$
4737          (%i2) draw2d(xrange        = [0,10],
4738                       yrange        = [0,4],
4739                       point_size    = 3,
4740                       point_type    = up_triangle,
4741                       color         = blue,
4742                       points([[1,1],[5,1],[9,1]]),
4743                       points_joined = true,
4744                       point_type    = square,
4745                       line_type     = dots,
4746                       points([[1,2],[5,2],[9,2]]),
4747                       point_type    = circle,
4748                       color         = red,
4749                       line_width    = 7,
4750                       points([[1,3],[5,3],[9,3]]) )$
4751
4752 -- Opción gráfica: proportional_axes
4753     Valor por defecto: 'none'
4754
4755     Cuando 'proportional_axes' es igual a 'xy' o 'xy', una escena 2D o
4756     3D se dibujará con los ejes proporcionales a sus longitudes
4757     relativas.
4758
4759     Puesto que ésta es una opción global, su posición dentro de la
4760     descripción de la escena no reviste importancia.
4761
4762     Esta opción sólo funciona con Gnuplot versión 4.2.6 o superior.
4763
4764     Ejemplos:
4765
4766     Gráfico en 2D.
4767
4768          (%i1) load(draw)$
4769          (%i2) draw2d(
4770                  ellipse(0,0,1,1,0,360),
4771                  transparent=true,
4772                  color = blue,
4773                  line_width = 4,
4774                  ellipse(0,0,2,1/2,0,360),
4775                  proportional_axes = xy) $
4776
4777     Multiplot.
4778
4779          (%i1) load(draw)$
4780          (%i2) draw(
4781                  terminal = wxt,
4782                  gr2d(proportional_axes = xy,
4783                       explicit(x^2,x,0,1)),
4784                  gr2d(explicit(x^2,x,0,1),
4785                       xrange = [0,1],
4786                       yrange = [0,2],
4787                       proportional_axes=xy),
4788                  gr2d(explicit(x^2,x,0,1)))$
4789
4790 -- Opción gráfica: surface_hide
4791     Valor por defecto: 'false'
4792
4793     Cuando 'surface_hide' vale 'true', las partes ocultas no se
4794     muestran en las superficies de las escenas 3d.
4795
4796     Puesto que ésta es una opción global, su posición dentro de la
4797     descripción de la escena no reviste importancia.
4798
4799     Ejemplo:
4800
4801          (%i1) load(draw)$
4802          (%i2) draw(columns=2,
4803                     gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
4804                     gr3d(surface_hide = true,
4805                          explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
4806
4807 -- Opción gráfica: terminal
4808     Valor por defecto: 'screen'
4809
4810     Selecciona el terminal a utilizar por Gnuplot; valores posibles
4811     son: 'screen' (por defecto), 'png', 'pngcairo', 'jpg', 'gif',
4812     'eps', 'eps_color', 'epslatex', 'epslatex_standalone', 'svg',
4813     'dumb', 'dumb_file', 'pdf', 'pdfcairo', 'wxt', 'animated_gif',
4814     'multipage_pdfcairo', 'multipage_pdf', 'multipage_eps',
4815     'multipage_eps_color' y 'aquaterm'.
4816
4817     Los terminales 'screen', 'wxt' y 'aquaterm' también se pueden
4818     definir como una lista de dos elementos: el propio nombre del
4819     terminal y un número entero no negativo.  De esta forma se pueden
4820     abrir varias ventanas al mismo tiempo, cada una de ellas con su
4821     número correspondiente.  Esta modalidad no funciona en plataformas
4822     Windows.
4823
4824     Puesto que ésta es una opción global, su posición dentro de la
4825     descripción de la escena no reviste importancia.  También puede
4826     usarse como argumento de la función 'draw'.
4827
4828     pdfcairo necesita Gnuplot 4.3.  'pdf' necesita que Gnuplot haya
4829     sido compilado con la opción '--enable-pdf' y libpdf debe estar
4830     instalado
4831     (<http://www.pdflib.com/en/download/pdflib-family/pdflib-lite/>).
4832
4833     Ejemplos:
4834
4835          (%i1) load(draw)$
4836          (%i2) /* screen terminal (default) */
4837                draw2d(explicit(x^2,x,-1,1))$
4838          (%i3) /* png file */
4839                draw2d(terminal  = 'png,
4840                       explicit(x^2,x,-1,1))$
4841          (%i4) /* jpg file */
4842                draw2d(terminal   = 'jpg,
4843                       dimensions = [300,300],
4844                       explicit(x^2,x,-1,1))$
4845          (%i5) /* eps file */
4846                draw2d(file_name = "myfile",
4847                       explicit(x^2,x,-1,1),
4848                       terminal  = 'eps)$
4849          (%i6) /* pdf file */
4850                draw2d(file_name = "mypdf",
4851                       dimensions = 100*[12.0,8.0],
4852                       explicit(x^2,x,-1,1),
4853                       terminal  = 'pdf)$
4854          (%i7) /* wxwidgets window */
4855                draw2d(explicit(x^2,x,-1,1),
4856                       terminal  = 'wxt)$
4857
4858     Ventanas múltiples.
4859          (%i1) load(draw)$
4860          (%i2) draw2d(explicit(x^5,x,-2,2), terminal=[screen, 3])$
4861          (%i3) draw2d(explicit(x^2,x,-2,2), terminal=[screen, 0])$
4862
4863     Un fichero gif animado.
4864          (%i1) load(draw)$
4865          (%i2) draw(
4866                  delay     = 100,
4867                  file_name = "zzz",
4868                  terminal  = 'animated_gif,
4869                  gr2d(explicit(x^2,x,-1,1)),
4870                  gr2d(explicit(x^3,x,-1,1)),
4871                  gr2d(explicit(x^4,x,-1,1)));
4872          End of animation sequence
4873          (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
4874
4875     La opción 'delay' sólo se activa en caso de gifs animados; se
4876     ignora en cualquier otro caso.
4877
4878     Salida multipágina en formato eps.
4879          (%i1) load(draw)$
4880          (%i2) draw(
4881                  file_name = "parabol",
4882                  terminal  = multipage_eps,
4883                  dimensions = 100*[10,10],
4884                  gr2d(explicit(x^2,x,-1,1)),
4885                  gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1))) $
4886
4887     Véanse también 'file_name', 'pic_width', 'pic_height' y 'delay'.
4888
4889 -- Opción gráfica: title
4890     Valor por defecto: '""' (cadena vacía)
4891
4892     La opción 'title' almacena una cadena con el título de la escena.
4893     Por defecto, no se escribe título alguno.
4894
4895     Puesto que ésta es una opción global, su posición dentro de la
4896     descripción de la escena no reviste importancia.
4897
4898     Ejemplo:
4899
4900          (%i1) load(draw)$
4901          (%i2) draw2d(explicit(exp(u),u,-2,2),
4902                       title = "Exponential function")$
4903
4904 -- Opción gráfica: transform
4905     Valor por defecto: 'none'
4906
4907     Si 'transform' vale 'none', el espacio no sufre transformación
4908     alguna y los objetos gráficos se representan tal cual se definen.
4909     Si es necesario transformar el espacio, se debe asignar una lista a
4910     la opción 'transform'.  En caso de una escena 2D, la lista toma la
4911     forma '[f1(x,y), f2(x,y), x, y]'.  En caso de una escena 3D, la
4912     lista debe ser de la forma '[f1(x,y,z), f2(x,y,z), f3(x,y,z), x, y,
4913     z]'.
4914
4915     Los nombres de las variables definidas en las listas pueden ser
4916     diferentes de aquellas utilizadas en las definiciones de los
4917     objetos gráficos.
4918
4919     Ejemplos:
4920
4921     Rotación en 2D.
4922
4923          (%i1) load(draw)$
4924          (%i2) th : %pi / 4$
4925          (%i3) draw2d(
4926                  color = "#e245f0",
4927                  proportional_axes = 'xy,
4928                  line_width = 8,
4929                  triangle([3,2],[7,2],[5,5]),
4930                  border     = false,
4931                  fill_color = yellow,
4932                  transform  = [cos(th)*x - sin(th)*y,
4933                                sin(th)*x + cos(th)*y, x, y],
4934                  triangle([3,2],[7,2],[5,5]) )$
4935
4936     Traslación en 3D.
4937
4938          (%i1) load(draw)$
4939          (%i2) draw3d(
4940                  color     = "#a02c00",
4941                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
4942                  transform = [x+10,y+10,z+10,x,y,z],
4943                  color     = blue,
4944                  explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3) )$
4945
4946 -- Opción gráfica: transparent
4947     Valor por defecto: 'false'
4948
4949     Cuando 'transparent' vale 'false', las regiones internas de los
4950     polígonos se rellenan de acuerdo con 'fill_color'.
4951
4952     Esta opción afecta a los siguientes objetos gráficos:
4953        * 'gr2d': 'polygon', 'rectangle' y 'ellipse'.
4954
4955     Ejemplo:
4956
4957          (%i1) load(draw)$
4958          (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
4959                       transparent = true,
4960                       color       = blue,
4961                       polygon([[5,2],[9,2],[7,5]]) )$
4962
4963 -- Opción gráfica: unit_vectors
4964     Valor por defecto: 'false'
4965
4966     Cuando 'unit_vectors' vale 'true', los vectores se dibujan con
4967     módulo unidad.  Esta opción es útil para representar campos
4968     vectoriales.  Cuando 'unit_vectors' vale 'false', los vectores se
4969     dibujan con su longitud original.
4970
4971     Esta opción sólo es relevante para objetos de tipo 'vector'.
4972
4973     Ejemplo:
4974
4975          (%i1) load(draw)$
4976          (%i2) draw2d(xrange      = [-1,6],
4977                       yrange      = [-1,6],
4978                       head_length = 0.1,
4979                       vector([0,0],[5,2]),
4980                       unit_vectors = true,
4981                       color        = red,
4982                       vector([0,3],[5,2]))$
4983
4984 -- Opción gráfica: user_preamble
4985     Valor por defecto: '""' (cadena vacía)
4986
4987     Usuarios expertos en Gnuplot pueden hacer uso de esta opción para
4988     afinar el comportamiento de Gnuplot escribiendo código que será
4989     enviado justo antes de la instrucción 'plot' o 'splot'.
4990
4991     El valor dado a esta opción debe ser una cadena alfanumérica o una
4992     lista de cadenas (una por línea).
4993
4994     Puesto que ésta es una opción global, su posición dentro de la
4995     descripción de la escena no reviste importancia.
4996
4997     Ejemplo:
4998
4999     Se le indica a Gnuplot que dibuje los ejes encima de todos los
5000     demás objetos,
5001          (%i1) load(draw)$
5002          (%i2) draw2d(
5003                  xaxis =true, xaxis_type=solid,
5004                  yaxis =true, yaxis_type=solid,
5005                  user_preamble="set grid front",
5006                  region(x^2+y^2<1 ,x,-1.5,1.5,y,-1.5,1.5))$
5007
5008 -- Opción gráfica: view
5009     Valor por defecto: '[60,30]'
5010
5011     Un par de ángulos, medidos en grados, indicando la dirección del
5012     observador en una escena 3D. El primer ángulo es la rotación
5013     vertical alrededor del eje <x>, dentro del intervalo [0, 360].  El
5014     segundo es la rotación horizontal alrededor del eje <z>, dentro del
5015     intervalo [0, 360].
5016
5017     Dándole a la opción 'view' el valor 'map', la dirección del
5018     observador se sitúa perpendicularmente al plano-xy.
5019
5020     Puesto que ésta es una opción global, su posición dentro de la
5021     descripción de la escena no reviste importancia.
5022
5023     Ejemplo:
5024
5025          (%i1) load(draw)$
5026          (%i2) draw3d(view = [170, 50],
5027                       enhanced3d = true,
5028                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
5029          (%i3) draw3d(view = map,
5030                       enhanced3d = true,
5031                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
5032
5033 -- Opción gráfica: wired_surface
5034     Valor por defecto: 'false'
5035
5036     Indica si las superficies en 3D en modo 'enhanced3d' deben mostrar
5037     o no la malla que unen los puntos.
5038
5039     Puesto que ésta es una opción global, su posición dentro de la
5040     descripción de la escena no reviste importancia.
5041
5042     Ejemplo:
5043
5044          (%i1) load(draw)$
5045          (%i2) draw3d(
5046                  enhanced3d    = [sin(x),x,y],
5047                  wired_surface = true,
5048                  explicit(x^2+y^2,x,-1,1,y,-1,1)) $
5049
5050 -- Opción gráfica: x_voxel
5051     Valor por defecto: 10
5052
5053     'x_voxel' es el número de voxels en la dirección x a utilizar por
5054     el algoritmo marching cubes implementado por el objeto 'implicit'
5055     tridimensional.  También se utiliza como opción del objeto gráfico
5056     'region'.
5057
5058 -- Opción gráfica: xaxis
5059     Valor por defecto: 'false'
5060
5061     Si 'xaxis' vale 'true', se dibujará el eje <x>.
5062
5063     Puesto que ésta es una opción global, su posición dentro de la
5064     descripción de la escena no reviste importancia.
5065
5066     Ejemplo:
5067
5068          (%i1) load(draw)$
5069          (%i2) draw2d(explicit(x^3,x,-1,1),
5070                       xaxis       = true,
5071                       xaxis_color = blue)$
5072
5073     Véanse también 'xaxis_width', 'xaxis_type' y 'xaxis_color'.
5074
5075 -- Opción gráfica: xaxis_color
5076     Valor por defecto: '"black"'
5077
5078     'xaxis_color' especifica el color para el eje <x>.  Véase 'color'
5079     para ver cómo se definen los colores.
5080
5081     Puesto que ésta es una opción global, su posición dentro de la
5082     descripción de la escena no reviste importancia.
5083
5084     Ejemplo:
5085
5086          (%i1) load(draw)$
5087          (%i2) draw2d(explicit(x^3,x,-1,1),
5088                       xaxis       = true,
5089                       xaxis_color = red)$
5090
5091     Véanse también 'xaxis', 'xaxis_width' y 'xaxis_type'.
5092
5093 -- Opción gráfica: xaxis_secondary
5094     Valor por defecto: 'false'
5095
5096     Si 'xaxis_secondary' vale 'true', los valores de las funciones se
5097     pueden representar respecto del eje <x> secundario, el cual se
5098     dibuja en la parte superior de la escena.
5099
5100     Nótese que esta es una opción gráfica local que sólo afecta a
5101     objetos 2d.
5102
5103     Ejemplo:
5104
5105          (%i1) load(draw)$
5106          (%i2) draw2d(
5107                   key   = "Bottom x-axis",
5108                   explicit(x+1,x,1,2),
5109                   color = red,
5110                   key   = "Above x-axis",
5111                   xtics_secondary = true,
5112                   xaxis_secondary = true,
5113                   explicit(x^2,x,-1,1)) $
5114
5115     Véanse también 'xrange_secondary', 'xtics_secondary',
5116     'xtics_rotate_secondary', 'xtics_axis_secondary' y
5117     'xaxis_secondary'.
5118
5119 -- Opción gráfica: xaxis_type
5120     Valor por defecto: 'dots'
5121
5122     'xaxis_type' indica cómo se debe dibujar el eje <x>; valores
5123     admisibles son 'solid' y 'dots'.
5124
5125     Puesto que ésta es una opción global, su posición dentro de la
5126     descripción de la escena no reviste importancia.
5127
5128     Ejemplo:
5129
5130          (%i1) load(draw)$
5131          (%i2) draw2d(explicit(x^3,x,-1,1),
5132                       xaxis       = true,
5133                       xaxis_type  = solid)$
5134
5135     Véanse también 'xaxis', 'xaxis_width' y 'xaxis_color'.
5136
5137 -- Opción gráfica: xaxis_width
5138     Valor por defecto: 1
5139
5140     'xaxis_width' es el ancho del eje <x>.  Su valor debe ser un número
5141     positivo.
5142
5143     Puesto que ésta es una opción global, su posición dentro de la
5144     descripción de la escena no reviste importancia.
5145
5146     Ejemplo:
5147
5148          (%i1) load(draw)$
5149          (%i2) draw2d(explicit(x^3,x,-1,1),
5150                       xaxis       = true,
5151                       xaxis_width = 3)$
5152
5153     Véanse también 'xaxis', 'xaxis_type' y 'xaxis_color'.
5154
5155 -- Opción gráfica: xlabel
5156     Valor por defecto: '""'
5157
5158     La opción 'xlabel' almacena una cadena con la etiqueta del eje <x>.
5159     Por defecto, el eje tiene etiqueta '"x"'.
5160
5161     Puesto que ésta es una opción global, su posición dentro de la
5162     descripción de la escena no reviste importancia.
5163
5164     Ejemplo:
5165
5166          (%i1) load(draw)$
5167          (%i2) draw2d(xlabel = "Time",
5168                       explicit(exp(u),u,-2,2),
5169                       ylabel = "Population")$
5170
5171     Véanse también 'xlabel_secondary', 'ylabel', 'ylabel_secondary' y
5172     'zlabel'.
5173
5174 -- Opción gráfica: xlabel_secondary
5175     Valor por defecto: '""' (cadena vacía)
5176
5177     La opción 'xlabel_secondary' almacena una cadena con la etiqueta
5178     del eje <x> secundario.  Por defecto, el eje no tiene etiqueta.
5179
5180     Puesto que ésta es una opción global, su posición dentro de la
5181     descripción de la escena no reviste importancia.
5182
5183     Ejemplo:
5184
5185          (%i1) load(draw)$
5186          (%i2) draw2d(
5187                   xaxis_secondary=true,yaxis_secondary=true,
5188                   xtics_secondary=true,ytics_secondary=true,
5189                   xlabel_secondary="t[s]",
5190                   ylabel_secondary="U[V]",
5191                   explicit(sin(t),t,0,10) )$
5192
5193     Véanse también 'xlabel', 'ylabel', 'ylabel_secondary' y 'zlabel'.
5194
5195 -- Opción gráfica: xrange
5196     Valor por defecto: 'auto'
5197
5198     Cuando 'xrange' vale 'auto', el rango de la coordenada <x> se
5199     calcula de forma automática.
5200
5201     Si el usuario quiere especificar un intervalo para <x>, éste debe
5202     expresarse como una lista de Maxima, como en 'xrange=[-2, 3]'.
5203
5204     Puesto que ésta es una opción global, su posición dentro de la
5205     descripción de la escena no reviste importancia.
5206
5207     Ejemplo:
5208
5209          (%i1) load(draw)$
5210          (%i2) draw2d(xrange = [-3,5],
5211                       explicit(x^2,x,-1,1))$
5212
5213     Véanse también 'yrange' y 'zrange'.
5214
5215 -- Opción gráfica: xrange_secondary
5216     Valor por defecto: 'auto'
5217
5218     Cuando 'xrange_secondary' vale 'auto', el rango del eje <x>
5219     secundario se calcula de forma automática.
5220
5221     Si el usuario quiere especificar un intervalo para el eje <x>
5222     secundario, éste debe expresarse como una lista de Maxima, como en
5223     'xrange_secondary=[-2, 3]'.
5224
5225     Puesto que ésta es una opción global, su posición dentro de la
5226     descripción de la escena no reviste importancia.
5227
5228     Véanse también 'xrange', 'yrange', 'zrange' y 'yrange_secondary'.
5229
5230 -- Opción gráfica: xtics
5231     Valor por defecto: 'true'
5232
5233     Esta opción gráfica controla la forma en la que se dibujarán las
5234     marcas del eje <x>.
5235
5236        * Cuando a 'xtics' se le da el valor <true>, las marcas se
5237          dibujarán de forma automática.
5238
5239        * Cuando a 'xtics' se le da el valor <false>, no habrá marcas en
5240          los ejes.
5241
5242        * Cuando a 'xtics' se le da un valor numérico positivo, se
5243          interpretará como la distancia entre dos marcas consecutivas.
5244
5245        * Cuando a 'xtics' se le da una lista de longitud tres de la
5246          forma '[start,incr,end]', las marcas se dibujarán desde
5247          'start' hasta 'end' a intervalos de longitud 'incr'.
5248
5249        * Cuando a 'xtics' se le da un conjunto de números de la forma
5250          '{n1, n2, ...}', las marcas se dibujarán exactamente en los
5251          valores 'n1', 'n2', ...
5252
5253        * Cuando a 'xtics' se le da un conjunto de pares de la forma
5254          '{["label1", n1], ["label2", n2], ...}', las marcas
5255          correspondientes a los valores 'n1', 'n2', ...  se etiquetarán
5256          con '"label1"', '"label2"', ..., respectivamente.
5257
5258     Puesto que ésta es una opción global, su posición dentro de la
5259     descripción de la escena no reviste importancia.
5260
5261     Ejemplos:
5262
5263     Marcas desactivadas.
5264          (%i1) load(draw)$
5265          (%i2) draw2d(xtics = 'false,
5266                       explicit(x^3,x,-1,1)  )$
5267
5268     Marcas cada 1/4 unidades.
5269          (%i1) load(draw)$
5270          (%i2) draw2d(xtics = 1/4,
5271                       explicit(x^3,x,-1,1)  )$
5272
5273     Marcas desde -3/4 hasta 3/4 en saltos de 1/8.
5274          (%i1) load(draw)$
5275          (%i2) draw2d(xtics = [-3/4,1/8,3/4],
5276                       explicit(x^3,x,-1,1)  )$
5277
5278     Marcas en los puntos -1/2, -1/4 y 3/4.
5279          (%i1) load(draw)$
5280          (%i2) draw2d(xtics = {-1/2,-1/4,3/4},
5281                       explicit(x^3,x,-1,1)  )$
5282
5283     Marcas etiquetadas.
5284          (%i1) load(draw)$
5285          (%i2) draw2d(xtics = {["High",0.75],["Medium",0],["Low",-0.75]},
5286                       explicit(x^3,x,-1,1)  )$
5287
5288 -- Opción gráfica: xtics_axis
5289     Valor por defecto: 'false'
5290
5291     Si 'xtics_axis' vale 'true', las marcas y sus etiquetas se dibujan
5292     sobre el propio eje <x>, si vale 'false' las marcas se colocan a lo
5293     largo del borde del gráfico.
5294
5295     Puesto que ésta es una opción global, su posición dentro de la
5296     descripción de la escena no reviste importancia.
5297
5298 -- Opción gráfica: xtics_rotate
5299     Valor por defecto: 'false'
5300
5301     Si 'xtics_rotate' vale 'true', las marcas del eje <x> se giran 90
5302     grados.
5303
5304     Puesto que ésta es una opción global, su posición dentro de la
5305     descripción de la escena no reviste importancia.
5306
5307 -- Opción gráfica: xtics_rotate_secondary
5308     Valor por defecto: 'false'
5309
5310     Si 'xtics_rotate_secondary' vale 'true', las marcas del eje <x>
5311     secundario se giran 90 grados.
5312
5313     Puesto que ésta es una opción global, su posición dentro de la
5314     descripción de la escena no reviste importancia.
5315
5316 -- Opción gráfica: xtics_secondary
5317     Valor por defecto: 'auto'
5318
5319     Esta opción gráfica controla la forma en la que se dibujarán las
5320     marcas del eje <x> secundario.
5321
5322     Véase 'xtics' para una descripción completa.
5323
5324 -- Opción gráfica: xtics_secondary_axis
5325     Valor por defecto: 'false'
5326
5327     Si 'xtics_secondary_axis' vale 'true', las marcas y sus etiquetas
5328     se dibujan sobre el propio eje <x> secundario, si vale 'false' las
5329     marcas se colocan a lo largo del borde del gráfico.
5330
5331     Puesto que ésta es una opción global, su posición dentro de la
5332     descripción de la escena no reviste importancia.
5333
5334 -- Opción gráfica: xu_grid
5335     Valor por defecto: 30
5336
5337     'xu_grid' es el número de coordenadas de la primera variable ('x'
5338     en superficies explcítas y 'u' en las paramétricas) para formar la
5339     rejilla de puntos muestrales.
5340
5341     Esta opción afecta a los siguientes objetos gráficos:
5342        * 'gr3d': 'explicit' y 'parametric_surface'.
5343
5344     Ejemplo:
5345
5346          (%i1) load(draw)$
5347          (%i2) draw3d(xu_grid = 10,
5348                       yv_grid = 50,
5349                       explicit(x^2+y^2,x,-3,3,y,-3,3) )$
5350
5351     Véase también 'yv_grid'.
5352
5353 -- Opción gráfica: xy_file
5354     Valor por defecto: '""' (cadena vacía)
5355
5356     'xy_file' es el nombre del fichero donde se almacenarán las
5357     coordenadas después de hacer clic con el botón del ratón en un
5358     punto de la imagen y pulsado la tecla 'x'.  Por defecto, las
5359     coordenadas no se almacenan.
5360
5361     Puesto que ésta es una opción global, su posición dentro de la
5362     descripción de la escena no reviste importancia.
5363
5364 -- Graphic option: xyplane
5365     Valor por defecto: 'false'
5366
5367     Coloca el plano-xy en escenas 3D. Si 'xyplane' vale 'false', el
5368     plano-xy se coloca automáticamente; en cambio, si toma un valor
5369     real, el plano-xy intersectará con el eje <z> a ese nivel.  Esta
5370     opción no tiene efecto alguno en escenas 2D.
5371
5372     Puesto que ésta es una opción global, su posición dentro de la
5373     descripción de la escena no reviste importancia.
5374
5375     Ejemplo:
5376
5377          (%i1) load(draw)$
5378          (%i2) draw3d(xyplane = %e-2,
5379                       explicit(x^2+y^2,x,-1,1,y,-1,1))$
5380
5381 -- Opción gráfica: y_voxel
5382     Valor por defecto: 10
5383
5384     'y_voxel' es el número de voxels en la dirección y a utilizar por
5385     el algoritmo marching cubes implementado por el objeto 'implicit'
5386     tridimensional.  También se utiliza como opción del objeto gráfico
5387     'region'.
5388
5389 -- Opción gráfica: yaxis
5390     Valor por defecto: 'false'
5391
5392     Si 'yaxis' vale 'true', se dibujará el eje <y>.
5393
5394     Puesto que ésta es una opción global, su posición dentro de la
5395     descripción de la escena no reviste importancia.
5396
5397     Ejemplo:
5398
5399          (%i1) load(draw)$
5400          (%i2) draw2d(explicit(x^3,x,-1,1),
5401                       yaxis       = true,
5402                       yaxis_color = blue)$
5403
5404     Véanse también 'yaxis_width', 'yaxis_type' y 'yaxis_color'.
5405
5406 -- Opción gráfica: yaxis_color
5407     Valor por defecto: '"black"'
5408
5409     'yaxis_color' especifica el color para el eje <y>.  Véase 'color'
5410     para ver cómo se definen los colores.
5411
5412     Puesto que ésta es una opción global, su posición dentro de la
5413     descripción de la escena no reviste importancia.
5414
5415     Ejemplo:
5416
5417          (%i1) load(draw)$
5418          (%i2) draw2d(explicit(x^3,x,-1,1),
5419                       yaxis       = true,
5420                       yaxis_color = red)$
5421
5422     Véanse también 'yaxis', 'yaxis_width' y 'yaxis_type'.
5423
5424 -- Opción gráfica: yaxis_secondary
5425     Valor por defecto: 'false'
5426
5427     Si 'yaxis_secondary' vale 'true', los valores de las funciones se
5428     pueden representar respecto del eje <y> secundario, el cual se
5429     dibuja al lado derecho de la escena.
5430
5431     Nótese que esta es una opción gráfica local que sólo afecta a
5432     objetos 2d.
5433
5434     Ejemplo:
5435
5436          (%i1) load(draw)$
5437          (%i2) draw2d(
5438                   explicit(sin(x),x,0,10),
5439                   yaxis_secondary = true,
5440                   ytics_secondary = true,
5441                   color = blue,
5442                   explicit(100*sin(x+0.1)+2,x,0,10));
5443
5444     Véanse también 'yrange_secondary', 'ytics_secondary',
5445     'ytics_rotate_secondary' y 'ytics_axis_secondary'.
5446
5447 -- Opción gráfica: yaxis_type
5448     Valor por defecto: 'dots'
5449
5450     'yaxis_type' indica cómo se debe dibujar el eje <y>; valores
5451     admisibles son 'solid' y 'dots'.
5452
5453     Puesto que ésta es una opción global, su posición dentro de la
5454     descripción de la escena no reviste importancia.
5455
5456     Ejemplo:
5457
5458          (%i1) load(draw)$
5459          (%i2) draw2d(explicit(x^3,x,-1,1),
5460                       yaxis       = true,
5461                       yaxis_type  = solid)$
5462
5463     Véanse también 'yaxis', 'yaxis_width' y 'yaxis_color'.
5464
5465 -- Opción gráfica: yaxis_width
5466     Valor por defecto: 1
5467
5468     'yaxis_width' es el ancho del eje <y>.  Su valor debe ser un número
5469     positivo.
5470
5471     Puesto que ésta es una opción global, su posición dentro de la
5472     descripción de la escena no reviste importancia.
5473
5474     Ejemplo:
5475
5476          (%i1) load(draw)$
5477          (%i2) draw2d(explicit(x^3,x,-1,1),
5478                       yaxis       = true,
5479                       yaxis_width = 3)$
5480
5481     Véanse también 'yaxis', 'yaxis_type' y 'yaxis_color'.
5482
5483 -- Opción gráfica: ylabel
5484     Valor por defecto: '""'
5485
5486     La opción 'ylabel' almacena una cadena con la etiqueta del eje <y>.
5487     Por defecto, el eje tiene etiqueta '"y"'.
5488
5489     Puesto que ésta es una opción global, su posición dentro de la
5490     descripción de la escena no reviste importancia.
5491
5492     Ejemplo:
5493
5494          (%i1) load(draw)$
5495          (%i2) draw2d(xlabel = "Time",
5496                       ylabel = "Population",
5497                       explicit(exp(u),u,-2,2) )$
5498
5499     Véanse también 'xlabel', 'xlabel_secondary', 'ylabel_secondary' y
5500     'zlabel'.
5501
5502 -- Opción gráfica: ylabel_secondary
5503     Valor por defecto: '""' (cadena vacía)
5504
5505     La opción 'ylabel_secondary' almacena una cadena con la etiqueta
5506     del eje <y> secundario.  Por defecto, el eje no tiene etiqueta.
5507
5508     Puesto que ésta es una opción global, su posición dentro de la
5509     descripción de la escena no reviste importancia.
5510
5511     Ejemplo:
5512
5513          (%i1) load(draw)$
5514          (%i2) draw2d(
5515                  key="current",
5516                  xlabel="t[s]",
5517                  ylabel="I[A]",ylabel_secondary="P[W]",
5518                  explicit(sin(t),t,0,10),
5519                  yaxis_secondary=true,
5520                  ytics_secondary=true,
5521                  color=red,key="Power",
5522                  explicit((sin(t))^2,t,0,10)
5523              )$
5524
5525     Véanse también 'xlabel', 'xlabel_secondary', 'ylabel' and 'zlabel'.
5526
5527 -- Opción gráfica: yrange
5528     Valor por defecto: 'auto'
5529
5530     Cuando 'yrange' vale 'auto', el rango de la coordenada <y> se
5531     calcula de forma automática.
5532
5533     Si el usuario quiere especificar un intervalo para <y>, éste debe
5534     expresarse como una lista de Maxima, como en 'yrange=[-2, 3]'.
5535
5536     Puesto que ésta es una opción global, su posición dentro de la
5537     descripción de la escena no reviste importancia.
5538
5539     Ejemplo:
5540
5541          (%i1) load(draw)$
5542          (%i2) draw2d(yrange = [-2,3],
5543                       explicit(x^2,x,-1,1),
5544                       xrange = [-3,3])$
5545
5546     Véanse también 'xrange' y 'zrange'.
5547
5548 -- Opción gráfica: yrange_secondary
5549     Valor por defecto: 'auto'
5550
5551     Cuando 'yrange_secondary' vale 'auto', el rango del eje <y>
5552     secundario se calcula de forma automática.
5553
5554     Si el usuario quiere especificar un intervalo para el eje <y>
5555     secundario, éste debe expresarse como una lista de Maxima, como en
5556     'yrange_secondary=[-2, 3]'.
5557
5558     Puesto que ésta es una opción global, su posición dentro de la
5559     descripción de la escena no reviste importancia.
5560
5561     Ejemplo:
5562
5563          (%i1) load(draw)$
5564          (%i2) draw2d(
5565                   explicit(sin(x),x,0,10),
5566                   yaxis_secondary = true,
5567                   ytics_secondary = true,
5568                   yrange = [-3, 3],
5569                   yrange_secondary = [-20, 20],
5570                   color = blue,
5571                   explicit(100*sin(x+0.1)+2,x,0,10)) $
5572
5573     Véanse también 'xrange', 'yrange' y 'zrange'.
5574
5575 -- Opción gráfica: ytics
5576     Valor por defecto: 'true'
5577
5578     Esta opción gráfica controla la forma en la que se dibujarán las
5579     marcas del eje <y>.
5580
5581     Véase 'xtics' para una descripción completa.
5582
5583 -- Opción gráfica: ytics_axis
5584     Valor por defecto: 'false'
5585
5586     Si 'ytics_axis' vale 'true', las marcas y sus etiquetas se dibujan
5587     sobre el propio eje <y>, si vale 'false' las marcas se colocan a lo
5588     largo del borde del gráfico.
5589
5590     Puesto que ésta es una opción global, su posición dentro de la
5591     descripción de la escena no reviste importancia.
5592
5593 -- Opción gráfica: ytics_rotate
5594     Valor por defecto: 'false'
5595
5596     Si 'ytics_rotate' vale 'true', las marcas del eje <y> se giran 90
5597     grados.
5598
5599     Puesto que ésta es una opción global, su posición dentro de la
5600     descripción de la escena no reviste importancia.
5601
5602 -- Opción gráfica: ytics_rotate_secondary
5603     Valor por defecto: 'false'
5604
5605     Si 'ytics_rotate_secondary' vale 'true', las marcas del eje <y>
5606     secundario se giran 90 grados.
5607
5608     Puesto que ésta es una opción global, su posición dentro de la
5609     descripción de la escena no reviste importancia.
5610
5611 -- Opción gráfica: ytics_secondary
5612     Valor por defecto: 'auto'
5613
5614     Esta opción gráfica controla la forma en la que se dibujarán las
5615     marcas del eje <y> secundario.
5616
5617     Véase 'xtics' para una descripción completa.
5618
5619 -- Opción gráfica: ytics_secondary_axis
5620     Valor por defecto: 'false'
5621
5622     Si 'ytics_secondary_axis' vale 'true', las marcas y sus etiquetas
5623     se dibujan sobre el propio eje <y> secundario, si vale 'false' las
5624     marcas se colocan a lo largo del borde del gráfico.
5625
5626     Puesto que ésta es una opción global, su posición dentro de la
5627     descripción de la escena no reviste importancia.
5628
5629 -- Opción gráfica: yv_grid
5630     Valor por defecto: 30
5631
5632     'yv_grid' es el número de coordenadas de la segunda variable ('y'
5633     en superficies explcítas y 'v' en las paramétricas) para formar la
5634     rejilla de puntos muestrales.
5635
5636     Esta opción afecta a los siguientes objetos gráficos:
5637        * 'gr3d': 'explicit' y 'parametric_surface'.
5638
5639     Ejemplo:
5640
5641          (%i1) load(draw)$
5642          (%i2) draw3d(xu_grid = 10,
5643                       yv_grid = 50,
5644                       explicit(x^2+y^2,x,-3,3,y,-3,3) )$
5645
5646     Véase también 'xu_grid'.
5647
5648 -- Opción gráfica: z_voxel
5649     Valor por defecto: 10
5650
5651     'z_voxel' es el número de voxels en la dirección z a utilizar por
5652     el algoritmo marching cubes implementado por el objeto 'implicit'
5653     tridimensional.
5654
5655 -- Opción gráfica: zaxis
5656     Valor por defecto: 'false'
5657
5658     Si 'zaxis' vale 'true', se dibujará el eje <z> en escenas 3D. Esta
5659     opción no tiene efecto alguno en escenas 2D.
5660
5661     Puesto que ésta es una opción global, su posición dentro de la
5662     descripción de la escena no reviste importancia.
5663
5664     Ejemplo:
5665
5666          (%i1) load(draw)$
5667          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
5668                       zaxis       = true,
5669                       zaxis_type  = solid,
5670                       zaxis_color = blue)$
5671
5672     Véanse también 'zaxis_width', 'zaxis_type' y 'zaxis_color'.
5673
5674 -- Opción gráfica: zaxis_color
5675     Valor por defecto: '"black"'
5676
5677     'zaxis_color' especifica el color para el eje <z>.  Véase 'color'
5678     para ver cómo se definen los colores.  Esta opción no tiene efecto
5679     alguno en escenas 2D.
5680
5681     Puesto que ésta es una opción global, su posición dentro de la
5682     descripción de la escena no reviste importancia.
5683
5684     Ejemplo:
5685
5686          (%i1) load(draw)$
5687          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
5688                       zaxis       = true,
5689                       zaxis_type  = solid,
5690                       zaxis_color = red)$
5691
5692     Véanse también 'zaxis', 'zaxis_width' y 'zaxis_type'.
5693
5694 -- Opción gráfica: zaxis_type
5695     Valor por defecto: 'dots'
5696
5697     'zaxis_type' indica cómo se debe dibujar el eje <z>; valores
5698     admisibles son 'solid' y 'dots'.  Esta opción no tiene efecto
5699     alguno en escenas 2D.
5700
5701     Puesto que ésta es una opción global, su posición dentro de la
5702     descripción de la escena no reviste importancia.
5703
5704     Ejemplo:
5705
5706          (%i1) load(draw)$
5707          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
5708                       zaxis       = true,
5709                       zaxis_type  = solid)$
5710
5711     Véanse también 'zaxis', 'zaxis_width' y 'zaxis_color'.
5712
5713 -- Opción gráfica: zaxis_width
5714     Valor por defecto: 1
5715
5716     'zaxis_width' es el ancho del eje <z>.  Su valor debe ser un número
5717     positivo.  Esta opción no tiene efecto alguno en escenas 2D.
5718
5719     Puesto que ésta es una opción global, su posición dentro de la
5720     descripción de la escena no reviste importancia.
5721
5722     Ejemplo:
5723
5724          (%i1) load(draw)$
5725          (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
5726                       zaxis       = true,
5727                       zaxis_type  = solid,
5728                       zaxis_width = 3)$
5729
5730     Véanse también 'zaxis', 'zaxis_type' y 'zaxis_color'.
5731
5732 -- Opción gráfica: zlabel
5733     Valor por defecto: '""'
5734
5735     La opción 'zlabel' almacena una cadena con la etiqueta del eje <z>.
5736     Por defecto, el eje tiene etiqueta '"z"'.
5737
5738     Puesto que ésta es una opción global, su posición dentro de la
5739     descripción de la escena no reviste importancia.
5740
5741     Ejemplo:
5742
5743          (%i1) load(draw)$
5744          (%i2) draw3d(zlabel = "Z variable",
5745                       ylabel = "Y variable",
5746                       explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
5747                       xlabel = "X variable" )$
5748
5749     Véanse también 'xlabel' y 'ylabel'.
5750
5751 -- Opción gráfica: zrange
5752     Valor por defecto: 'auto'
5753
5754     Cuando 'zrange' vale 'auto', el rango de la coordenada <z> se
5755     calcula de forma automática.
5756
5757     Si el usuario quiere especificar un intervalo para <z>, éste debe
5758     expresarse como una lista de Maxima, como en 'zrange=[-2, 3]'.
5759
5760     Puesto que ésta es una opción global, su posición dentro de la
5761     descripción de la escena no reviste importancia.
5762
5763     Ejemplo:
5764
5765          (%i1) load(draw)$
5766          (%i2) draw3d(yrange = [-3,3],
5767                       zrange = [-2,5],
5768                       explicit(x^2+y^2,x,-1,1,y,-1,1),
5769                       xrange = [-3,3])$
5770
5771     Véanse también 'xrange' y 'yrange'.
5772
5773 -- Opción gráfica: ztics
5774     Valor por defecto: 'true'
5775
5776     Esta opción gráfica controla la forma en la que se dibujarán las
5777     marcas del eje <z>.
5778
5779     Véase 'xtics' para una descripción completa.
5780
5781 -- Opción gráfica: ztics_axis
5782     Valor por defecto: 'false'
5783
5784     Si 'ztics_axis' vale 'true', las marcas y sus etiquetas se dibujan
5785     sobre el propio eje <z>, si vale 'false' las marcas se colocan a lo
5786     largo del borde del gráfico.
5787
5788     Puesto que ésta es una opción global, su posición dentro de la
5789     descripción de la escena no reviste importancia.
5790
5791 -- Opción gráfica: ztics_rotate
5792     Valor por defecto: 'false'
5793
5794     Si 'ztics_rotate' vale 'true', las marcas del eje <z> se giran 90
5795     grados.
5796
5797     Puesto que ésta es una opción global, su posición dentro de la
5798     descripción de la escena no reviste importancia.
5799
580047.2.4 Objetos gráficos
5801-----------------------
5802
5803 -- Objeto gráfico: bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>, ...])
5804     Dibuja barras verticales en 2D.
5805
5806     2D
5807
5808     'bars ([<x1>,<h1>,<w1>], [<x2>,<h2>,<w2>, ...])' dibuja barras
5809     centradas en los valores <x1>, <x2>, ...  de alturas <h1>, <h2>,
5810     ...  y anchos <w1>, <w2>, ...
5811
5812     Este objeto se ve afectado por las siguientes opciones gráficas:
5813     'key', 'fill_color', 'fill_density' y 'line_width'.
5814
5815     Ejemplo:
5816
5817          (%i1) load(draw)$
5818          (%i2) draw2d(
5819                 key          = "Grupo A",
5820                 fill_color   = blue,
5821                 fill_density = 0.2,
5822                 bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
5823                 key          = "Grupo B",
5824                 fill_color   = red,
5825                 fill_density = 0.6,
5826                 line_width   = 4,
5827                 bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
5828                 xaxis = true);
5829
5830 -- Objeto gráfico: cylindrical
5831          (<radius>,<z>,<minz>,<maxz>,<azi>,<minazi>,<maxazi>)
5832     Dibuja funciones 3D definidas en coordenadas cilíndricas.
5833
5834     3D
5835
5836     'cylindrical (<radius>,<z>,<minz>,<maxz>,<azi>,<minazi>,<maxazi>)'
5837     dibuja la función '<radius>(<z>,<azi>)' definida en coordenadas
5838     cilíndricas, con la variable <z> tomando valores desde <minz> hasta
5839     <maxz> y el azimut <azi> tomando valores desde <minazi> hasta
5840     <maxazi>.
5841
5842     Este objeto se ve afectado por las siguientes opciones gráficas:
5843     'xu_grid', 'yv_grid', 'line_type', 'key', 'wired_surface',
5844     'enhanced3d' y 'color'.
5845
5846     Ejemplo:
5847
5848          (%i1) load(draw)$
5849          (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
5850
5851 -- Objeto gráfico: elevation_grid (<mat>,<x0>,<y0>,<width>,<height>)
5852     Dibuja la matriz <mat> en 3D. Los valores <z> se toman de <mat>,
5853     las abscisas van desde <x0> hasta <x0> + <width> y las ordenadas
5854     desde <y0> hasta <y0> + <height>.  El elemento a(1,1) se proyecta
5855     sobre el punto (x0,y0+height), a(1,n) sobre (x0+width,y0+height),
5856     a(m,1) sobre (x0,y0) y a(m,n) sobre (x0+width,y0).
5857
5858     Este objeto se ve afectado por las siguientes opciones gráficas:
5859     'line_type', 'line_width', 'key', 'wired_surface', 'enhanced3d' y
5860     'color'.
5861
5862     En versiones antiguas de Maxima, 'elevation_grid' se llamaba
5863     'mesh'.  Véase también 'mesh'.
5864
5865     Ejemplo:
5866
5867          (%i1) load(draw)$
5868          (%i2) m: apply(
5869                      matrix,
5870                      makelist(makelist(random(10.0),k,1,30),i,1,20)) $
5871          (%i3) draw3d(
5872                   color = blue,
5873                   elevation_grid(m,0,0,3,2),
5874                   xlabel = "x",
5875                   ylabel = "y",
5876                   surface_hide = true);
5877
5878 -- Objeto gráfico: ellipse (<xc>, <yc>, <a>, <b>, <ang1>, <ang2>)
5879     Dibuja elipses y círculos en 2D.
5880
5881     2D
5882
5883     'ellipse (<xc>, <yc>, <a>, <b>, <ang1>, <ang2>)' dibuja una elipse
5884     de centro '[<xc>, <yc>]' con semiejes horizontal y vertical <a> y
5885     <b>, respectivamente, comenzando en el ángulo <ang1> y trazando un
5886     arco de amplitud igual al ángulo <ang2>.
5887
5888     Este objeto se ve afectado por las siguientes opciones gráficas:
5889     'nticks', 'transparent', 'fill_color', 'border', 'line_width',
5890     'line_type', 'key' y 'color'.
5891
5892     Ejemplo:
5893
5894          (%i1) load(draw)$
5895          (%i2) draw2d(transparent = false,
5896                       fill_color  = red,
5897                       color       = gray30,
5898                       transparent = false,
5899                       line_width  = 5,
5900                       ellipse(0,6,3,2,270,-270),
5901                       /* center (x,y), a, b, start & end in degrees */
5902                       transparent = true,
5903                       color       = blue,
5904                       line_width  = 3,
5905                       ellipse(2.5,6,2,3,30,-90),
5906                       xrange      = [-3,6],
5907                       yrange      = [2,9] )$
5908
5909 -- Objeto gráfico: errors ([<x1>,<x2>,...], [<y1>,<y2>,...])
5910     Dibuja puntos con barras de error asociadas horizontales,
5911     verticales o de ambos tipos, según sea el valor de la opción
5912     'error_type'.
5913
5914     2D
5915
5916     Si 'error_type=x', los argumentos a 'errors' deben ser de la forma
5917     '[x,y,xdelta]' o '[x,y,xlow,xhigh]'.  Si 'error_type=y', los
5918     argumentos deben ser del tipo '[x,y,ydelta]' o '[x,y,ylow,yhigh]'.
5919     Si 'error_type=xy' o 'error_type=boxes', los argumentos deben ser
5920     de la forma '[x,y,xdelta,ydelta]' o '[x,y,xlow,xhigh,ylow,yhigh]'.
5921
5922     Véase también 'error_type'.
5923
5924     Este objeto se ve afectado por las siguientes opciones gráficas:
5925     'error_type', 'points_joined', 'line_width', 'key', 'line_type',
5926     'color', 'fill_density', 'xaxis_secondary' y 'yaxis_secondary'.
5927
5928     La opción 'fill_density' solo es relevante cuando
5929     'error_type=boxes'.
5930
5931     Ejemplos:
5932
5933     Barras de error horizontales.
5934
5935          (%i1) load(draw)$
5936          (%i2) draw2d(
5937                  error_type = y,
5938                  errors([[1,2,1], [3,5,3], [10,3,1], [17,6,2]]))$
5939
5940     Barras de error horizontales y verticales.
5941
5942          (%i1) load(draw)$
5943          (%i2) draw2d(
5944                  error_type = xy,
5945                  points_joined = true,
5946                  color = blue,
5947                  errors([[1,2,1,2], [3,5,2,1], [10,3,1,1], [17,6,1/2,2]]));
5948
5949 -- Objeto gráfico: explicit (<fcn>,<var>,<minval>,<maxval>)
5950 -- Objeto gráfico: explicit
5951          (<fcn>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)
5952     Dibuja funciones explícitas en 2D y 3D.
5953
5954     2D
5955
5956     'explicit (<fcn>,<var>,<minval>,<maxval>)' dibuja la función
5957     explícita <fcn>, con la variable <var> tomando valores desde
5958     <minval> hasta <maxval>.
5959
5960     Este objeto se ve afectado por las siguientes opciones gráficas:
5961     'nticks', 'adapt_depth', 'draw_realpart', 'line_width',
5962     'line_type', 'key', 'filled_func', 'fill_color' y 'color'.
5963
5964     Ejemplo:
5965
5966          (%i1) load(draw)$
5967          (%i2) draw2d(line_width = 3,
5968                       color      = blue,
5969                       explicit(x^2,x,-3,3) )$
5970          (%i3) draw2d(fill_color  = brown,
5971                       filled_func = true,
5972                       explicit(x^2,x,-3,3) )$
5973
5974     3D
5975
5976     'explicit
5977     (<fcn>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)'
5978     dibuja la función explícita <fcn>, con la variable 'var1' tomando
5979     valores desde <minval1> hasta <maxval1> y la variable <var2>
5980     tomando valores desde <minval2> hasta <maxval2>.
5981
5982     Este objeto se ve afectado por las siguientes opciones gráficas:
5983     'draw_realpart', 'xu_grid', 'yv_grid', 'line_type', 'line_width',
5984     'key', 'wired_surface', 'enhanced3d' y 'color'.
5985
5986     Ejemplo:
5987
5988          (%i1) load(draw)$
5989          (%i2) draw3d(key   = "Gauss",
5990                       color = "#a02c00",
5991                       explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
5992                       yv_grid     = 10,
5993                       color = blue,
5994                       key   = "Plane",
5995                       explicit(x+y,x,-5,5,y,-5,5),
5996                       surface_hide = true)$
5997
5998     Véase también 'filled_func' para el relleno de curvas.
5999
6000 -- Objeto gráfico: image (<im>,<x0>,<y0>,<width>,<height>)
6001     Reproduce una imagen en 2D.
6002
6003     2D
6004
6005     'image (<im>,<x0>,<y0>,<width>,<height>)': dibuja la imagen <im> en
6006     la región rectangular desde el vértice '(<x0>,<y0>)' hasta el
6007     '(x0+<width>,y0+<height>)' del plano real.  El argumento <im> debe
6008     ser una matriz de números reales, una matriz de vectores de
6009     longitud tres o un objeto de tipo 'picture'.
6010
6011     Si <im> es una matriz de números reales, los valores de los píxeles
6012     se interpretan según indique la opción gráfica 'palette', que es un
6013     vector de longitud tres con sus componentes tomando valores enteros
6014     en el rango desde -36 a +36; cada valor es un índice para
6015     seleccionar una fórmula que transforma los niveles numéricos en las
6016     componentes cromáticas rojo, verde y azul:
6017           0: 0               1: 0.5           2: 1
6018           3: x               4: x^2           5: x^3
6019           6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
6020           9: sin(90x)       10: cos(90x)     11: |x-0.5|
6021          12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
6022          15: sin(360x)      16: cos(360x)    17: |sin(360x)|
6023          18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
6024          21: 3x             22: 3x-1         23: 3x-2
6025          24: |3x-1|         25: |3x-2|       26: (3x-1)/2
6026          27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
6027          30: x/0.32-0.78125 31: 2*x-0.84
6028          32: 4x;1;-2x+1.84;x/0.08-11.5
6029          33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
6030          36: 2*x - 1
6031     los números negativos se interpretan como colores invertidos de las
6032     componentes cromáticas.
6033
6034     'palette = gray' y 'palette = color' son atajos para 'palette =
6035     [3,3,3]' y 'palette = [7,5,15]', respectivamente.
6036
6037     Si <im> es una matriz de vectores de longitud tres, éstos se
6038     interpretarán como las componentes cromáticas rojo, verde y azul.
6039
6040     Ejemplos:
6041
6042     Si <im> es una matriz de números reales, los valores de los píxeles
6043     se interpretan según indique la opción gráfica 'palette'.
6044          (%i1) load(draw)$
6045          (%i2) im: apply(
6046                     'matrix,
6047                      makelist(makelist(random(200),i,1,30),i,1,30))$
6048          (%i3) /* palette = color, default */
6049                draw2d(image(im,0,0,30,30))$
6050          (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
6051          (%i5) draw2d(palette = [15,20,-4],
6052                       colorbox=false,
6053                       image(im,0,0,30,30))$
6054
6055     Véase también 'colorbox'.
6056
6057     Si <im> es una matriz de vectores de longitud tres, éstos se
6058     interpretarán como las componentes cromáticas rojo, verde y azul.
6059          (%i1) load(draw)$
6060          (%i2) im: apply(
6061                      'matrix,
6062                       makelist(
6063                         makelist([random(300),
6064                                   random(300),
6065                                   random(300)],i,1,30),i,1,30))$
6066          (%i3) draw2d(image(im,0,0,30,30))$
6067
6068     El paquete 'draw' carga automáticamente el paquete 'picture'.  En
6069     este ejemplo, una imagen de niveles se define a mano,
6070     reproduciéndola a continuación.
6071          (%i1) load(draw)$
6072          (%i2) im: make_level_picture([45,87,2,134,204,16],3,2);
6073          (%o2)       picture(level, 3, 2, {Array:  #(45 87 2 134 204 16)})
6074          (%i3) /* default color palette */
6075                draw2d(image(im,0,0,30,30))$
6076          (%i4) /* gray palette */
6077                draw2d(palette = gray,
6078                       image(im,0,0,30,30))$
6079
6080     Se lee un fichero xpm y se reproduce.
6081          (%i1) load(draw)$
6082          (%i2) im: read_xpm("myfile.xpm")$
6083          (%i3) draw2d(image(im,0,0,10,7))$
6084
6085     Véanse también 'make_level_picture', 'make_rgb_picture' y
6086     'read_xpm'.
6087
6088     En <http://www.telefonica.net/web2/biomates/maxima/gpdraw/image> se
6089     encuentran ejemplos más elaborados.
6090
6091 -- Objeto gráfico: implicit (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)
6092 -- Objeto gráfico: implicit
6093          (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>,<z>,<zmin>,<zmax>)
6094     Dibuja funciones implícitas en 2D y 3D.
6095
6096     2D
6097
6098     'implicit (<fcn>,<x>,<xmin>,<xmax>,<y>,<ymin>,<ymax>)' dibuja la
6099     función implícita <fcn>, con la variable 'x' tomando valores desde
6100     <xmin> hasta <xmax>, y la variable <y> tomando valores desde <ymin>
6101     hasta <ymax>.
6102
6103     Este objeto se ve afectado por las siguientes opciones gráficas:
6104     'ip_grid', 'ip_grid_in', 'line_width', 'line_type', 'key' y
6105     'color'.
6106
6107     Ejemplo:
6108
6109          (%i1) load(draw)$
6110          (%i2) draw2d(terminal  = eps,
6111                       grid      = true,
6112                       line_type = solid,
6113                       key       = "y^2=x^3-2*x+1",
6114                       implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
6115                       line_type = dots,
6116                       key       = "x^3+y^3 = 3*x*y^2-x-1",
6117                       implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4),
6118                       title     = "Two implicit functions" )$
6119
6120     3D
6121
6122     'implicit (<fcn>,<x>,<xmin>,<xmax>, <y>,<ymin>,<ymax>,
6123     <z>,<zmin>,<zmax>)' dibuja la función implícita <fcn>, con la
6124     variable <x> tomando valores desde <xmin> hasta <xmax>, la variable
6125     <y> tomando valores desde <ymin> hasta <ymax> y la variable <z>
6126     tomando valores desde <zmin> hasta <zmax>.  Este objeto está
6127     programado con el algoritmo marching cubes.
6128
6129     Este objeto se ve afectado por las siguientes opciones gráficas:
6130     'x_voxel', 'y_voxel', 'z_voxel', 'line_width', 'line_type', 'key',
6131     'wired_surface', 'enhanced3d' y 'color'.
6132
6133     Ejemplo:
6134
6135          (%i1) load(draw)$
6136          (%i2) draw3d(
6137                  color=blue,
6138                  implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
6139                           x,-1,1,y,-1.2,2.3,z,-1,1),
6140                  surface_hide=true);
6141
6142 -- Objeto gráfico: label ([<string>,<x>,<y>],...)
6143 -- Objeto gráfico: label ([<string>,<x>,<y>,<z>],...)
6144     Escribe etiquetas en 2D y 3D.
6145
6146     Las etiquetas coloreadas sólo trabajan con Gnuplot 4.3.  Este es un
6147     fallo conocido del paquete 'draw'.
6148
6149     Este objeto se ve afectado por las siguientes opciones gráficas:
6150     'label_alignment', 'label_orientation' y 'color'.
6151
6152     2D
6153
6154     'label([<string>,<x>,<y>])' escribe la cadena de caracteres
6155     <string> en el punto '[<x>,<y>]'.
6156
6157     Ejemplo:
6158
6159          (%i1) load(draw)$
6160          (%i2) draw2d(yrange = [0.1,1.4],
6161                       color = red,
6162                       label(["Label in red",0,0.3]),
6163                       color = "#0000ff",
6164                       label(["Label in blue",0,0.6]),
6165                       color = light_blue,
6166                       label(["Label in light-blue",0,0.9],
6167                             ["Another light-blue",0,1.2])  )$
6168
6169     3D
6170
6171     'label([<string>,<x>,<y>,<z>])' escribe la cadena de caracteres
6172     <string> en el punto '[<x>,<y>,<z>]'.
6173
6174     Ejemplo:
6175
6176          (%i1) load(draw)$
6177          (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
6178                       color = red,
6179                       label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
6180                       color = blue,
6181                       label(["DOWN 1",2,0,-3]) )$
6182
6183 -- Objeto gráfico: mesh (<fila_1>,<fila_2>,...)
6184     Dibuja un enrejado cuadrangular en 3D.
6185
6186     3D
6187
6188     El argumento <fila_i> es una lista de <n> puntos en 3D de la forma
6189     '[[x_i1,y_i1,z_i1], ...,[x_in,y_in,z_in]]', siendo todas las filas
6190     de igual longitud.  Todos estos puntos definen una superficie
6191     arbitraria en 3D. En cierto sentido, se trata de una generalización
6192     del objeto 'elevation_grid'.
6193
6194     Este objeto se ve afectado por las siguientes opciones gráficas:
6195     'line_type', 'line_width', 'color', 'key', 'wired_surface',
6196     'enhanced3d' y 'transform'.
6197
6198     Ejemplos:
6199
6200     Un sencillo ejemplo.
6201
6202          (%i1) load(draw)$
6203          (%i2) draw3d(
6204                   mesh([[1,1,3],   [7,3,1],[12,-2,4],[15,0,5]],
6205                        [[2,7,8],   [4,3,1],[10,5,8], [12,7,1]],
6206                        [[-2,11,10],[6,9,5],[6,15,1], [20,15,2]])) $
6207
6208     Dibujando un triángulo en 3D.
6209
6210          (%i1) load(draw)$
6211          (%i2) draw3d(
6212                  line_width = 2,
6213                  mesh([[1,0,0],[0,1,0]],
6214                       [[0,0,1],[0,0,1]])) $
6215
6216     Dos cuadriláteros.
6217
6218          (%i1) load(draw)$
6219          (%i2) draw3d(
6220                  surface_hide = true,
6221                  line_width   = 3,
6222                  color = red,
6223                  mesh([[0,0,0], [0,1,0]],
6224                       [[2,0,2], [2,2,2]]),
6225                  color = blue,
6226                  mesh([[0,0,2], [0,1,2]],
6227                       [[2,0,4], [2,2,4]])) $
6228
6229 -- Objeto gráfico: parametric (<xfun>,<yfun>,<par>,<parmin>,<parmax>)
6230 -- Objeto gráfico: parametric
6231          (<xfun>,<yfun>,<zfun>,<par>,<parmin>,<parmax>)
6232     Dibuja funciones paramétricas en 2D y 3D.
6233
6234     Este objeto se ve afectado por las siguientes opciones gráficas:
6235     'nticks', 'line_width', 'line_type', 'key', 'color' y 'enhanced3d'.
6236
6237     2D
6238
6239     'parametric (<xfun>,<yfun>,<par>,<parmin>,<parmax>)' dibuja la
6240     función paramétrica '[<xfun>,<yfun>]', con el parámetro <par>
6241     tomando valores desde <parmin> hasta <parmax>.
6242
6243     Ejemplo:
6244
6245          (%i1) load(draw)$
6246          (%i2) draw2d(explicit(exp(x),x,-1,3),
6247                       color = red,
6248                       key   = "This is the parametric one!!",
6249                       parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
6250
6251     3D
6252
6253     'parametric (<xfun>,<yfun>,<zfun>,<par>,<parmin>,<parmax>)' dibuja
6254     la curva paramétrica '[<xfun>,<yfun>,<zfun>]', con el parámetro
6255     <par> tomando valores desde <parmin> hasta <parmax>.
6256
6257     Ejemplo:
6258
6259          (%i1) load(draw)$
6260          (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
6261                       color = royalblue,
6262                       parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
6263                       color      = turquoise,
6264                       line_width = 2,
6265                       parametric(t^2,sin(t),2+t,t,0,2),
6266                       surface_hide = true,
6267                       title = "Surface & curves" )$
6268
6269 -- Objeto gráfico: parametric_surface
6270          (<xfun>,<yfun>,<zfun>,<par1>,<par1min>,<par1max>,<par2>,<par2min>,<par2max>)
6271     Dibuja superficies paramétricas en 3D.
6272
6273     3D
6274
6275     'parametric_surface
6276     (<xfun>,<yfun>,<zfun>,<par1>,<par1min>,<par1max>,<par2>,<par2min>,<par2max>)'
6277     dibuja la superficie paramétrica '[<xfun>,<yfun>,<zfun>]', con el
6278     parámetro <par1> tomando valores desde <par1min> hasta <par1max> y
6279     el parámetro <par2> tomando valores desde <par2min> hasta
6280     <par2max>.
6281
6282     Este objeto se ve afectado por las siguientes opciones gráficas:
6283     'draw_realpart', 'xu_grid', 'yv_grid', 'line_type', 'line_width',
6284     'key', 'wired_surface', 'enhanced3d' y 'color'.
6285
6286     Ejemplo:
6287
6288          (%i1) load(draw)$
6289          (%i2) draw3d(title          = "Sea shell",
6290                       xu_grid        = 100,
6291                       yv_grid        = 25,
6292                       view           = [100,20],
6293                       surface_hide   = true,
6294                       parametric_surface(0.5*u*cos(u)*(cos(v)+1),
6295                                     0.5*u*sin(u)*(cos(v)+1),
6296                                     u*sin(v) - ((u+3)/8*%pi)^2 - 20,
6297                                     u, 0, 13*%pi, v, -%pi, %pi) )$
6298
6299 -- Objeto gráfico: points ([[<x1>,<y1>], [<x2>,<y2>],...])
6300 -- Objeto gráfico: points ([<x1>,<x2>,...], [<y1>,<y2>,...])
6301 -- Objeto gráfico: points ([<y1>,<y2>,...])
6302 -- Objeto gráfico: points ([[<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>],...])
6303 -- Objeto gráfico: points ([<x1>,<x2>,...], [<y1>,<y2>,...],
6304          [<z1>,<z2>,...])
6305 -- Objeto gráfico: points (<matrix>)
6306 -- Objeto gráfico: points (<1d_y_array>)
6307 -- Objeto gráfico: points (<1d_x_array>, <1d_y_array>)
6308 -- Objeto gráfico: points (<1d_x_array>, <1d_y_array>, <1d_z_array>)
6309 -- Objeto gráfico: points (<2d_xy_array>)
6310 -- Objeto gráfico: points (<2d_xyz_array>)
6311
6312     Dibuja puntos en 2D y 3D.
6313
6314     Este objeto se ve afectado por las siguientes opciones gráficas:
6315     'point_size', 'point_type', 'points_joined', 'line_width', 'key',
6316     'line_type' y 'color'.  En modo 3D también se ve afectado por
6317     'enhanced3d'.
6318
6319     2D
6320
6321     'points ([[<x1>,<y1>], [<x2>,<y2>],...])' o 'points
6322     ([<x1>,<x2>,...], [<y1>,<y2>,...])' dibuja los puntos
6323     '[<x1>,<y1>]', '[<x2>,<y2>]', etc.  Si no se dan las abscisas,
6324     éstas se asignan automáticamente a enteros positivos consecutivos,
6325     de forma que 'points([<y1>,<y2>,...])' dibuja los puntos
6326     '[1,<y1>]', '[2,<y2>]', etc.  Si <matrix> es una matriz de dos
6327     columnas o de dos filas, 'points (<matrix>)' dibuja los puntos
6328     asociados.
6329
6330     Si <1d_y_array> es un array lisp de números en 1D, 'points
6331     (<1d_y_array>)' los dibujará asignando las abscisas a números
6332     enteros consecutivos.  'points (<1d_x_array>, <1d_y_array>)' dibuja
6333     los puntos cuyas coordenadas se toman de los dos arrays pasados
6334     como argumentos.  Si <2d_xy_array> es un array lisp 2D de dos
6335     filas, o de dos columnas, 'points (<2d_xy_array>)' dibuja los
6336     correspondientes puntos del plano.
6337
6338     Ejemplos:
6339
6340     Dos tipos de argumentos para 'points', una lista de pares ordenados
6341     y dos listas con las coordenadas separadas.
6342          (%i1) load(draw)$
6343          (%i2) draw2d(
6344                  key = "Small points",
6345                  points(makelist([random(20),random(50)],k,1,10)),
6346                  point_type    = circle,
6347                  point_size    = 3,
6348                  points_joined = true,
6349                  key           = "Great points",
6350                  points(makelist(k,k,1,20),makelist(random(30),k,1,20)),
6351                  point_type    = filled_down_triangle,
6352                  key           = "Automatic abscissas",
6353                  color         = red,
6354                  points([2,12,8]))$
6355
6356     Dibujando impulsos.
6357          (%i1) load(draw)$
6358          (%i2) draw2d(
6359                  points_joined = impulses,
6360                  line_width    = 2,
6361                  color         = red,
6362                  points(makelist([random(20),random(50)],k,1,10)))$
6363
6364     Array con ordenadas.
6365          (%i1) load(draw)$
6366          (%i2) a: make_array (flonum, 100) $
6367          (%i3) for i:0 thru 99 do a[i]: random(1.0) $
6368          (%i4) draw2d(points(a)) $
6369
6370     Dos arrays con coordenadas separadas.
6371          (%i1) load(draw)$
6372          (%i2) x: make_array (flonum, 100) $
6373          (%i3) y: make_array (fixnum, 100) $
6374          (%i4) for i:0 thru 99 do (
6375                  x[i]: float(i/100),
6376                  y[i]: random(10) ) $
6377          (%i5) draw2d(points(x, y)) $
6378
6379     Un array 2D de dos columnas.
6380          (%i1) load(draw)$
6381          (%i2) xy: make_array(flonum, 100, 2) $
6382          (%i3) for i:0 thru 99 do (
6383                  xy[i, 0]: float(i/100),
6384                  xy[i, 1]: random(10) ) $
6385          (%i4) draw2d(points(xy)) $
6386
6387     Dibujando un array rellenado con la función 'read_array'.
6388          (%i1) load(draw)$
6389          (%i2) a: make_array(flonum,100) $
6390          (%i3) read_array (file_search ("pidigits.data"), a) $
6391          (%i4) draw2d(points(a)) $
6392
6393     3D
6394
6395     'points ([[<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>],...])' o 'points
6396     ([<x1>,<x2>,...], [<y1>,<y2>,...], [<z1>,<z2>,...])' dibuja los
6397     puntos '[<x1>,<y1>,<z1>]', '[<x2>,<y2>,<z2>]', etc.  Si <matrix> es
6398     una matriz de tres columnas o de tres filas, 'points (<matrix>)'
6399     dibuja los puntos asociados.  Si <matrix> es una matriz columna o
6400     fila, las abscisas se asignan automáticamente.
6401
6402     En caso de que los argumentos sean arrays lisp, 'points
6403     (<1d_x_array>, <1d_y_array>, <1d_z_array>)' toma las coordenadas de
6404     los tres arrays unidimensionales.  Si <2d_xyz_array> es un array 2D
6405     de tres columnas, o de tres filas, entonces 'points
6406     (<2d_xyz_array>)' dibuja los puntos correspondientes.
6407
6408     Ejemplos:
6409
6410     Una muestra tridimensional,
6411          (%i1) load(draw)$
6412          (%i2) load (numericalio)$
6413          (%i3) s2 : read_matrix (file_search ("wind.data"))$
6414          (%i4) draw3d(title = "Daily average wind speeds",
6415                       point_size = 2,
6416                       points(args(submatrix (s2, 4, 5))) )$
6417
6418     Dos muestras tridimensionales,
6419          (%i1) load(draw)$
6420          (%i2) load (numericalio)$
6421          (%i3) s2 : read_matrix (file_search ("wind.data"))$
6422          (%i4) draw3d(
6423                   title = "Daily average wind speeds. Two data sets",
6424                   point_size = 2,
6425                   key        = "Sample from stations 1, 2 and 3",
6426                   points(args(submatrix (s2, 4, 5))),
6427                   point_type = 4,
6428                   key        = "Sample from stations 1, 4 and 5",
6429                   points(args(submatrix (s2, 2, 3))) )$
6430
6431     Arrays unidimensionales,
6432          (%i1) load(draw)$
6433          (%i2) x: make_array (fixnum, 10) $
6434          (%i3) y: make_array (fixnum, 10) $
6435          (%i4) z: make_array (fixnum, 10) $
6436          (%i5) for i:0 thru 9 do (
6437                  x[i]: random(10),
6438                  y[i]: random(10),
6439                  z[i]: random(10) ) $
6440          (%i6) draw3d(points(x,y,z)) $
6441
6442     Array bidimensional coloreado,
6443          (%i1) load(draw)$
6444          (%i2) xyz: make_array(fixnum, 10, 3) $
6445          (%i3) for i:0 thru 9 do (
6446                  xyz[i, 0]: random(10),
6447                  xyz[i, 1]: random(10),
6448                  xyz[i, 2]: random(10) ) $
6449          (%i4) draw3d(
6450                   enhanced3d = true,
6451                   points_joined = true,
6452                   points(xyz)) $
6453
6454     Números de colores especificados explícitamente por el usuario.
6455          (%i1) load(draw)$
6456          (%i2) pts: makelist([t,t^2,cos(t)], t, 0, 15)$
6457          (%i3) col_num: makelist(k, k, 1, length(pts))$
6458          (%i4) draw3d(
6459                  enhanced3d = ['part(col_num,k),k],
6460                  point_size = 3,
6461                  point_type = filled_circle,
6462                  points(pts))$
6463
6464 -- Objeto gráfico: polar (<radius>,<ang>,<minang>,<maxang>)
6465     Dibuja funciones 2D definidas en coordenadas polares.
6466
6467     2D
6468
6469     'polar (<radius>,<ang>,<minang>,<maxang>)' dibuja la función
6470     '<radius>(<ang>)' definida en coordenadas polares, con la variable
6471     <ang> tomando valores desde <minang> hasta <maxang>.
6472
6473     Este objeto se ve afectado por las siguientes opciones gráficas:
6474     'nticks', 'line_width', 'line_type', 'key' y 'color'.
6475
6476     Ejemplo:
6477
6478          (%i1) load(draw)$
6479          (%i2) draw2d(user_preamble = "set grid polar",
6480                       nticks        = 200,
6481                       xrange        = [-5,5],
6482                       yrange        = [-5,5],
6483                       color         = blue,
6484                       line_width    = 3,
6485                       title         = "Hyperbolic Spiral",
6486                       polar(10/theta,theta,1,10*%pi) )$
6487
6488 -- Objeto gráfico: polygon ([[<x1>,<y1>], [<x2>,<y2>],...])
6489 -- Objeto gráfico: polygon ([<x1>,<x2>,...], [<y1>,<y2>,...])
6490     Dibuja polígonos en 2D.
6491
6492     2D
6493
6494     'polygon ([[<x1>,<y1>], [<x2>,<y2>],...])' o 'polygon
6495     ([<x1>,<x2>,...], [<y1>,<y2>,...])': dibuja en el plano un polígono
6496     de vértices '[<x1>,<y1>]', '[<x2>,<y2>]', etc..
6497
6498     Este objeto se ve afectado por las siguientes opciones gráficas:
6499     'transparent', 'fill_color', 'border', 'line_width', 'key',
6500     'line_type' y 'color'.
6501
6502     Ejemplo:
6503
6504          (%i1) load(draw)$
6505          (%i2) draw2d(color      = "#e245f0",
6506                       line_width = 8,
6507                       polygon([[3,2],[7,2],[5,5]]),
6508                       border      = false,
6509                       fill_color  = yellow,
6510                       polygon([[5,2],[9,2],[7,5]]) )$
6511
6512 -- Objeto gráfico: quadrilateral (<point_1>, <point_2>, <point_3>,
6513          <point_4>)
6514     Dibuja un cuadrilátero.
6515
6516     2D
6517
6518     'quadrilateral ([<x1>,<y1>], [<x2>,<y2>], [<x3>,<y3>],
6519     [<x4>,<y4>])' dibuja un cuadrilátero de vértices '[<x1>,<y1>]',
6520     '[<x2>,<y2>]', '[<x3>,<y3>]' y '[<x4>,<y4>]'.
6521
6522     Este objeto se ve afectado por las siguientes opciones gráficas:
6523     'transparent', 'fill_color', 'border', 'line_width', 'key',
6524     'xaxis_secondary', 'yaxis_secondary', 'line_type', 'transform' y
6525     'color'.
6526
6527     Ejemplo:
6528
6529          (%i1) load(draw)$
6530          (%i2) draw2d(
6531                  quadrilateral([1,1],[2,2],[3,-1],[2,-2]))$
6532
6533     3D
6534
6535     'quadrilateral ([<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>],
6536     [<x3>,<y3>,<z3>], [<x4>,<y4>,<z4>])' dibuja un cuadrilátero de
6537     vértices '[<x1>,<y1>,<z1>]', '[<x2>,<y2>,<z2>]', '[<x3>,<y3>,<z3>]'
6538     y '[<x4>,<y4>,<z4>]'.
6539
6540     Este objeto se ve afectado por las siguientes opciones gráficas:
6541     'line_type', 'line_width', 'color', 'key', 'enhanced3d' y
6542     'transform'.
6543
6544 -- Objeto gráfico: rectangle ([<x1>,<y1>], [<x2>,<y2>])
6545     Dibuja rectángulos en 2D.
6546
6547     2D
6548
6549     'rectangle ([<x1>,<y1>], [<x2>,<y2>])' dibuja un rectángulo de
6550     vértices opuestos '[<x1>,<y1>]' y '[<x2>,<y2>]'.
6551
6552     Este objeto se ve afectado por las siguientes opciones gráficas:
6553     'transparent', 'fill_color', 'border', 'line_width', 'key',
6554     'line_type' y 'color'.
6555
6556     Ejemplo:
6557
6558          (%i1) load(draw)$
6559          (%i2) draw2d(fill_color  = red,
6560                       line_width  = 6,
6561                       line_type   = dots,
6562                       transparent = false,
6563                       fill_color  = blue,
6564                       rectangle([-2,-2],[8,-1]), /* opposite vertices */
6565                       transparent = true,
6566                       line_type   = solid,
6567                       line_width  = 1,
6568                       rectangle([9,4],[2,-1.5]),
6569                       xrange      = [-3,10],
6570                       yrange      = [-3,4.5] )$
6571
6572 -- Objeto gráfico: region
6573          (<expr>,<var1>,<minval1>,<maxval1>,<var2>,<minval2>,<maxval2>)
6574     Dibuja una región del plano definida por desigualdades.
6575
6576     2D <expr> es una expresión formada por desigualdades y los
6577     operadores lógicos 'and', 'or' y 'not'.  La región está acotada por
6578     el rectángulo definido por [<minval1>, <maxval1>] y [<minval2>,
6579     <maxval2>].
6580
6581     Este objeto se ve afectado por las siguientes opciones gráficas:
6582     'fill_color', 'key', 'x_voxel' y 'y_voxel'.
6583
6584     Ejemplo:
6585
6586          (%i1) load(draw)$
6587          (%i2) draw2d(
6588                  x_voxel = 30,
6589                  y_voxel = 30,
6590                  region(x^2+y^2<1 and x^2+y^2 > 1/2,
6591                         x, -1.5, 1.5, y, -1.5, 1.5));
6592
6593 -- Objeto gráfico: spherical
6594          (<radius>,<azi>,<minazi>,<maxazi>,<zen>,<minzen>,<maxzen>)
6595     Dibuja funciones 3D definidas en coordenadas esféricas.
6596
6597     3D
6598
6599     'spherical
6600     (<radius>,<azi>,<minazi>,<maxazi>,<zen>,<minzen>,<maxzen>)' dibuja
6601     la función '<radius>(<azi>,<zen>)' definida en coordenadas
6602     esféricas, con el azimut <azi> tomando valores desde <minazi> hasta
6603     <maxazi> y el zenit <zen> tomando valores desde <minzen> hasta
6604     <maxzen>.
6605
6606     Este objeto se ve afectado por las siguientes opciones gráficas:
6607     'xu_grid', 'yv_grid', 'line_type', 'key', 'wired_surface',
6608     'enhanced3d' y 'color'.
6609
6610     Ejemplo:
6611
6612          (%i1) load(draw)$
6613          (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
6614
6615 -- Objeto gráfico: triangle (<punto_1>, <punto_2>, <punto_3>)
6616     Dibuja un triángulo.
6617
6618     2D
6619
6620     'triangle ([<x1>,<y1>], [<x2>,<y2>], [<x3>,<y3>])' dibuja un
6621     triángulo de vértices '[<x1>,<y1>]', '[<x2>,<y2>]' y '[<x3>,<y3>]'.
6622
6623     Este objeto se ve afectado por las siguientes opciones gráficas:
6624     'transparent', 'fill_color', 'border', 'line_width', 'key',
6625     'xaxis_secondary', 'yaxis_secondary', 'line_type', 'transform' y
6626     'color'.
6627
6628     Ejemplo:
6629
6630          (%i1) load(draw)$
6631          (%i2) draw2d(
6632                  triangle([1,1],[2,2],[3,-1]))$
6633
6634     3D
6635
6636     'triangle ([<x1>,<y1>,<z1>], [<x2>,<y2>,<z2>], [<x3>,<y3>,<z3>])'
6637     dibuja un triángulo de vértices '[<x1>,<y1>,<z1>]',
6638     '[<x2>,<y2>,<z2>]' y '[<x3>,<y3>,<z3>]'.
6639
6640     Este objeto se ve afectado por las siguientes opciones gráficas:
6641     'line_type', 'line_width', 'color', 'key', 'enhanced3d' y
6642     'transform'.
6643
6644 -- Objeto gráfico: tube (<xfun>,<yfun>,<zfun>,<rfun>,<p>,<pmin>,<pmax>)
6645     Dibuja un tubo en 3D de diámetro variable.
6646
6647     3D
6648
6649     '[<xfun>,<yfun>,<zfun>]' es la curva paramétrica de parámetro <p>,
6650     el cual toma valores entre <pmin> y <pmax>.  Se colocan círculos de
6651     radio <rfun> con sus centros sobre la curva paramétrica y
6652     perpendiculares a ella.
6653
6654     Este objeto se ve afectado por las siguientes opciones gráficas:
6655     'xu_grid', 'yv_grid', 'line_type', 'line_width', 'key',
6656     'wired_surface', 'enhanced3d', 'color' y 'capping'.
6657
6658     Ejemplo:
6659
6660          (%i1) load(draw)$
6661          (%i2) draw3d(
6662                  enhanced3d = true,
6663                  xu_grid    = 50,
6664                  tube(cos(a), a, 0, cos(a/10)^2,
6665                       a, 0, 4*%pi) )$
6666
6667 -- Objeto gráfico: vector ([<x>,<y>], [<dx>,<dy>])
6668 -- Objeto gráfico: vector ([<x>,<y>,<z>], [<dx>,<dy>,<dz>])
6669     Dibuja vectores en 2D y 3D.
6670
6671     Este objeto se ve afectado por las siguientes opciones gráficas:
6672     'head_both', 'head_length', 'head_angle', 'head_type',
6673     'line_width', 'line_type', 'key' y 'color'.
6674
6675     2D
6676
6677     'vector ([<x>,<y>], [<dx>,<dy>])' dibuja el vector '[<dx>,<dy>]'
6678     con origen en '[<x>,<y>]'.
6679
6680     Ejemplo:
6681
6682          (%i1) load(draw)$
6683          (%i2) draw2d(xrange      = [0,12],
6684                       yrange      = [0,10],
6685                       head_length = 1,
6686                       vector([0,1],[5,5]), /* default type */
6687                       head_type = 'empty,
6688                       vector([3,1],[5,5]),
6689                       head_both = true,
6690                       head_type = 'nofilled,
6691                       line_type = dots,
6692                       vector([6,1],[5,5]))$
6693
6694     3D
6695
6696     'vector([<x>,<y>,<z>], [<dx>,<dy>,<dz>])' dibuja el vector
6697     '[<dx>,<dy>,<dz>]' con origen en '[<x>,<y>,<z>]'.
6698
6699     Ejemplo:
6700
6701          (%i1) load(draw)$
6702          (%i2) draw3d(color = cyan,
6703                       vector([0,0,0],[1,1,1]/sqrt(3)),
6704                       vector([0,0,0],[1,-1,0]/sqrt(2)),
6705                       vector([0,0,0],[1,1,-2]/sqrt(6)) )$
6706
6707
6708File: maxima.info,  Node: Funciones y variables para picture,  Next: Funciones y variables para worldmap,  Prev: Funciones y variables para draw,  Up: draw
6709
671047.3 Funciones y variables para picture
6711=======================================
6712
6713 -- Función: get_pixel (<pic>,<x>,<y>)
6714     Devuelve el pixel de la imagen <pic>.  Las coordenadas <x> e <y>
6715     van desde 0 hasta 'ancho-1' y 'alto-1', respectivamente.
6716
6717 -- Función: make_level_picture (<data>)
6718 -- Función: make_level_picture (<data>,<width>,<height>)
6719     Devuelve un objeto 'picture' consistente en una imagen de niveles.
6720     'make_level_picture (<data>)' construye el objeto 'picture' a
6721     partir de la matriz <data>.  'make_level_picture
6722     (<data>,<width>,<height>)' construye el objeto a partir de una
6723     lista de números, en cuyo caso deben indicarse el ancho <width> y
6724     la altura <height> en píxeles.
6725
6726     El objeto 'picture' devuelto contiene los siguientes cuatro
6727     elemento:
6728
6729       1. el símbolo 'level'
6730       2. anchura de la imagen
6731       3. altura de la imagen
6732       4. un array de enteros con los valores de los píxeles entre 0 y
6733          255.  El argumento <data> debe contener sólo números entre 0 y
6734          255; los cantidades negativas se transforman en ceros y las
6735          que son mayores de 255 se igualan a este número.
6736
6737     Ejemplo:
6738
6739     Imagen de niveles a partir de una matriz.
6740          (%i1) load(draw)$
6741          (%i2) make_level_picture(matrix([3,2,5],[7,-9,3000]));
6742          (%o2)         picture(level, 3, 2, {Array:  #(3 2 5 7 0 255)})
6743
6744     Imagen de niveles a partir de una lista numérica.
6745          (%i1) load(draw)$
6746          (%i2) make_level_picture([-2,0,54,%pi],2,2);
6747          (%o2)            picture(level, 2, 2, {Array:  #(0 0 54 3)})
6748
6749 -- Función: make_rgb_picture (<redlevel>,<greenlevel>,<bluelevel>)
6750     Devuelve un objeto <picture> conteniendo una imagen en color (RGB).
6751     Los tres argumentos deben ser imágenes de niveles, para el rojo
6752     (R), verde (G) y azul (B).
6753
6754     El objeto <picture> devuelto contiene los siguientes cuatro
6755     elemento:
6756
6757       1. el símbolo 'rgb'
6758       2. anchura de la imagen
6759       3. altura de la imagen
6760       4. un array de enteros de <3*ancho*alto> con los valores de los
6761          píxeles entre 0 y 255.  Cada valor de pixel se representa en
6762          el array con tres números consecutivos (rojo, verde, azul).
6763
6764     Ejemplo:
6765
6766          (%i1) load(draw)$
6767          (%i2) red: make_level_picture(matrix([3,2],[7,260]));
6768          (%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
6769          (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
6770          (%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
6771          (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
6772          (%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
6773          (%i5) make_rgb_picture(red,green,blue);
6774          (%o5) picture(rgb, 2, 2,
6775                        {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
6776
6777 -- Función: negative_picture (<pic>)
6778     Devuelve el negativo de la imagen, sea ésta de tipo nivel (<level>)
6779     o color (<rgb>).
6780
6781 -- Función: picture_equalp (<x>,<y>)
6782     Devuelve 'true' si los dos argumentos son imágenes idénticas, o
6783     'false' en caso contrario.
6784
6785 -- Función: picturep (<x>)
6786     Devuelve 'true' si el argumento es una imagen bien formada, o
6787     'false' en caso contrario.
6788
6789 -- Función: read_xpm (<xpm_file>)
6790     Lee el fichero gráfico en formato xpm y devuelve un objeto
6791     'picture'.
6792
6793 -- Función: rgb2level (<pic>)
6794     Transforma una imagen en color <rgb> a otra de niveles <level>
6795     promediando los niveles.
6796
6797 -- Función: take_channel (<im>,<color>)
6798     Si el argumento <color> es 'red', 'green' o 'blue', la función
6799     'take_channel' devuelve el canal de color correspondiente de la
6800     imagen <im>.
6801
6802     Ejemplo:
6803
6804          (%i1) load(draw)$
6805          (%i2) red: make_level_picture(matrix([3,2],[7,260]));
6806          (%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
6807          (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
6808          (%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
6809          (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
6810          (%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
6811          (%i5) make_rgb_picture(red,green,blue);
6812          (%o5) picture(rgb, 2, 2,
6813                        {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
6814          (%i6) take_channel(%,'green);  /* simple quote!!! */
6815          (%o6)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
6816
6817
6818File: maxima.info,  Node: Funciones y variables para worldmap,  Prev: Funciones y variables para picture,  Up: draw
6819
682047.4 Funciones y variables para worldmap
6821========================================
6822
6823Este paquete carga automáticamente el paquete 'draw'.
6824
682547.4.1 Variables y Funciones
6826----------------------------
6827
6828 -- Global variable: boundaries_array
6829     Valor por defecto: 'false'
6830
6831     'boundaries_array' es donde el objeto gráfico 'geomap' lee las
6832     coordenadas de las líneas fronterizas.
6833
6834     Cada componente de 'boundaries_array' es un array de números
6835     decimales en coma flotante representando las coordenadas que
6836     definen un segmento poligonal o línea fronteriza.
6837
6838     Véase también 'geomap'.
6839
6840 -- Función: numbered_boundaries (<nlist>)
6841     Dibuja una lista de segmentos poligonales (líneas fronterizas),
6842     etiquetadas con sus números correspondientes (coordenadas de
6843     'boundaries_array').  Esta función es de mucha ayuda a la hora de
6844     definir nuevas entidades geográficas.
6845
6846     Ejemplo:
6847
6848     Mapa de Europa con las fronteras y costas etiquetadas con su
6849     componente numérica de 'boundaries_array'.
6850          (%i1) load(worldmap)$
6851          (%i2) european_borders:
6852                     region_boundaries(-31.81,74.92,49.84,32.06)$
6853          (%i3) numbered_boundaries(european_borders)$
6854
6855 -- Función: make_poly_continent (<continent_name>)
6856 -- Función: make_poly_continent (<country_list>)
6857     Construye los polígonos necesarios para dibujar un continente o
6858     lista de países coloreados.
6859
6860     Ejemplo:
6861
6862          (%i1) load(worldmap)$
6863          (%i2) /* A continent */
6864                make_poly_continent(Africa)$
6865          (%i3) apply(draw2d, %)$
6866          (%i4) /* A list of countries */
6867                make_poly_continent([Germany,Denmark,Poland])$
6868          (%i5) apply(draw2d, %)$
6869
6870 -- Función: make_poly_country (<country_name>)
6871     Construye los polígonos necesarios para dibujar un país coloreado.
6872     En caso de contener islas, un país tendrá asociados varios
6873     polígonos.
6874
6875     Ejemplo:
6876
6877          (%i1) load(worldmap)$
6878          (%i2) make_poly_country(India)$
6879          (%i3) apply(draw2d, %)$
6880
6881 -- Función: make_polygon (<nlist>)
6882     Devuelve un objeto 'polygon' a partie de una lista de líneas
6883     fronterizas y de costas.  El argumento <nlist> debe ser una lista
6884     de componentes de 'boundaries_array'.
6885
6886     Ejemplo:
6887
6888     La variable Bhutan (Bután) está definida con los números
6889     fronterizos 171, 173 y 1143, de manera que
6890     'make_polygon([171,173,1143])' concatena los arrays
6891     'boundaries_array[171]', 'boundaries_array[173]' y
6892     'boundaries_array[1143]' y devuelve un objeto 'polygon' apto para
6893     ser dibujado por 'draw'.  A fin de evitar mensajes de errores, los
6894     arrays deben ser compatibles en el sentido de que dos de ellos
6895     consecutivos deben tener dos coordenadas comunes en los extremos.
6896     En este ejemplo, las dos primeras componentes de
6897     'boundaries_array[171]' son iguales a las dos últimas de
6898     'boundaries_array[173]', y las dos primeras de
6899     'boundaries_array[173]' coinciden con las dos primeras de
6900     'boundaries_array[1143]'; en conclusión, los números de segmentos
6901     poligonales171, 173 y 1143 (en este orden) son compatibles y el
6902     polígono coloreado se podrá dibujar.
6903          (%i1) load(worldmap)$
6904          (%i2) Bhutan;
6905          (%o2)                        [[171, 173, 1143]]
6906          (%i3) boundaries_array[171];
6907          (%o3) {Array:
6908                 #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
6909                   88.917877 27.321039)}
6910          (%i4) boundaries_array[173];
6911          (%o4) {Array:
6912                 #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
6913                   91.631348 27.536381 91.765533 27.45694 91.775253 27.4161
6914                   92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
6915                   92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
6916                   92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
6917                   91.916924 26.85416 91.8358 26.863331 91.712479 26.799999
6918                   91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
6919                   91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
6920                   90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
6921                   89.98996 26.73583 89.841919 26.70138 89.618301 26.72694
6922                   89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
6923                   89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
6924                   88.867737 27.080549 88.843307 27.108601 88.750549
6925                   27.14727)}
6926          (%i5) boundaries_array[1143];
6927          (%o5) {Array:
6928                 #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805
6929                   91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
6930                   91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
6931                   90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
6932                   89.83165 28.24888 89.58609 28.139999 89.35997 27.87166
6933                   89.225517 27.795 89.125793 27.56749 88.971077 27.47361
6934                   88.917877 27.321039)}
6935          (%i6) Bhutan_polygon: make_polygon([171,173,1143])$
6936          (%i7) draw2d(Bhutan_polygon)$
6937
6938 -- Función: region_boundaries (<x1>,<y1>,<x2>,<y2>)
6939     Detecta los segmentos poligonales almacenados en la variable global
6940     'boundaries_array' totalmente contenidos en el rectángulo de
6941     vértices (<x1>,<y1>) -superior izquierdo- y (<x2>,<y2>) -inferior
6942     derecho-.
6943
6944     Ejemplo:
6945
6946     Devuelve los números de los segmentos necesarios para dibujar el
6947     sur de Italia.
6948          (%i1) load(worldmap)$
6949          (%i2) region_boundaries(10.4,41.5,20.7,35.4);
6950          (%o2)                [1846, 1863, 1864, 1881, 1888, 1894]
6951          (%i3) draw2d(geomap(%))$
6952
6953 -- Función: region_boundaries_plus (<x1>,<y1>,<x2>,<y2>)
6954     Detecta los segmentos poligonales almacenados en la variable global
6955     'boundaries_array' con al menos un vértice dentro del rectángulo
6956     definido por los extremos (<x1>,<y1>) -superior izquierdo- y
6957     (<x2>,<y2>) -inferior derecho-.
6958
6959     Ejemplo:
6960
6961          (%i1) load(worldmap)$
6962          (%i2) region_boundaries_plus(10.4,41.5,20.7,35.4);
6963          (%o2) [1060, 1062, 1076, 1835, 1839, 1844, 1846, 1858,
6964                 1861, 1863, 1864, 1871, 1881, 1888, 1894, 1897]
6965          (%i3) draw2d(geomap(%))$
6966
696747.4.2 Objetos gráficos
6968-----------------------
6969
6970 -- Objeto gráfico: geomap (<numlist>)
6971 -- Objeto gráfico: geomap (<numlist>,<3Dprojection>)
6972     Dibuja mapas cartográficos en 2D y 3D.
6973
6974     2D
6975
6976     Esta función trabaja junto con la variable global
6977     'boundaries_array'.
6978
6979     El argumento <numlist> es una lista de números o de listas de
6980     números.  Todos estos números deben ser enteros mayores o iguales
6981     que cero, representando las componentes del array global
6982     'boundaries_array'.
6983
6984     Cada componente de 'boundaries_array' es un array de decimales en
6985     coma flotante, las coordenadas de un segmento poligonal o línea
6986     fronteriza.
6987
6988     'geomap (<numlist>)' toma los enteros de sus argumentos y dibuja
6989     los segmentos poligonales asociados de 'boundaries_array'.
6990
6991     Este objeto se ve afectado por las siguientes opciones gráficas:
6992     'line_width', 'line_type' y 'color'.
6993
6994     Ejemplos:
6995
6996     Un sencillo mapa hecho a mano:
6997          (%i1) load(worldmap)$
6998          (%i2) /* Vertices of boundary #0: {(1,1),(2,5),(4,3)} */
6999             ( bnd0: make_array(flonum,6),
7000               bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0,
7001               bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$
7002          (%i3) /* Vertices of boundary #1: {(4,3),(5,4),(6,4),(5,1)} */
7003             ( bnd1: make_array(flonum,8),
7004               bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0,
7005               bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$
7006          (%i4) /* Vertices of boundary #2: {(5,1), (3,0), (1,1)} */
7007             ( bnd2: make_array(flonum,6),
7008               bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0,
7009               bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$
7010          (%i5) /* Vertices of boundary #3: {(1,1), (4,3)} */
7011             ( bnd3: make_array(flonum,4),
7012               bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$
7013          (%i6) /* Vertices of boundary #4: {(4,3), (5,1)} */
7014             ( bnd4: make_array(flonum,4),
7015               bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$
7016          (%i7) /* Pack all together in boundaries_array */
7017             ( boundaries_array: make_array(any,5),
7018               boundaries_array[0]: bnd0, boundaries_array[1]: bnd1,
7019               boundaries_array[2]: bnd2, boundaries_array[3]: bnd3,
7020               boundaries_array[4]: bnd4 )$
7021          (%i8) draw2d(geomap([0,1,2,3,4]))$
7022
7023     El paquete auxiliar 'worldmap' asigna al array global
7024     'boundaries_array' líneas fronterizas reales en coordenadas
7025     (longitud, latitud).  Estos datos son de dominio público y proceden
7026     de <http://www-cger.nies.go.jp/grid-e/gridtxt/grid19.html>.  El
7027     paquete 'worldmap' también define fronteras de países, continentes
7028     y líneas costeras a partir de las componentes de 'boundaries_array'
7029     (véase el fichero 'share/draw/worldmap.mac' para más información).
7030     El paquete 'worldmap' carga automáticamente el paquete 'draw'.
7031          (%i1) load(worldmap)$
7032          (%i2) c1: gr2d(geomap([Canada,United_States,
7033                                 Mexico,Cuba]))$
7034          (%i3) c2: gr2d(geomap(Africa))$
7035          (%i4) c3: gr2d(geomap([Oceania,China,Japan]))$
7036          (%i5) c4: gr2d(geomap([France,Portugal,Spain,
7037                                 Morocco,Western_Sahara]))$
7038          (%i6) draw(columns  = 2,
7039                     c1,c2,c3,c4)$
7040
7041     'worldmap' se puede utilizar para dibujar países como polígonos.
7042     En este caso, ya no será necesario hacer uso del objeto gráfico
7043     'geomap', pero sí de 'polygon'.  Puesto que en este caso se
7044     utilizan listas en lugar de arrays, los mapas se reproducirán de
7045     forma más lenta.  Véanse también 'make_poly_country' y
7046     'make_poly_continent' para comprender el siguiente código.
7047          (%i1) load(worldmap)$
7048          (%i2) mymap: append(
7049             [color      = white],  /* borders are white */
7050             [fill_color = red],             make_poly_country(Bolivia),
7051             [fill_color = cyan],            make_poly_country(Paraguay),
7052             [fill_color = green],           make_poly_country(Colombia),
7053             [fill_color = blue],            make_poly_country(Chile),
7054             [fill_color = "#23ab0f"],       make_poly_country(Brazil),
7055             [fill_color = goldenrod],       make_poly_country(Argentina),
7056             [fill_color = "midnight-blue"], make_poly_country(Uruguay))$
7057          (%i3) apply(draw2d, mymap)$
7058
7059     3D
7060
7061     'geomap (<numlist>)' proyecta los mapas sobre la esfera de radio 1
7062     y centro (0,0,0).  Es posible cambiar la esfera o el tipo de
7063     proyección haciendo uso de 'geomap (<numlist>,<3Dprojection>)'.
7064
7065     Proyecciones 3D disponibles:
7066
7067        * '[spherical_projection,<x>,<y>,<z>,<r>]': proyecta los mapas
7068          sobre la esfera de radio <r> y centro (<x>,<y>,<z>).
7069               (%i1) load(worldmap)$
7070               (%i2) draw3d(geomap(Australia), /* default projection */
7071                            geomap(Australia,
7072                                   [spherical_projection,2,2,2,3]))$
7073
7074        * '[cylindrical_projection,<x>,<y>,<z>,<r>,<rc>]': re-proyecta
7075          mapas esféricos sobre el cilindro de radio <rc> cuyo eje pasa
7076          a través de los polos del globo de radio <r> y centro
7077          (<x>,<y>,<z>).
7078               (%i1) load(worldmap)$
7079               (%i2) draw3d(geomap([America_coastlines,Eurasia_coastlines],
7080                                   [cylindrical_projection,2,2,2,3,4]))$
7081
7082        * '[conic_projection,<x>,<y>,<z>,<r>,<alpha>]': re-proyecta
7083          mapas esféricos sobre los conos de ángulo <alpha>, cuyos ejes
7084          pasan a través de los polos del globo de radio <r> y centro
7085          (<x>,<y>,<z>).  Ambos conos, norte y sur, son tangentes a la
7086          esfera.
7087               (%i1) load(worldmap)$
7088               (%i2) draw3d(geomap(World_coastlines,
7089                                   [conic_projection,0,0,0,1,90]))$
7090
7091     En <http://riotorto.users.sf.net/gnuplot/geomap> hay ejemplos más
7092     elaborados.
7093
7094
7095File: maxima.info,  Node: drawdf,  Next: dynamics,  Prev: draw,  Up: Top
7096
709748 drawdf
7098*********
7099
7100* Menu:
7101
7102* Introducción a drawdf::
7103* Funciones y variables para drawdf::
7104
7105
7106File: maxima.info,  Node: Introducción a drawdf,  Next: Funciones y variables para drawdf,  Prev: drawdf,  Up: drawdf
7107
710848.1 Introducción a drawdf
7109==========================
7110
7111La función 'drawdf' dibuja el campo de direcciones de una ecuación
7112diferencial ordinaria de primer orden (EDO) o de un sistema de dos
7113ecuaciones autónomas de primer orden.
7114
7115Puesto que 'drawdf' es un paquete adicional, es necesario cargarlo en
7116memoria ejecutando previamente la instrucción 'load(drawdf)'.  'drawdf'
7117utiliza el paquete 'draw', que necesita como mínimo la versión 4.2 de
7118Gnuplot.
7119
7120Para dibujar el campo de direcciones de una EDO, ésta debe escribirse de
7121la forma
7122            dy
7123            -- = F(x,y)
7124            dx
7125
7126y ser la función <F> la que se pase a 'drawdf' como argumento.  Si las
7127variables independiente y dependiente no son <x> e <y>, como en la
7128ecuación anterior, entonces deben nombrarse de forma explícita en una
7129lista que se pasará a 'drawdf' (ver ejemplos más abajo).
7130
7131Para dibujar el campo de direcciones de un conjunto de dos EDOs
7132autónomas, deben escribirse de la forma
7133            dx             dy
7134            -- = G(x,y)    -- = F(x,y)
7135            dt             dt
7136
7137y será una lista con las dos funciones <G> y <F> la que se pase a
7138'drawdf' como argumento.  El orden de las funciones es importante; la
7139primera será la derivada de la abscisa respecto del tiempo y la segunda
7140la derivada de la ordenada respecto del tiempo.  Si las variables no son
7141las <x> e <y> habituales, el segundo argumento que se pase a la función
7142'drawdf' será una lista con los nombres de ambas variables, primero la
7143correspondiente a las abscisas, seguida de la asociada a las ordenadas.
7144
7145Si sólo se trata de una EDO, 'drawdf' admitirá por defecto que 'x=t' y
7146'G(x,y)=1', transformanado la ecuación no autónoma en un sistema de dos
7147ecuaciones autónomas.
7148
7149
7150File: maxima.info,  Node: Funciones y variables para drawdf,  Prev: Introducción a drawdf,  Up: drawdf
7151
715248.2 Funciones y variables para drawdf
7153======================================
7154
715548.2.1 Funciones
7156----------------
7157
7158 -- Función: drawdf (<dydx>, ...options and objects...)
7159 -- Función: drawdf (<dvdu>, '['<u>,<v>']', ...opciones y objetos...)
7160 -- Función: drawdf (<dvdu>, '['<u>,<umin>,<umax>']',
7161          '['<v>,<vmin>,<vmax>']', ...opciones y objetos...)
7162 -- Función: drawdf ('['<dxdt>,<dydt>']', ...opciones y objetos...)
7163 -- Función: drawdf ('['<dudt>,<dvdt>']', '['<u>,<v>']', ...opciones y
7164          objetos...)
7165 -- Función: drawdf ('['<dudt>,<dvdt>']', '['<u>,<umin>,<umax>']',
7166          '['<v>,<vmin>,<vmax>']', ...opciones y objetos...)
7167
7168     La función 'drawdf' dibuja un campo de direcciones 2D, incluyendo
7169     opcionalmente curvas asociadas a soluciones particulares, así como
7170     otros objeto gráficos del paquete 'draw'.
7171
7172     El primer argumento especifica la(s) derivada(s), el cual debe
7173     estar formado por una expresión o una lista de dos expresiones.
7174     <dydx>, <dxdt> y <dydt> son expresiones que dependen de <x> y <y>.
7175     <dvdu>, <dudt> y <dvdt> son expresiones que dependen de <u> y <v>.
7176
7177     Si las variables independiente y dependiente no son <x> e <y>, sus
7178     nombres deben especificarse a continuación de las derivadas, bien
7179     como una lista de dos nombres, '['<u>,<v>']', o como dos listas de
7180     la forma '['<u>,<umin>,<umax>']' y '['<v>,<vmin>,<vmax>']'.
7181
7182     El resto de argumentos son opciones gráficas, objetos gráficos, o
7183     listas conteniendo elementos de ambos tipos.  El conjunto de
7184     opciones y objetos gráficos soportados por 'drawdf' incluye los
7185     soportados por 'draw2d' y 'gr2d' del paquete 'draw'.
7186
7187     Los argumentos se iterpretan secuencialmente: las opciones gráficas
7188     afectan a todos los objetos gráficos que le siguen.  Además, los
7189     objetos gráficos se dibujan en el orden en el que se especifican,
7190     pudiendo tapar otros gráficos dibujados con anterioridad.  Algunas
7191     opciones gráficas afectan al aspecto general de la escena.
7192
7193     Los nuevos objetos gráficos que se definen en 'drawdf' son:
7194     'solns_at', 'points_at', 'saddles_at', 'soln_at', 'point_at' y
7195     'saddle_at'.
7196
7197     Las nuevas opciones gráficas que se definen en 'drawdf' son:
7198     'field_degree', 'soln_arrows', 'field_arrows', 'field_grid',
7199     'field_color', 'show_field', 'tstep', 'nsteps', 'duration',
7200     'direction', 'field_tstep', 'field_nsteps' y 'field_duration'.
7201
7202     Objetos gráficos que se heredan del paquete 'draw' incluyen:
7203     'explicit', 'implicit', 'parametric', 'polygon', 'points',
7204     'vector', 'label' y cualesquiera otros soportados por 'draw2d' y
7205     'gr2d'.
7206
7207     Opciones gráficas que se heredan del paquete 'draw' incluyen:
7208     'points_joined', 'color', 'point_type', 'point_size', 'line_width',
7209     'line_type', 'key', 'title', 'xlabel', 'ylabel', 'user_preamble',
7210     'terminal', 'dimensions', 'file_name' y cualesquiera otros
7211     soportados por 'draw2d' y 'gr2d'.
7212
7213     Véase también 'draw2d'.
7214
7215     Los usuarios de wxMaxima y Imaxima pueden hacer uso también
7216     'wxdrawdf', que es idéntica a 'drawdf', pero que inserta el gráfico
7217     en el propio documento utilizando la función 'wxdraw'.
7218
7219     Para hacer uso de esta función, ejecútese primero 'load(drawdf)'.
7220
7221     Ejemplos:
7222
7223          (%i1) load(drawdf)$
7224          (%i2) drawdf(exp(-x)+y)$        /* default vars: x,y */
7225          (%i3) drawdf(exp(-t)+y, [t,y])$ /* default range: [-10,10] */
7226          (%i4) drawdf([y,-9*sin(x)-y/5], [x,1,5], [y,-2,2])$
7227
7228     A efectos de compatibilidad, 'drawdf' acepta la mayor parte de
7229     parámetros soportados por 'plotdf'.
7230
7231          (%i5) drawdf(2*cos(t)-1+y, [t,y], [t,-5,10], [y,-4,9],
7232                       [trajectory_at,0,0])$
7233
7234     'soln_at' y 'solns_at' dibujan soluciones particulares que pasen
7235     por los puntos especificados, utilizando el integrador numérico de
7236     Runge Kutta de cuarto orden.
7237
7238          (%i6) drawdf(2*cos(t)-1+y, [t,-5,10], [y,-4,9],
7239                       solns_at([0,0.1],[0,-0.1]),
7240                       color=blue, soln_at(0,0))$
7241
7242     'field_degree=2' hace que el campo se componga de splines
7243     cuadráticos basados en las derivadas de primer y segundo orden en
7244     cada punto de la malla.  'field_grid=['<COLS>,<ROWS>']' especifica
7245     el número de columnas y filas a utilizar en la malla.
7246
7247          (%i7) drawdf(2*cos(t)-1+y, [t,-5,10], [y,-4,9],
7248                       field_degree=2, field_grid=[20,15],
7249                       solns_at([0,0.1],[0,-0.1]),
7250                       color=blue, soln_at(0,0))$
7251
7252     'soln_arrows=true' añade flechas a las soluciones particulares y,
7253     por defecto, las borra.  También cambia los colores por defecto
7254     para destacar las curvas de las soluciones particulares.
7255
7256          (%i8) drawdf(2*cos(t)-1+y, [t,-5,10], [y,-4,9],
7257                       soln_arrows=true,
7258                       solns_at([0,0.1],[0,-0.1],[0,0]))$
7259
7260     'duration=40' especifica el intervalo temporal de la integración
7261     numérica, cuyo valor por defecto es 10.  La integración se detendrá
7262     automáticamente si la solución se aparta mucho de la región a
7263     dibujar, o si la derivada se vuelve compleja o infinita.  Aquí
7264     también hacemos 'field_degree=2' para dibujar splines cuadráticos.
7265     Las ecuaciones de este ejemplo modelizan un sistema
7266     depredador-presa.
7267
7268          (%i9) drawdf([x*(1-x-y), y*(3/4-y-x/2)], [x,0,1.1], [y,0,1],
7269                       field_degree=2, duration=40,
7270                       soln_arrows=true, point_at(1/2,1/2),
7271                       solns_at([0.1,0.2], [0.2,0.1], [1,0.8], [0.8,1],
7272                                [0.1,0.1], [0.6,0.05], [0.05,0.4],
7273                                [1,0.01], [0.01,0.75]))$
7274
7275     'field_degree='solns' hace que el campo se componga de muchas
7276     pequeñas soluciones calculadas a partir del Runge Kutta de cuarto
7277     orden.
7278
7279          (%i10) drawdf([x*(1-x-y), y*(3/4-y-x/2)], [x,0,1.1], [y,0,1],
7280                        field_degree='solns, duration=40,
7281                        soln_arrows=true, point_at(1/2,1/2),
7282                        solns_at([0.1,0.2], [0.2,0.1], [1,0.8],
7283                                 [0.8,1], [0.1,0.1], [0.6,0.05],
7284                                 [0.05,0.4], [1,0.01], [0.01,0.75]))$
7285
7286     'saddles_at' trata de linearizar automáticamente la ecuación en
7287     cada punto de silla y dibujar la solución numérica correspondiente
7288     a cada vector propio, incluyendo las separatrices.  'tstep=0.05'
7289     establece el salto temporal máximo para el integrador numérico,
7290     cuyo valor por defecto es 0.1.  Las siguientes ecuaciones modelizan
7291     un péndulo amortiguado.
7292
7293          (%i11) drawdf([y,-9*sin(x)-y/5], tstep=0.05,
7294                        soln_arrows=true, point_size=0.5,
7295                        points_at([0,0], [2*%pi,0], [-2*%pi,0]),
7296                        field_degree='solns,
7297                        saddles_at([%pi,0], [-%pi,0]))$
7298
7299     'show_field=false' elimina el campo completamente.
7300
7301          (%i12) drawdf([y,-9*sin(x)-y/5], tstep=0.05,
7302                        show_field=false, soln_arrows=true,
7303                        point_size=0.5,
7304                        points_at([0,0], [2*%pi,0], [-2*%pi,0]),
7305                        saddles_at([3*%pi,0], [-3*%pi,0],
7306                                   [%pi,0], [-%pi,0]))$
7307
7308     'drawdf' pasa todos los parámetros que no reconoce a 'draw2d' o
7309     'gr2d', permitiendo combinar la potencia del paquete 'draw' con
7310     'drawdf'.
7311
7312          (%i13) drawdf(x^2+y^2, [x,-2,2], [y,-2,2], field_color=gray,
7313                        key="soln 1", color=black, soln_at(0,0),
7314                        key="soln 2", color=red, soln_at(0,1),
7315                        key="isocline", color=green, line_width=2,
7316                        nticks=100, parametric(cos(t),sin(t),t,0,2*%pi))$
7317
7318     'drawdf' acepta listas anidadas de opciones y objetos gráficos,
7319     permitiendo el uso de 'makelist' y otras funciones de forma más
7320     flexible para generar gráficos.
7321
7322          (%i14) colors : ['red,'blue,'purple,'orange,'green]$
7323          (%i15) drawdf([x-x*y/2, (x*y - 3*y)/4],
7324                        [x,2.5,3.5], [y,1.5,2.5],
7325                        field_color = gray,
7326                        makelist([ key   = concat("soln",k),
7327                                   color = colors[k],
7328                                   soln_at(3, 2 + k/20) ],
7329                                 k,1,5))$
7330
7331
7332File: maxima.info,  Node: dynamics,  Next: ezunits,  Prev: drawdf,  Up: Top
7333
733449 dynamics
7335***********
7336
7337* Menu:
7338
7339* El paquete dynamics::
7340* Análisis gráfico de sistemas dinámicos discretos::
7341* Visualización usando VTK::
7342
7343
7344File: maxima.info,  Node: El paquete dynamics,  Next: Análisis gráfico de sistemas dinámicos discretos,  Prev: dynamics,  Up: dynamics
7345
734649.1 El paquete dynamics
7347========================
7348
7349El paquete adicional 'dynamics' incluye funciones para visualización 3D,
7350animaciones, análisis gráfico de ecuaciones diferenciales y ecuaciones
7351de diferencias y para resolución numérica de ecuaciones diferenciales.
7352Las funciones para ecuaciones diferenciales se describen en la sección
7353sobre 'Métodos numéricos' y las funciones para representar las gráficas
7354de los conjuntos de Mandelbrot y de Julia se describen en la sección
7355sobre 'Gráficos'.
7356
7357Todas las funciones en este paquete se cargan automáticamente la primera
7358vez que se usan.
7359
7360
7361File: maxima.info,  Node: Análisis gráfico de sistemas dinámicos discretos,  Next: Visualización usando VTK,  Prev: El paquete dynamics,  Up: dynamics
7362
736349.2 Análisis gráfico de sistemas dinámicos discretos
7364=====================================================
7365
7366 -- Función: chaosgame ([[<x1>, <y1>]...[<xm>, <ym>]], [<x0>, <y0>],
7367          <b>, <n>, <opciones>, ...);
7368
7369     Usa el método llamado juego del caos, para producir fractales: se
7370     dibuja un punto inicial (<x0>, <y0>) y luego se elije
7371     aleatoriamente uno de los <m> puntos '['<x1>, <y1>']'...'['<xm>,
7372     <ym>']'.  Después se dibuja un nuevo punto que estará en el
7373     segmento entre el último punto dibujado y el punto que se acabó de
7374     elegir aleatoriamente, a una distancia del punto elegido que será
7375     <b> veces la longitud del segmento.  El proceso se repite <n>
7376     veces.  Este programa acepta las mismas opciones de 'plot2d'.
7377
7378     *Ejemplo*.  Gráfico del triángulo de Sierpinsky:
7379
7380          (%i1) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2,
7381                           30000, [style, dots]);
7382
7383 -- Función: evolution evolution (<F>, <y0>, <n>, ..., <opciones>, ...);
7384
7385     Dibuja <n+1> puntos en una gráfica bidimensional (serie de tiempo),
7386     en que las coordenadas horizontales de los puntos son los números
7387     enteros 0, 1, 2, ..., <n>, y las coordenadas verticales son los
7388     valores <y(n)> correspondientes, obtenidos a partir de la relación
7389     de recurrencia
7390                  y(n+1) = F(y(n))
7391
7392     Con valor inicial <y(0)> igual a <y0>.  <F> deberá ser una
7393     expresión que dependa únicamente de la variable <y> (y no de <n>),
7394     <y0> deberá ser un número real y <n> un número entero positivo.
7395     Esta función acepta las mismas opciones que 'plot2d'.
7396
7397     *Ejemplo*.
7398
7399          (%i1) evolution(cos(y), 2, 11);
7400
7401 -- Función: evolution2d ([<F>, <G>], [<u>, <v>], [<u0>, <y0>], <n>,
7402          <opciones>, ...);
7403
7404     Muestra, en una gráfica bidimensional, los primeros <n+1> puntos de
7405     la sucesión definida a partir del sistema dinámico discreto con
7406     relaciones de recurrencia:
7407                  x(n+1) = F(x(n), y(n))    y(n+1) = G(x(n), y(n))
7408
7409     Con valores iniciales <x0> y <y0>.  <F> y <G> deben ser dos
7410     expresiones que dependan únicamente de <x> y <y>.  Esta función
7411     acepta las mismas opciones que 'plot2d'.
7412
7413     *Ejemplo*.  Evolución de un sistema dinámico discreto en dos
7414     dimensiones:
7415
7416          (%i1) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$
7417          (%i2) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$
7418          (%i3) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);
7419
7420     Y un acercamiento de una pequeña región en ese fractal:
7421
7422          (%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6],
7423                            [y,-0.4,-0.2], [style, dots]);
7424
7425 -- Función: ifs ([<r1>, ..., <rm>], [<A1>,..., <Am>], [[<x1>, <y1>],
7426          ..., [<xm>, <ym>]], [<x0>, <y0>], <n>, <opciones>, ...);
7427
7428     Usa el método del Sistema de Funciones Iteradas (IFS, en inglés
7429     Iterated Function System).  Ese método es semejante al método
7430     descrito en la función 'chaosgame'.  pero en vez de aproximar el
7431     último punto al punto elegido aleatoriamente, las dos coordenadas
7432     del último punto se multiplican por una matriz 2 por 2 <Ai>
7433     correspondiente al punto que fue elegido aleatoriamente.
7434
7435     La selección aleatoria de uno de los <m> puntos atractivos puede
7436     ser realizada con una función de probabilidad no uniforme, definida
7437     con los pesos <r1>,...,<rm>.  Esos pesos deben ser dados en forma
7438     acumulada; por ejemplo, si se quieren 3 puntos con probabilidades
7439     0.2, 0.5 y 0.3, los pesos <r1>, <r2> y <r3> podrían ser 2, 7 y 10,
7440     o cualquier otro grupo de números que tengan la misma proporción.
7441     Esta función acepta las mismas opciones que 'plot2d'.
7442
7443     *Ejemplo*.  El helecho de Barnsley, creado con 4 matrices y 4
7444     puntos:
7445
7446          (%i1) a1: matrix([0.85,0.04],[-0.04,0.85])$
7447          (%i2) a2: matrix([0.2,-0.26],[0.23,0.22])$
7448          (%i3) a3: matrix([-0.15,0.28],[0.26,0.24])$
7449          (%i4) a4: matrix([0,0],[0,0.16])$
7450          (%i5) p1: [0,1.6]$
7451          (%i6) p2: [0,1.6]$
7452          (%i7) p3: [0,0.44]$
7453          (%i8) p4: [0,0]$
7454          (%i9) w: [85,92,99,100]$
7455          (%i10) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]);
7456
7457 -- Función: orbits (<F>, <y0>, <n1>, <n2>, [<x>, <x0>, <xf>, <xstep>],
7458          <opciones>, ...);
7459
7460     Dibuja el diagrama de órbitas de una familia de sistemas dinámicos
7461     discretos unidimensionales, con un parámetro <x>; ese tipo de
7462     diagrama se usa para mostrar las bifurcaciones de un sistema
7463     discreto unidimensional.
7464
7465     La función <F(y)> define una secuencia que comienza con un valor
7466     inicial <y0>, igual que en el caso de la función 'evolution', pero
7467     en este caso la función también dependerá del parámetro <x>, el
7468     cual tomará valores comprendidos en el intervalo de <x0> a <xf>,
7469     con incrementos <xstep>.  Cada valor usado para el parámetro <x> se
7470     muestra en el eje horizontal.  En el eje vertical se mostrarán <n2>
7471     valores de la sucesión <y(n1+1)>,..., <y(n1+n2+1)>, obtenidos
7472     después de dejarla evolucionar durante <n1> iteraciones iniciales.
7473
7474     *Ejemplo*.  Diagrama de órbitas para el mapa cuadrático
7475
7476          (%i1) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]);
7477
7478     Para ampliar la región alrededor de la bifurcación en la parte de
7479     abajo, cerca de x '=' -1.25, se usa el comando:
7480          (%i2) orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8],
7481                       [nticks, 400], [style,dots]);
7482
7483 -- Función: staircase (<F>, <y0>, <n>,<opciones>,...);
7484
7485     Dibuja un diagrama de escalera (o diagrama de red) para la sucesión
7486     definida por la ecuación de recurrencia
7487                  y(n+1) = F(y(n))
7488
7489     La interpretación y valores permitidos de los parámetros de entrada
7490     es la misma que para la función 'evolution'.  Un diagrama de
7491     escalera consiste en una gráfica de la función <F(y)>, junto con la
7492     recta <G(y)> '=' <y>.  Se comienza por dibujar un segmento vertical
7493     desde el punto (<y0>, <y0>) en la recta, hasta el punto de
7494     intersección con la función <F>.  En seguida, desde ese punto se
7495     dibuja un segmento horizontal hasta el punto de intersección con la
7496     recta, (<y1>, <y1>); el procedimiento se repite <n> veces hasta
7497     alcanzar el punto (<yn>, <yn>).  Esta función acepta las mismas
7498     opciones que 'plot2d'.
7499
7500     *Ejemplo*.
7501
7502          (%i1) staircase(cos(y), 1, 11, [y, 0, 1.2]);
7503
7504