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