1 @c English version 2013-04-04
3 * Funciones para los números::
4 * Funciones para los números complejos::
5 * Funciones combinatorias::
6 * Funciones radicales exponenciales y logarítmicas::
7 * Funciones trigonométricas::
14 @node Funciones para los números, Funciones para los números complejos, Funciones matemáticas, Funciones matemáticas
15 @section Funciones para los números
18 @deffn {Función} abs (@var{z})
19 La función @code{abs} representa el valor absoluto y se puede aplicar tanto
20 a argumentos numéricos como simbólicos. Si el argumento @var{z} es un
21 número real o complejo, @code{abs} devuelve el valor absoluto de @var{z}.
22 Si es posible, las expresiones simbólicas que utilizan la función del
23 valor absoluto también se simplifican.
25 Maxima puede derivar, integrar y calcular límites de expresiones
26 que contengan a @code{abs}. El paquete @code{abs_integrate} extiende las
27 capacidades de Maxima para calcular integrales que contengan llamadas a
28 @code{abs}. Véase @code{(%i12)} en el ejemplo de más abajo.
30 Cuando se aplica a una lista o matriz, @code{abs} se distribuye automáticamente
31 sobre sus elementos. De forma similar, también se distribuye sobre los dos
32 miembros de una igualdad. Para cambiar este comportamiento por defecto,
33 véase la variable @code{distribute_over}.
37 Cálculo del valor absoluto de números reales y complejos, incluyendo
38 constantes numéricas e infinitos. El primer ejemplo muestra cómo
39 @code{abs} se distribuye sobre los elementos de una lista.
42 (%i1) abs([-4, 0, 1, 1+%i]);
43 (%o1) [4, 0, 1, sqrt(2)]
45 (%i2) abs((1+%i)*(1-%i));
50 (%i4) abs([inf, infinity, minf]);
54 Simplificación de expresiones que contienen @code{abs}:
66 (%i8) abs(conjugate(x));
70 Integrando y derivando con la función @code{abs}. Nótese que se pueden
71 calcular más integrales que involucren la función @code{abs} si se
72 carga el paquete @code{abs_integrate}. El último ejemplo muestra la
73 transformada de Laplace de @code{abs}. Véase @code{laplace}.
76 (%i9) diff(x*abs(x),x),expand;
79 (%i10) integrate(abs(x),x);
84 (%i11) integrate(x*abs(x),x);
91 (%i12) load("abs_integrate")$
92 (%i13) integrate(x*abs(x),x);
95 (%o13) --------- - ------------
98 (%i14) integrate(abs(x),x,-2,%pi);
104 (%i15) laplace(abs(x),x,s);
114 @deffn {Función} ceiling (@var{x})
115 Si @var{x} es un número real, devuelve el menor entero mayor o igual que @var{x}.
117 Si @var{x} es una expresión constante (por ejemplo, @code{10 * %pi}),
118 @code{ceiling} evalúa @var{x} haciendo uso de números grandes en coma flotante (big floats), aplicando a continuación
119 @code{ceiling} al número decimal obtenido. Puesto que @code{ceiling} hace evaluaciones en coma flotante, es posible, pero improbable, que esta función devuelva un valor erróneo para entradas constantes. Para evitar estos errores, la evaluación en punto flotante se lleva a cabo utilizando tres valores para @code{fpprec}.
121 Para argumentos no constantes, @code{ceiling} intenta devolver un valor simplificado. Aquí se presentan algunos ejemplos sobre las simplificaciones que @code{ceiling} es capaz de hacer:
124 @c ceiling (ceiling (x));
125 @c ceiling (floor (x));
126 @c declare (n, integer)$
127 @c [ceiling (n), ceiling (abs (n)), ceiling (max (n, 6))];
128 @c assume (x > 0, x < 1)$
130 @c tex (ceiling (a));
133 (%i1) ceiling (ceiling (x));
135 (%i2) ceiling (floor (x));
137 (%i3) declare (n, integer)$
138 (%i4) [ceiling (n), ceiling (abs (n)), ceiling (max (n, 6))];
139 (%o4) [n, abs(n), max(n, 6)]
140 (%i5) assume (x > 0, x < 1)$
143 (%i7) tex (ceiling (a));
144 $$\left \lceil a \right \rceil$$
148 La función @code{ceiling} no se extiende automáticamente a los elementos de listas y matrices.
149 Por último, para todos los argumentos que tengan una forma compleja, @code{ceiling} devuelve una forma nominal.
151 Si el rango de una función es subconjunto de los números enteros, entonces puede ser declarada como @code{integervalued}. Tanto @code{ceiling} como @code{floor} son funciones que hacen uso de esta información; por ejemplo:
154 @c declare (f, integervalued)$
156 @c ceiling (f(x) - 1);
159 (%i1) declare (f, integervalued)$
162 (%i3) ceiling (f(x) - 1);
169 @c unitfrac(r) := block([uf : [], q],
170 @c if not(ratnump(r)) then
171 @c error("unitfrac: argument must be a rational number"),
173 @c uf : cons(q : 1/ceiling(1/r), uf),
185 (%i1) unitfrac(r) := block([uf : [], q],
186 if not(ratnump(r)) then
187 error("unitfrac: argument must be a rational number"),
189 uf : cons(q : 1/ceiling(1/r), uf),
193 (%i2) unitfrac (9/10);
197 (%i3) apply ("+", %);
201 (%i4) unitfrac (-9/10);
205 (%i5) apply ("+", %);
209 (%i6) unitfrac (36/37);
211 (%o6) [-, -, -, --, ----]
213 (%i7) apply ("+", %);
222 @deffn {Función} entier (@var{x})
223 Devuelve el mayor entero menor o igual a @var{x}, siendo @var{x} numérico. La función @code{fix} (como en
224 @code{fixnum}) es un sinónimo, de modo que @code{fix(@var{x})} hace justamente lo mismo.
230 @deffn {Función} floor (@var{x})
232 Si @var{x} es un número real, devuelve el mayor entero menor o igual que @var{x}.
234 Si @var{x} es una expresión constante (por ejemplo, @code{10 * %pi}),
235 @code{floor} evalúa @var{x} haciendo uso de números grandes en coma flotante (big floats), aplicando a continuación
236 @code{floor} al número decimal obtenido. Puesto que @code{floor} hace evaluaciones en coma flotante, es posible, pero improbable, que esta función devuelva un valor erróneo para entradas constantes. Para evitar estos errores, la evaluación en punto flotante se lleva a cabo utilizando tres valores para @code{fpprec}.
238 Para argumentos no constantes, @code{floor} intenta devolver un valor simplificado. Aquí se presentan algunos ejemplos sobre las simplificaciones que @code{floor} es capaz de hacer:
241 @c floor (ceiling (x));
242 @c floor (floor (x));
243 @c declare (n, integer)$
244 @c [floor (n), floor (abs (n)), floor (min (n, 6))];
245 @c assume (x > 0, x < 1)$
250 (%i1) floor (ceiling (x));
252 (%i2) floor (floor (x));
254 (%i3) declare (n, integer)$
255 (%i4) [floor (n), floor (abs (n)), floor (min (n, 6))];
256 (%o4) [n, abs(n), min(n, 6)]
257 (%i5) assume (x > 0, x < 1)$
260 (%i7) tex (floor (a));
261 $$\left \lfloor a \right \rfloor$$
265 La función @code{floor} no se extiende automáticamente a los elementos de listas y matrices.
266 Por último, para todos los argumentos que tengan una forma compleja, @code{floor} devuelve una forma nominal.
268 Si el rango de una función es subconjunto de los números enteros, entonces puede ser declarada como @code{integervalued}. Tanto @code{ceiling} como @code{floor} son funciones que hacen uso de esta información; por ejemplo:
271 @c declare (f, integervalued)$
273 @c ceiling (f(x) - 1);
276 (%i1) declare (f, integervalued)$
279 (%i3) ceiling (f(x) - 1);
286 @deffn {Función} fix (@var{x})
287 Es un sinónimo de @code{entier (@var{x})}.
293 @deffn {Función} lmax (@var{L})
295 Si @var{L} es una lista o conjunto, devuelve @code{apply ('max, args (@var{L}))}. Si @var{L} no es una lista o conjunto, envía un mensaje de error.
300 @deffn {Función} lmin (@var{L})
302 Si @var{L} es una lista o conjunto, devuelve @code{apply ('min, args (@var{L}))}. Si @var{L} no es una lista o conjunto, envía un mensaje de error.
307 @deffn {Función} max (@var{x_1}, ..., @var{x_n})
308 Devuelve un valor simplificado de la mayor de las expresiones desde @var{x_1} hasta @var{x_n}.
309 Si @code{get (trylevel, maxmin)} es 2 o más, @code{max} aplica la simplificación
310 @code{max (e, -e) --> |e|}. Si @code{get (trylevel, maxmin)} es 3 o más, @var{max} intenta
311 eliminar las expresiones que estén entre otros dos de los argumentos dados; por ejemplo,
312 @code{max (x, 2*x, 3*x) --> max (x, 3*x)}. Para asignar el valor 2 a @code{trylevel} se puede hacer
313 @code{put (trylevel, 2, maxmin)}.
317 @deffn {Función} min (@var{x_1}, ..., @var{x_n})
318 Devuelve un valor simplificado de la menor de las expresiones desde @var{x_1} hasta @var{x_n}.
319 Si @code{get (trylevel, maxmin)} es 2 o más, @code{min} aplica la simplificación
320 @code{min (e, -e) --> |e|}. Si @code{get (trylevel, maxmin)} es 3 o más, @var{min} intenta
321 eliminar las expresiones que estén entre otros dos de los argumentos dados; por ejemplo,
322 @code{min (x, 2*x, 3*x) --> min (x, 3*x)}. Para asignar el valor 2 a @code{trylevel} se puede hacer
323 @code{put (trylevel, 2, maxmin)}.
329 @deffn {Función} round (@var{x})
330 Si @var{x} es un número real, la función devuelve el entero más
331 próximo a @var{x}. Los múltiplos de 1/2 se redondean al entero par más próximo.
332 La evaluación de @var{x} es similar a @code{floor} y @code{ceiling}.
338 @deffn {Función} signum (@var{x})
339 Tanto sea @var{x} real o complejo, la función @code{signum} devuelve 0 si @var{x}
340 es cero. Para un valor no nulo de @var{x}, la función devuelve @code{x/abs(x)}.
342 Para valores no numéricos de @var{x}, Maxima intenta determinar el
343 signo del argumento. Cuando es negativo, cero o positivo, @code{signum}
344 devuelve -1, 0 o 1, respectivamente. En caso de no poder determinarse,
345 @code{signum} devuelve una forma simplificada equivalente. Estas
346 simplificaciones incluyen la transformación de @code{signum(-x)}
347 en @code{-signum(x)} y la de @code{signum(x*y)} en
348 @code{signum(x) * signum(y)}.
350 La función @code{signum} es distributiva respecto de listas,
351 matrices o ecuaciones. Véase @code{distribute_over}.
362 @node Funciones para los números complejos, Funciones combinatorias, Funciones para los números, Funciones matemáticas
363 @section Funciones para los números complejos
366 @deffn {Función} cabs (@var{expr})
367 Calcula el valor absoluto de una expresión que representa a un número
368 complejo. Al contrario que @code{abs}, la función @code{cabs} siempre
369 descompone su argumento en sus partes real e imaginaria. Si @code{x} e
370 @code{y} representan variables o expresiones reales, la función @code{cabs}
371 calcula el valor absoluto de @code{x + %i*y} como
377 La función @code{cabs} puede utilizar propiedades como la simetría
378 de funciones complejas para calcular el valor absoluto de una expresión.
380 @code{cabs} no es una función apropiada para cálculos simbólicos; en tales
381 casos, que incluyen la integración, diferenciación y límites que
382 contienen valores absolutos, es mejor utilizar @code{abs}.
384 El resultado devuelto por @code{cabs} puede incluir la función de valor absoluto,
385 @code{abs}, y el arco tangente, @code{atan2}.
387 Cuando se aplica a una lista o matriz, @code{cabs} automáticamente se distribuye
388 sobre sus elementos. También se distribuye sobre los dos miembros de una
391 Para otras formas de operar con números complejos, véanse las funciones
392 @code{rectform}, @code{realpart}, @code{imagpart}, @code{carg}, @code{conjugate}
397 Ejemplos con @code{sqrt} and @code{sin}:
400 (%i1) cabs(sqrt(1+%i*x));
403 (%i2) cabs(sin(x+%i*y));
405 (%o2) sqrt(cos (x) sinh (y) + sin (x) cosh (y))
408 La simetría especular de la función de error @code{erf} se utiliza
409 para calcular el valor absoluto del argumento complejo:
412 (%i3) cabs(erf(x+%i*y));
414 (erf(%i y + x) - erf(%i y - x))
415 (%o3) sqrt(--------------------------------
418 (erf(%i y + x) + erf(%i y - x))
419 - --------------------------------)
423 Dado que Maxima reconoce algunas identidades complejas de las funciones de
424 Bessel, le permite calcular su valor absoluto cuando tiene argumentos
425 complejos. Un ejemplo para @code{bessel_j}:
428 (%i4) cabs(bessel_j(1,%i));
429 (%o4) abs(bessel_j(1, %i))
436 @deffn {Función} carg (@var{z})
437 Devuelve el argumento complejo de @var{z}.
438 El argumento complejo es un ángulo @code{theta} en @code{(-%pi, %pi]}
439 tal que @code{r exp (theta %i) = @var{z}} donde @code{r} es la magnitud de @var{z}.
441 La función @code{carg} es computacional, no simplificativa.
442 @c PROBABLY NEED TO EXPLAIN IMPLICATIONS OF ABOVE STATEMENT
444 Véanse también @code{abs} (módulo complejo), @code{polarform}, @code{rectform},
445 @code{realpart} y @code{imagpart}.
453 @c carg (exp (%pi * %i));
454 @c carg (exp (3/2 * %pi * %i));
455 @c carg (17 * exp (2 * %i));
465 (%i3) carg (exp (%i));
467 (%i4) carg (exp (%pi * %i));
469 (%i5) carg (exp (3/2 * %pi * %i));
473 (%i6) carg (17 * exp (2 * %i));
481 @deffn {Función} conjugate (@var{x})
482 Devuelve el conjugado complejo de @var{x}.
485 @c declare ([aa, bb], real, cc, complex, ii, imaginary);
486 @c conjugate (aa + bb*%i);
489 @c conjugate (xx + yy);
492 (%i1) declare ([aa, bb], real, cc, complex, ii, imaginary);
495 (%i2) conjugate (aa + bb*%i);
498 (%i3) conjugate (cc);
501 (%i4) conjugate (ii);
504 (%i5) conjugate (xx + yy);
506 (%o5) conjugate(yy) + conjugate(xx)
513 @deffn {Función} imagpart (@var{expr})
514 Devuelve la parte imaginaria de la expresión @var{expr}.
516 La función @code{imagpart} es computacional,
518 @c PROBABLY NEED TO EXPLAIN IMPLICATIONS OF ABOVE STATEMENT
519 @c SEE ALSO SF BUG REPORT # 902290
521 Véanse también @code{abs}, @code{carg}, @code{polarform}, @code{rectform} y @code{realpart}.
523 @c NEED EXAMPLES HERE
529 @deffn {Función} polarform (@var{expr})
530 Devuelve una expresión de la forma @code{r %e^(%i theta)} equivalente a @var{expr},
531 con @code{r} y @code{theta} son reales.
539 @deffn {Función} realpart (@var{expr})
540 Devuelve la parte real de @var{expr}. La funciones @code{realpart} y @code{imagpart} operan también con expresiones que contengan funciones trigonométricas e hiperbólicas, raíces cuadradas, logaritmos y exponentes.
545 @deffn {Función} rectform (@var{expr})
546 Devuelve una expresión de la forma @code{a + b %i} equivalente a @var{expr}, con @var{a} y @var{b} reales.
556 @node Funciones combinatorias, Funciones radicales exponenciales y logarítmicas, Funciones para los números complejos, Funciones matemáticas
557 @section Funciones combinatorias
563 @fnindex Doble factorial
565 El operador doble factorial.
567 Para un número entero, de punto flotante o racional @code{n},
568 @code{n!!} se evaluará como el producto de @code{n (n-2) (n-4) (n-6) ... (n - 2 (k-1))}
569 donde @code{k} es igual a @code{entier(n/2)}, que es, el mayor entero
570 menor o igual a @code{n/2}.
571 Note que esta definición no coincide con otras definciones publicadas para argumentos, los cuales no son enteros.
573 @c REPORTED TO BUG TRACKER AS BUG # 1093138 !!!
575 Para un entero par (o impar) @code{n}, @code{n!} se evalua el producto de
576 todos los enteros pares (o impares) consecutivos desde 2 (o 1) por @code{n} inclusive.
578 Para un argumento @code{n} el cual no es un número entero, punto flotante o racional, @code{n!!} produce una forma de nombre @code{genfact (n, n/2, 2)}.
580 @c n!! IS NEITHER SIMPLIFIED NOR EVALUATED IN THIS CASE -- MENTION THAT? OR TOO MUCH DETAIL ???
587 @deffn {Función} binomial (@var{x}, @var{y})
588 Es el coeficiente binomial @code{@var{x}!/(@var{y}! (@var{x} - @var{y})!)}.
589 Si @var{x} y @var{y} son enteros, entonces se calcula el valor numérico
590 del coeficiente binomial. Si @var{y} o @var{x - y} son enteros,
591 el coeficiente binomial se expresa como un polinomio.
597 @c 11! / 7! / (11 - 7)!;
599 @c binomial (x + 7, x);
603 (%i1) binomial (11, 7);
605 (%i2) 11! / 7! / (11 - 7)!;
607 (%i3) binomial (x, 7);
608 (x - 6) (x - 5) (x - 4) (x - 3) (x - 2) (x - 1) x
609 (%o3) -------------------------------------------------
611 (%i4) binomial (x + 7, x);
612 (x + 1) (x + 2) (x + 3) (x + 4) (x + 5) (x + 6) (x + 7)
613 (%o4) -------------------------------------------------------
615 (%i5) binomial (11, y);
616 (%o5) binomial(11, y)
622 @deffn {Función} factcomb (@var{expr})
623 Trata de combinar los coeficientes de los factoriales de @var{expr} con los mismos factoriales, convirtiendo, por ejemplo, @code{(n + 1)*n!} en @code{(n + 1)!}.
625 Si la variable @code{sumsplitfact} vale @code{false} hará que @code{minfactorial} se aplique después de @code{factcomb}.
631 @deffn {Función} factorial (@var{x})
634 Representa la función factorial. Maxima considera @code{factorial (@var{x})}
635 y @code{@var{x}!} como sinónimos.
637 Para cualquier número complejo @code{x}, excepto para
638 enteros negativos, @code{x!} se define como @code{gamma(x+1)}.
640 Para un entero @code{x}, @code{x!} se reduce al producto de los enteros
641 desde 1 hasta @code{x} inclusive. @code{0!} se reduce a 1.
642 Para un número real o complejo en formato de coma flotante @code{x},
643 @code{x!} se reduce al valor de @code{gamma(x+1)}. Cuando
644 @code{x} es igual a @code{n/2}, siendo @code{n} un entero impar, entonces
645 @code{x!} se reduce a un factor racional multiplicado por @code{sqrt(%pi)}
646 (pues @code{gamma(1/2)}) es igual a @code{sqrt(%pi)}).
648 Las variables opcionales @code{factlim} y @code{gammalim} controlan la
649 evaluación numérica de factoriales de argumentos enteros y racionales.
651 Las funciones @code{minfactorial} y @code{factcomb} simplifican expresiones
652 que contiene factoriales.
654 Véanse también @code{factlim}, @code{gammalim}, @code{minfactorial} y
657 Las funciones @code{gamma}, @code{bffac} y @code{cbffac} son variaciones de
658 la función matemática gamma. Las funciones @code{bffac} y @code{cbffac}
659 son llamadas internamente desde @code{gamma} para evaluar la función gamma
660 de números reales y complejos decimales con precisión de reales grandes
663 Las funciones @code{makegamma} substituye a @code{gamma} para factoriales
664 y funciones relacionadas.
666 Maxima reconoce la derivada de la función factorial y los límites
667 para ciertos valores específicos, tales como los enteros negativos.
669 La variable opcional @code{factorial_expand} controla la simplificación de
670 expresiones como @code{(n+x)!}, para @code{n} entero.
672 Véase también @code{binomial}.
676 El factorial de un entero se reduce a un número exacto, a menos que
677 el argumento sea mayor que @code{factlim}. Los factoriales de números
678 reales o complejos se evalúan como decimales de coma flotante.
682 @c [0!, (7/2)!, 8!, 20!];
683 @c [4,77!, (1.0+%i)!];
684 @c [2.86b0!, 1.0b0+%i)!];
689 (%i2) [0!, (7/2)!, 8!, 20!];
691 (%o2) [1, -------------, 40320, 20!]
693 (%i3) [4.77!, (1.0+%i)!];
694 (%o3) [81.44668037931197,
695 .3430658398165454 %i + .6529654964201665]
696 (%i4) [2.86b0!, (1.0b0+%i)!];
697 (%o4) [5.046635586910012b0,
698 3.430658398165454b-1 %i + 6.529654964201667b-1]
701 El factorial de una constante conocida o de una expresión general
702 no se calcula. Pero puede ser posible reducir el factorial después de
703 evaluado el argumento.
706 @c [(%i + 1)!, %pi!, %e!, (cos(1) + sin(1))!];
707 @c ev (%, numer, %enumer);
710 (%i1) [(%i + 1)!, %pi!, %e!, (cos(1) + sin(1))!];
711 (%o1) [(%i + 1)!, %pi!, %e!, (sin(1) + cos(1))!]
712 (%i2) ev (%, numer, %enumer);
713 (%o2) [.3430658398165454 %i + .6529654964201665,
715 4.260820476357003, 1.227580202486819]
718 Los factoriales son simplificados o reducidos, no evaluados.
719 Así @code{x!} puede ser reemplazado en una expresión
723 @c '([0!, (7/2)!, 4.77!, 8!, 20!]);
726 (%i1) '([0!, (7/2)!, 4.77!, 8!, 20!]);
728 (%o1) [1, -------------, 81.44668037931199, 40320,
733 Maxima reconoce la derivada de la función factorial.
744 La variable opcional @code{factorial_expand} controla la simplificación de
745 expresiones con la función factorial.
748 @c (n+1)!/n!,factorial_expand:true;
751 (%i1) (n+1)!/n!,factorial_expand:true;
758 @defvr {Variable opcional} factlim
759 Valor por defecto: -1
761 La variable @code{factlim} especifica el mayor factorial que será expandido automáticamente. Si su valor es -1, entonces se expandirán todos los enteros.
767 @defvr {Variable opcional} factorial_expand
768 Valor por defecto: false
770 La variable @code{factorial_expand} controla la simplificación
771 de expresiones tales como @code{(n+1)!}, siendo @code{n} un entero.
773 Véase @code{!} para un ejemplo.
779 @c IS THIS DEFINITION CORRECT ??
780 @deffn {Función} genfact (@var{x}, @var{y}, @var{z})
781 Devuelve el factorial generalizado, definido como
782 @code{x (x-z) (x - 2 z) ... (x - (y - 1) z)}. Así, para el entero @var{x},
783 @code{genfact (x, x, 1) = x!} y @code{genfact (x, x/2, 2) = x!!}.
789 @deffn {Función} minfactorial (@var{expr})
791 Busca en @var{expr} la presencia de dos factoriales que solo se
792 diferencien en una unidad; en tal caso, @code{minfactorial}
793 devuelve una expresión simplificada.
800 (%i2) minfactorial (%);
802 (%o2) ---------------
809 @defvr {Variable opcional} sumsplitfact
810 Valor por defecto: @code{true}
812 Si @code{sumsplitfact} vale @code{false},
813 @c "IS APPLIED" -- UNDER WHAT CIRCUMSTANCES EXACTLY ??
814 @code{minfactorial} se aplica después de @code{factcomb}.
826 @node Funciones radicales exponenciales y logarítmicas, Funciones trigonométricas, Funciones combinatorias, Funciones matemáticas
827 @section Funciones radicales, exponenciales y logarítmicas
830 @defvr {Variable opcional} %e_to_numlog
831 Valor por defecto: @code{false}
833 Si @code{%e_to_numlog} vale @code{true}, @code{r} es un número racional y @code{x} una expresión, @code{%e^(r*log(x))} se reduce a @code{x^r} . Téngase en cuenta que la instrucción @code{radcan} también hace este tipo de transformaciones, así como otras más complicadas. La instrucción @code{logcontract} "contrae" expresiones que contienen algún @code{log}.
837 @defvr {Variable opcional} %emode
838 Valor por defecto: @code{true}
840 Si @code{%emode} vale @code{true},
841 @code{%e^(%pi %i x)} se simplifica como sigue.
843 @code{%e^(%pi %i x)} se simplifica a @code{cos (%pi x) + %i sin (%pi x)} si @code{x} es
844 un número decimal de coma flotante, un entero o un múltiplo de 1/2, 1/3, 1/4 o 1/6, y luego se sigue simplificando.
846 Para otros valores numéricos de @code{x},
847 @code{%e^(%pi %i x)} se simplifica a @code{%e^(%pi %i y)} donde @code{y} es @code{x - 2 k}
848 para algún entero @code{k} tal que @code{abs(y) < 1}.
850 Si @code{%emode} vale @code{false}, no se realizan simplificaciones especiales a @code{%e^(%pi %i x)}.
852 @c NEED EXAMPLES HERE
856 @defvr {Variable opcional} %enumer
857 Valor por defecto: @code{false}
859 Si la variable @code{%enumer} vale @code{true} hace que @code{%e} se reemplace por
860 2.718... siempre que @code{numer} valga @code{true}.
862 Si @code{%enumer} vale @code{false}, esta sustitución se realiza sólo si el exponente en @code{%e^x} tiene un valor numérico.
864 Véanse también @code{ev} y @code{numer}.
866 @c NEED EXAMPLES HERE
872 @deffn {Función} exp (@var{x})
873 Representa la función exponencial.
874 La expresión @code{exp (@var{x})} en la entrada se simplifica en @code{%e^@var{x}};
875 @code{exp} no aparece en expresiones simplificadas.
877 Si la variable @code{demoivre} vale @code{true} hace que @code{%e^(a + b %i)} se simplifique a
878 @code{%e^(a (cos(b) + %i sin(b)))} si @code{b} no contiene a @code{%i}. Véase @code{demoivre}.
880 Si la variable @code{%emode} vale @code{true},
881 hace que @code{%e^(%pi %i x)} se simplifique. Véase @code{%emode}.
883 Si la variable @code{%enumer} vale @code{true} hace que @code{%e} se reemplace por
884 2.718... siempre que @code{numer} valga @code{true}. Véase @code{%enumer}.
890 @deffn {Función} li [@var{s}] (@var{z})
892 Representa la función polilogarítmica de orden @var{s} y argumento @var{z},
893 definida por la serie infinita
896 $${\rm Li}_s \left(z\right) = \sum_{k=1}^\infty {z^k \over k^s}$$
910 @code{li [1]} es @code{- log (1 - z)}.
911 @code{li [2]} y @code{li [3]} son las funciones di- y trilogaritmo, respectivamente.
913 Cuando el orden es 1, el polilogaritmo se simplifica a @code{- log (1 - z)},
914 el cual a su vez se reduce a un valor numérico si @var{z} es un número
915 real o complejo en coma flotante o si está presente el término @code{numer}.
917 Cuando el orden es 2 ó 3,
918 el polilogaritmo se reduce a un valor numérico si @var{z} es
919 un número real en coma flotante o si está presente el término @code{numer}.
925 @c integrate ((log (1 - t)) / t, t, 0, x);
927 @c li [2] (7), numer;
929 @c li [2] (7), numer;
930 @c L : makelist (i / 4.0, i, 0, 8);
931 @c map (lambda ([x], li [2] (x)), L);
932 @c map (lambda ([x], li [3] (x)), L);
935 (%i1) assume (x > 0);
937 (%i2) integrate ((log (1 - t)) / t, t, 0, x);
943 (%i4) li [2] (7), numer;
944 (%o4) 1.24827317833392 - 6.113257021832577 %i
948 (%i6) li [2] (7), numer;
949 (%o6) 1.24827317833392 - 6.113257021832577 %i
950 (%i7) L : makelist (i / 4.0, i, 0, 8);
951 (%o7) [0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]
952 (%i8) map (lambda ([x], li [2] (x)), L);
953 (%o8) [0, .2676526384986274, .5822405249432515,
954 .9784693966661848, 1.64493407, 2.190177004178597
955 - .7010261407036192 %i, 2.374395264042415
956 - 1.273806203464065 %i, 2.448686757245154
957 - 1.758084846201883 %i, 2.467401098097648
958 - 2.177586087815347 %i]
959 (%i9) map (lambda ([x], li [3] (x)), L);
960 (%o9) [0, .2584613953442624, 0.537213192678042,
961 .8444258046482203, 1.2020569, 1.642866878950322
962 - .07821473130035025 %i, 2.060877505514697
963 - .2582419849982037 %i, 2.433418896388322
964 - .4919260182322965 %i, 2.762071904015935
965 - .7546938285978846 %i]
973 @deffn {Función} log (@var{x})
974 Representa el logaritmo natural (en base @math{e}) de @var{x}.
976 Maxima no tiene definida una función para el logaritmo de base 10 u
977 otras bases. El usuario puede hacer uso de la definición
978 @code{log10(x) := log(x) / log(10)}.
980 La simplificación y evaluación de logaritmos se controla con
981 ciertas variables globales:
984 @item @code{logexpand}
985 hace que @code{log(a^b)} se convierta en @code{b*log(a)}.
986 Si toma el valor @code{all}, @code{log(a*b)} también se reducirá a @code{log(a)+log(b)}.
987 Si toma el valor @code{super}, entonces @code{log(a/b)} también se reducirá a
988 @code{log(a)-log(b)}, siendo @code{a/b} racional con @code{a#1},
989 (la expresión @code{log(1/b)}, para @code{b} entero, se simplifica siempre).
990 Si toma el valor @code{false}, se desactivarán todas estas simplificaciones.
993 si vale @code{false}, entonces no se transforma @code{%e} a potencias que contengan logaritmos.
995 @item @code{lognegint}
996 si vale @code{true} se aplica la regla @code{log(-n)} -> @code{log(n)+%i*%pi},
997 siendo @code{n} un entero positivo.
999 @item @code{%e_to_numlog}
1000 si vale @code{true}, @code{r} es un número racional y @code{x} una expresión,
1001 @code{%e^(r*log(x))} se reduce a @code{x^r}. Téngase en cuenta que la
1002 instrucción @code{radcan} también hace este tipo de transformaciones,
1003 así como otras más complicadas. La instrucción @code{logcontract}
1004 "contrae" expresiones que contengan algún @code{log}.
1011 @defvr {Variable opcional} logabs
1012 Valor por defecto: @code{false}
1014 Cuando se calculan integrales indefinidas en las que se generan logaritmos, como en @code{integrate(1/x,x)}, el resultado se devuelve de la forma @code{log(abs(...))} si @code{logabs} vale @code{true}, o de la forma @code{log(...)} si
1015 @code{logabs} vale @code{false}. En la integración definida se hace la asignación @code{logabs:true}, ya que aquí es normalmente necesario evaluar la integral indefinida en los extremos del intervalo de integración.
1020 @defvr {Variable opcional} logarc
1021 @defvrx {Función} logarc (@var{expr})
1023 Si la variable global @code{logarc} toma el valor @code{true},
1024 las funciones circulares e hiperbólicas inversas se
1025 reemplazan por funciones logarítmicas equivalentes.
1026 El valor por defecto de @code{logarc} es @code{false}.
1028 La función @code{logarc(@var{expr})} realiza la anterior transformación
1029 en la expresión @var{expr} sin necesidad de alterar el valor de la
1030 variable global @code{logarc}.
1036 @defvr {Variable opcional} logconcoeffp
1037 Valor por defecto: @code{false}
1039 Controla qué coeficientes se contraen cuando se utiliza @code{logcontract}. Se le puede asignar el nombre de una función de predicado de un argumento; por ejemplo, si se quiere introducir raíces cuadradas, se puede hacer @code{logconcoeffp:'logconfun$ logconfun(m):=featurep(m,integer) or ratnump(m)$} . Entonces
1040 @code{logcontract(1/2*log(x));} devolverá @code{log(sqrt(x))}.
1044 @deffn {Función} logcontract (@var{expr})
1045 Analiza la expresión @var{expr} recursivamente, transformando subexpresiones de la forma @code{a1*log(b1) + a2*log(b2) + c} en @code{log(ratsimp(b1^a1 * b2^a2)) + c}
1048 @c 2*(a*log(x) + 2*a*log(y))$
1052 (%i1) 2*(a*log(x) + 2*a*log(y))$
1053 (%i2) logcontract(%);
1059 Si se hace @code{declare(n,integer);} entonces @code{logcontract(2*a*n*log(x));} da
1060 @code{a*log(x^(2*n))}. Los coeficientes que se contraen de esta manera son aquellos que como el 2 y el @code{n} satisfacen
1061 @code{featurep(coeff,integer)}. El usuario puede controlar qué coeficientes se contraen asignándole a la variable global @code{logconcoeffp} el nombre de una función de predicado de un argumento; por ejemplo, si se quiere introducir raíces cuadradas, se puede hacer @code{logconcoeffp:'logconfun$ logconfun(m):=featurep(m,integer) or ratnump(m)$} . Entonces @code{logcontract(1/2*log(x));} devolverá @code{log(sqrt(x))}.
1066 @defvr {Variable opcional} logexpand
1067 Valor por defecto: @code{true}
1069 Si @code{logexpand} vale @code{true} hace que @code{log(a^b)} se convierta
1070 en @code{b*log(a)}. Si toma el valor @code{all}, @code{log(a*b)} también se
1071 reducirá a @code{log(a)+log(b)}. Si toma el valor @code{super}, entonces
1072 @code{log(a/b)} también se reducirá a @code{log(a)-log(b)}, siendo
1073 @code{a/b} racional con @code{a#1}, (la expresión @code{log(1/b)}, para
1074 @code{b} entero, se simplifica siempre). Si toma el valor @code{false},
1075 se desactivarán todas estas simplificaciones.
1080 @defvr {Variable opcional} lognegint
1081 Valor por defecto: @code{false}
1083 Si @code{lognegint} vale @code{true} se aplica la regla @code{log(-n)} -> @code{log(n)+%i*%pi} siendo @code{n} un entero positivo.
1089 @defvr {Variable opcional} logsimp
1090 Valor por defecto: @code{true}
1092 Si @code{logsimp} vale @code{false}, entonces no se transforma @code{%e} a potencias que contengan logaritmos.
1098 @deffn {Función} plog (@var{x})
1099 Representa la rama principal del logaritmo natural complejo con @code{-%pi} < @code{carg(@var{x})} <= @code{+%pi} .
1105 @deffn {Función} sqrt (@var{x})
1106 Raíz cuadrada de @var{x}. Se representa internamente por @code{@var{x}^(1/2)}. Véase también @code{rootscontract}.
1108 Si la variable @code{radexpand} vale @code{true} hará que las raíces @code{n}-ésimas de los factores de un producto que sean potencias de @code{n} sean extraídas del radical; por ejemplo, @code{sqrt(16*x^2)} se convertirá en @code{4*x} sólo si @code{radexpand} vale @code{true}.
1120 @node Funciones trigonométricas, Números aleatorios, Funciones radicales exponenciales y logarítmicas, Funciones matemáticas
1121 @section Funciones trigonométricas
1125 * Introducción a la trigonometría::
1126 * Funciones y variables para trigonometría::
1130 @node Introducción a la trigonometría, Funciones y variables para trigonometría, Funciones trigonométricas, Funciones trigonométricas
1131 @subsection Introducción a la trigonometría
1134 Maxima reconoce muchas funciones trigonométricas. No están programadas todas las identidades trigonométricas, pero el usuario puede añadir muchas de ellas haciendo uso de las técnicas basadas en patrones. Las funciones trigonométricas definidas en Maxima son: @code{acos},
1135 @code{acosh}, @code{acot}, @code{acoth}, @code{acsc},
1136 @code{acsch}, @code{asec}, @code{asech}, @code{asin},
1137 @code{asinh}, @code{atan}, @code{atanh}, @code{cos},
1138 @code{cosh}, @code{cot}, @code{coth}, @code{csc}, @code{csch},
1139 @code{sec}, @code{sech}, @code{sin}, @code{sinh}, @code{tan} y
1140 @code{tanh}. Hay también un determinado número de instrucciones especiales para manipular funciones trigonométricas; véanse a este respecto @code{trigexpand},
1141 @code{trigreduce} y la variable @code{trigsign}. Dos paquetes adicionales amplían las reglas de simplificación de Maxima, @code{ntrig} y @code{atrig1}. Ejecútese @code{describe(@var{command})} para más detalles.
1150 @node Funciones y variables para trigonometría, , Introducción a la trigonometría, Funciones trigonométricas
1151 @subsection Funciones y variables para trigonometría
1156 @defvr {Variable opcional} %piargs
1157 Valor por defecto: @code{true}
1159 Cuando @code{%piargs} vale @code{true}, las funciones trigonométricas
1160 se simplifican a constantes algebraicas cuando el argumento es múltiplo
1163 @math{\pi}, @math{\pi/2}, @math{\pi/3}, @math{\pi/4} o @math{\pi/6}.
1166 @math{%pi}, @math{%pi/2}, @math{%pi/3}, @math{%pi/4} o @math{%pi/6}.
1170 Maxima conoce algunas identidades aplicables cuando @math{\pi}, etc.,
1173 Maxima conoce algunas identidades aplicables cuando @math{%pi}, etc.,
1175 se multiplican por una variable entera (esto es, un símbolo
1176 declarado como entero).
1182 @c [sin (%pi), sin (%pi/2), sin (%pi/3)];
1183 @c [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
1185 @c [sin (%pi), sin (%pi/2), sin (%pi/3)];
1186 @c [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
1187 @c [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3),
1188 @c cos (sqrt(2)*%pi/3)];
1191 (%i1) %piargs : false$
1193 (%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
1195 (%o2) [sin(%pi), sin(---), sin(---)]
1199 (%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
1201 (%o3) [sin(---), sin(---), sin(---)]
1204 (%i4) %piargs : true$
1206 (%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
1208 (%o5) [0, 1, -------]
1212 (%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
1214 (%o6) [-------, sin(---), -]
1218 (%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3),
1219 cos (sqrt(2)*%pi/3)];
1221 (%o7) [-, - -, sqrt(3), cos(-----------)]
1228 Se aplican ciertas identidades cuando @math{\pi} o @math{\pi/2} se multiplican por una variable entera.
1231 Se aplican ciertas identidades cuando @math{%pi} o @math{%pi/2} se multiplican por una variable entera.
1235 @c declare (n, integer, m, even)$
1236 @c [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m),
1237 @c cos (%pi/2 * m)];
1240 (%i1) declare (n, integer, m, even)$
1242 (%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m),
1245 (%o2) [0, 1, 0, (- 1) ]
1254 @defvr {Variable opcional} %iargs
1255 Valor por defecto: @code{true}
1257 Cuando @code{%iargs} vale @code{true}, las funciones trigonométricas
1258 se simplifican a funciones hiperbólicas
1260 si el argumento es aparentemente un múltiplo de la unidad imaginaria @math{i}.
1263 si el argumento es aparentemente un múltiplo de la unidad imaginaria @math{%i}.
1266 La simplificación se lleva a cabo incluso cuando el argumento es manifiestamente real;
1268 Maxima sólo se fija en si el argumento es un múltiplo literal de @math{i}.
1271 Maxima sólo se fija en si el argumento es un múltiplo literal de @math{%i}.
1278 @c [sin (%i * x), cos (%i * x), tan (%i * x)];
1280 @c [sin (%i * x), cos (%i * x), tan (%i * x)];
1283 (%i1) %iargs : false$
1285 (%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
1286 (%o2) [sin(%i x), cos(%i x), tan(%i x)]
1288 (%i3) %iargs : true$
1290 (%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
1291 (%o4) [%i sinh(x), cosh(x), %i tanh(x)]
1295 La simplificación se aplica incluso en el caso de que
1296 el argumento se reduzca a un número real.
1299 @c declare (x, imaginary)$
1300 @c [featurep (x, imaginary), featurep (x, real)];
1304 (%i1) declare (x, imaginary)$
1306 (%i2) [featurep (x, imaginary), featurep (x, real)];
1321 @deffn {Function} acos (@var{x})
1326 @deffn {Función} acosh (@var{x})
1327 Arco coseno hiperbólico.
1331 @deffn {Función} acot (@var{x})
1336 @deffn {Función} acoth (@var{x})
1337 Arco cotangente hiperbólica.
1341 @deffn {Función} acsc (@var{x})
1346 @deffn {Función} acsch (@var{x})
1347 Arco cosecante hiperbólica.
1351 @deffn {Función} asec (@var{x})
1356 @deffn {Función} asech (@var{x})
1357 Arco secante hiperbólica.
1361 @deffn {Función} asin (@var{x})
1366 @deffn {Función} asinh (@var{x})
1367 Arco seno hiperbólico.
1371 @deffn {Función} atan (@var{x})
1376 @deffn {Función} atan2 (@var{y}, @var{x})
1377 Calcula el valor de @code{atan(@var{y}/@var{x})} en el intervalo de @code{-%pi} a @code{%pi}.
1381 @deffn {Función} atanh (@var{x})
1382 Arco tangente hiperbólica.
1386 @defvr {Paquete} atrig1
1387 El paquete @code{atrig1} contiene ciertas reglas de simplificación adicionales para las funciones trigonométricas inversas. Junto con las reglas que ya conoce Maxima, los siguientes ángulos están completamente implementados:
1388 @code{0}, @code{%pi/6}, @code{%pi/4}, @code{%pi/3} y @code{%pi/2}.
1389 Los ángulos correspondientes en los otros tres cuadrantes también están disponibles.
1390 Para hacer uso de estas reglas, ejecútese @code{load("atrig1");}.
1394 @deffn {Función} cos (@var{x})
1399 @deffn {Función} cosh (@var{x})
1404 @deffn {Función} cot (@var{x})
1409 @deffn {Función} coth (@var{x})
1410 Cotangente hiperbólica.
1414 @deffn {Función} csc (@var{x})
1419 @deffn {Función} csch (@var{x})
1420 Cosecante hiperbólica.
1425 @defvr {Variable opcional} halfangles
1426 Valor por defecto: @code{false}
1428 Si @code{halfangles} vale @code{true}, las funciones
1429 trigonométricas con argumentos del tipo @code{@var{expr}/2}
1430 se simplifican a funciones con argumentos @var{expr}.
1432 Para un argumento real @var{x} en el intervalo @code{0 < x < 2*%pi}
1433 el seno del semiángulo se simplifica como
1441 Se necesita un factor relativamente complicado para que esta fórmula
1442 sea también válida para cualquier argumento complejo @var{z}:
1448 (- 1) (1 - unit_step(- imagpart(z))
1450 realpart(z) realpart(z)
1451 floor(-----------) - ceiling(-----------)
1456 Maxima reconoce este factor y otros similares para las funciones @code{sin},
1457 @code{cos}, @code{sinh} y @code{cosh}. Para valores especiales del argumento
1458 @math{z}, estos factores se simplifican de forma apropiada.
1463 @c halfangles : false$
1465 @c halfangles : true$
1467 @c assume(x>0, x<2*%pi)$
1471 (%i1) halfangles:false;
1477 (%i3) halfangles:true;
1483 sqrt(1 - cos(x)) (- 1)
1484 (%o4) ----------------------------------
1486 (%i5) assume(x>0, x<2*%pi)$
1489 (%o6) ----------------
1496 @defvr {Paquete} ntrig
1497 El paquete @code{ntrig} contiene un conjunto de reglas de simplificación que se pueden usar para simplificar funciones trigonométricas cuyos argumentos son de la forma
1498 @code{@var{f}(@var{n} %pi/10)} donde @var{f} es cualquiera de las funciones
1499 @code{sin}, @code{cos}, @code{tan}, @code{csc}, @code{sec} o @code{cot}.
1500 @c NEED TO LOAD THIS PACKAGE ??
1504 @deffn {Función} sec (@var{x})
1509 @deffn {Función} sech (@var{x})
1510 Secante hiperbólica.
1514 @deffn {Función} sin (@var{x})
1519 @deffn {Función} sinh (@var{x})
1524 @deffn {Función} tan (@var{x})
1529 @deffn {Función} tanh (@var{x})
1530 Tangente hiperbólica.
1534 @deffn {Función} trigexpand (@var{expr})
1535 Expande funciones trigonométricas e hiperbólicas de sumas de ángulos y de múltiplos de ángulos presentes en @var{expr}. Para mejorar los resultados, @var{expr} debería expandirse. Para facilitar el control por parte del usuario de las simplificaciones, esta función tan solo expande un nivel de cada vez, expandiendo sumas de ángulos o de múltiplos de ángulos. A fin de obtener una expansión completa en senos y coseno, se le dará a la variable @code{trigexpand} el valor @code{true}.
1537 La función @code{trigexpand} está controlada por las siguientes variables:
1541 Si vale @code{true}, provoca la expansión de todas las expresiones que contengan senos y cosenos.
1542 @item trigexpandplus
1543 Controla la regla de la suma para @code{trigexpand}, la expansión de una suma como @code{sin(x + y)} se llevará a cabo sólo si @code{trigexpandplus} vale @code{true}.
1544 @item trigexpandtimes
1545 Controla la regla del producto para @code{trigexpand}, la expansión de un producto como @code{sin(2 x)} se llevará a cabo sólo si @code{trigexpandtimes} vale @code{true}.
1551 @c x+sin(3*x)/sin(x),trigexpand=true,expand;
1552 @c trigexpand(sin(10*x+y));
1556 (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
1558 (%o1) - sin (x) + 3 cos (x) + x
1561 (%i2) trigexpand(sin(10*x+y));
1562 (%o2) cos(10 x) sin(y) + sin(10 x) cos(y)
1568 @defvr {Variable optativa} trigexpandplus
1569 Valor por defecto: @code{true}
1571 La variable @code{trigexpandplus} controla la regla de la suma para @code{trigexpand}. Así, si la instrucción @code{trigexpand} se utiliza o si la variable @code{trigexpand} vale @code{true}, se realizará la expansión de sumas como @code{sin(x+y)} sólo si @code{trigexpandplus} vale @code{true}.
1575 @defvr {Variable optativa} trigexpandtimes
1576 Valor por defecto: @code{true}
1578 La variable @code{trigexpandtimes} controla la regla del producto para @code{trigexpand}. Así, si la instrucción @code{trigexpand} se utiliza o si la variable @code{trigexpand} vale @code{true}, se realizará la expansión de productos como @code{sin(2*x)} sólo si @code{trigexpandtimes} vale @code{true}.
1582 @defvr {Variable optativa} triginverses
1583 Valor por defecto: @code{true}
1585 La variable @code{triginverses} controla la simplificación de la composición de funciones trigonométricas e hiperbólicas con sus funciones inversas.
1587 Si vale @code{all}, tanto @code{atan(tan(@var{x}))} como @code{tan(atan(@var{x}))} se reducen a @var{x}.
1589 Si vale @code{true}, se desactiva la simplificación de @code{@var{arcfun}(@var{fun}(@var{x}))}.
1591 Si vale @code{false}, se desactivan las simplificaciones de
1592 @code{@var{arcfun}(@var{fun}(@var{x}))} y
1593 @code{@var{fun}(@var{arcfun}(@var{x}))}.
1597 @deffn {Función} trigreduce (@var{expr}, @var{x})
1598 @deffnx {Función} trigreduce (@var{expr})
1599 Combina productos y potencias de senos y cosenos trigonométricos e hiperbólicos de @var{x}, transformándolos en otros que son múltiplos de @var{x}. También intenta eliminar estas funciones cuando aparecen en los denominadores. Si no se introduce el argumento @var{x}, entonces se utilizan todas las variables de @var{expr}.
1601 Véase también @code{poissimp}.
1604 @c trigreduce(-sin(x)^2+3*cos(x)^2+x);
1608 (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
1609 cos(2 x) cos(2 x) 1 1
1610 (%o1) -------- + 3 (-------- + -) + x - -
1616 Las rutinas de simplificación trigonométrica utilizan información declarada en algunos casos sencillos. Las declaraciones sobre variables se utilizan como se indica a continuación:
1619 @c declare(j, integer, e, even, o, odd)$
1620 @c sin(x + (e + 1/2)*%pi);
1621 @c sin(x + (o + 1/2)*%pi);
1624 (%i1) declare(j, integer, e, even, o, odd)$
1625 (%i2) sin(x + (e + 1/2)*%pi);
1627 (%i3) sin(x + (o + 1/2)*%pi);
1634 @defvr {Variable optativa} trigsign
1635 Valor por defecto: @code{true}
1637 Si @code{trigsign} vale @code{true}, se permite la simplificación de argumentos negativos en funciones trigonométricas, como en @code{sin(-x)}, que se transformará en @code{-sin(x)} sólo si @code{trigsign} vale @code{true}.
1641 @deffn {Función} trigsimp (@var{expr})
1643 Utiliza las identidades
1645 $\sin\left(x\right)^2 + \cos\left(x\right)^2 = 1$
1649 $\cosh\left(x\right)^2 - \sinh\left(x\right)^2 = 1$
1651 para simplificar expresiones que contienen @code{tan}, @code{sec},
1652 etc., en expresiones con @code{sin}, @code{cos}, @code{sinh}, @code{cosh}.
1655 Utiliza las identidades @math{sin(x)^2 + cos(x)^2 = 1} y
1656 @math{cosh(x)^2 - sinh(x)^2 = 1} para simplificar expresiones que contienen @code{tan}, @code{sec},
1657 etc., en expresiones con @code{sin}, @code{cos}, @code{sinh}, @code{cosh}.
1660 Las funciones @code{trigreduce}, @code{ratsimp} y @code{radcan} puden seguir siendo útiles para continuar el proceso de simplificación.
1662 La instrucción @code{demo ("trgsmp.dem")} muestra algunos ejemplos de @code{trigsimp}.
1663 @c MERGE EXAMPLES INTO THIS ITEM
1667 @deffn {Función} trigrat (@var{expr})
1668 Devuelve una forma canónica simplificada cuasi-lineal de una expresión trigonométrica;
1669 @var{expr} es una fracción racional que contiene @code{sin}, @code{cos} o @code{tan},
1670 cuyos argumentos son formas lineales respecto de ciertas variables (o kernels) y @code{%pi/@var{n}}
1671 (@var{n} entero) con coeficientes enteros. El resultado es una fracción simplificada con
1672 el numerador y denominador lineales respecto de @code{sin} y @code{cos}. Así,
1673 @code{trigrat} devuelve una expresión lineal siempre que sea posible.
1676 @c trigrat(sin(3*a)/sin(a+%pi/3));
1680 (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
1681 (%o1) sqrt(3) sin(2 a) + cos(2 a) - 1
1685 El siguiente ejemplo se ha tomado de
1686 Davenport, Siret y Tournier, @i{Calcul Formel}, Masson (o en inglés,
1687 Addison-Wesley), sección 1.5.5, teorema de Morley.
1690 @c c : %pi/3 - a - b$
1691 @c bc : sin(a)*sin(3*c)/sin(a+b);
1692 @c ba : bc, c=a, a=c;
1693 @c ac2 : ba^2 + bc^2 - 2*bc*ba*cos(b);
1697 (%i1) c : %pi/3 - a - b$
1699 (%i2) bc : sin(a)*sin(3*c)/sin(a+b);
1701 sin(a) sin(3 (- b - a + ---))
1703 (%o2) -----------------------------
1707 (%i3) ba : bc, c=a, a=c;
1709 sin(3 a) sin(b + a - ---)
1711 (%o3) -------------------------
1717 (%i4) ac2 : ba^2 + bc^2 - 2*bc*ba*cos(b);
1719 sin (3 a) sin (b + a - ---)
1721 (%o4) ---------------------------
1726 - (2 sin(a) sin(3 a) sin(3 (- b - a + ---)) cos(b)
1729 sin(b + a - ---))/(sin(a - ---) sin(b + a))
1732 sin (a) sin (3 (- b - a + ---))
1734 + -------------------------------
1739 (%i5) trigrat (ac2);
1740 (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
1741 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
1742 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
1743 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
1744 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
1745 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
1759 @node Números aleatorios, , Funciones trigonométricas, Funciones matemáticas
1760 @section Números aleatorios
1764 @deffn {Función} make_random_state (@var{n})
1765 @deffnx {Función} make_random_state (@var{s})
1766 @deffnx {Función} make_random_state (true)
1767 @deffnx {Función} make_random_state (false)
1769 Un objeto de estado aleatorio representa el estado del generador de números aleatorios. El estado consiste en 627 cadenas binarias de 32 bits.
1771 La llamada @code{make_random_state (@var{n})} devuelve un nuevo objeto de estado aleatorio creado a partir de una semilla entera igual a @var{n} módulo 2^32. El argumento @var{n} puede ser negativo.
1773 La llamada @code{make_random_state (@var{s})} devuelve una copia del estado aleatorio @var{s}.
1775 La llamada @code{make_random_state (true)} devuelve un nuevo objeto de estado aleatorio, cuya semilla se genera a partir de la hora actual del reloj del sistema como semilla.
1777 La llamada @code{make_random_state (false)} devuelve una copia del estado actual del generador de números aleatorios.
1783 @deffn {Función} set_random_state (@var{s})
1784 Establece @var{s} como estado del generador de números aleatorios.
1786 La función @code{set_random_state} devuelve @code{done} en todo caso.
1792 @deffn {Función} random (@var{x})
1793 Devuelve un número seudoaleatorio. Si @var{x} es un entero, @code{random (@var{x})} devuelve un
1794 entero entre 0 y @code{@var{x} - 1}, ambos inclusive. Si @var{x} es un decimal en punto flotante,
1795 @code{random (@var{x})} devuelve un decimal no negativo en punto flotante menor que @var{x}.
1796 La función @code{random} emite un mensaje de error si @var{x} no es ni entero ni de punto flotante,
1797 o si @var{x} no es positivo.
1799 Las funciones @code{make_random_state} y @code{set_random_state}
1800 permiten controlar el estado del generador de números aleatorios.
1802 El generador de números aleatorios de Maxima implementa el algoritmo de Mersenne twister MT 19937.
1807 @c s1: make_random_state (654321)$
1808 @c set_random_state (s1);
1810 @c random (9573684);
1812 @c s2: make_random_state (false)$
1816 @c set_random_state (s2);
1822 (%i1) s1: make_random_state (654321)$
1823 (%i2) set_random_state (s1);
1825 (%i3) random (1000);
1827 (%i4) random (9573684);
1829 (%i5) random (2^75);
1830 (%o5) 11804491615036831636390
1831 (%i6) s2: make_random_state (false)$
1833 (%o7) .2310127244107132
1834 (%i8) random (10.0);
1835 (%o8) 4.394553645870825
1836 (%i9) random (100.0);
1837 (%o9) 32.28666704056853
1838 (%i10) set_random_state (s2);
1840 (%i11) random (1.0);
1841 (%o11) .2310127244107132
1842 (%i12) random (10.0);
1843 (%o12) 4.394553645870825
1844 (%i13) random (100.0);
1845 (%o13) 32.28666704056853
1853 @c FALTA DEFINICION DE exptisolate