Anterior: , Subir: Números   [Índice general][Índice]

5.1.2 Funciones y variables para los números

Función: bfloat (expr)

Convierte todos los números y funciones numéricas a números decimales de punto flotante grandes ("bigfloats"). El número de dígitos significativos de los "bigfloats" resultantes se especifica mediante la variable global fpprec.

Si float2bf vale false se mostrará un mensaje de aviso cuando un número en punto flotante se convierte a decimal de tipo "bigfloats", puesto que tal transformación puede conllevar pérdida de precisión.

Función: bfloatp (expr)

Devuelve true si expr es un número decimal en punto flotante grande ("bigfloats"), en caso contrario devuelve false.

Variable optativa: bftorat

Valor por defecto: false

La variable bftorat controla la conversión de números decimales de punto flotante grandes ("bigfloats") a números racionales. Si bftorat vale false, se utilizará ratepsilon para controlar la conversión (lo cual resulta en números racionales relativamente pequeños). Si bftorat vale true, el número racional generado representará exactamente al número decimal de punto flotante grande ("bigfloat").

Variable optativa: bftrunc

Valor por defecto: true

La variable bftrunc provoca la eliminación de ceros en números decimales grandes no nulos para que no se muestren. Así, si bftrunc vale false, bfloat (1) se muestra como 1.000000000000000B0. En otro caso, se mostrará como 1.0B0.

Función: evenp (expr)

Devuelve true si expr es un entero par y false en cualquier otro caso.

Función: float (expr)

Convierte los enteros, números racionales y los decimales de punto flotante grandes ("bigfloats") que están presentes en expr a números de punto flotante. También actúa como símbolo evflag.

Variable optativa: float2bf

Valor por defecto: true

Si float2bf vale false se mostrará un mensaje de aviso cuando un número en punto flotante se convierte a decimal de tipo "bigfloats", puesto que tal transformación puede conllevar pérdida de precisión.

Función: floatnump (expr)

Devuelve true si expr es un número de punto flotante, en caso contario retorna false.

Variable optativa: fpprec

Valor por defecto: 16

La variable fpprec guarda el número de dígitos significativos en la aritmética con números decimales de punto flotante grandes ("bigfloats"). La variable fpprec no afecta a los cálculos con números decimales de punto flotante ordinarios.

Véanse también bfloat y fpprintprec.

Variable optativa: fpprintprec

Valor por defecto: 0

La variable fpprintprec guarda el número de dígitos a imprimir de los números decimales en coma flotante, tanto los ordinarios como los de precisión ilimitada (bigfloats).

En el caso de los decimales ordinarios, si fpprintprec toma un valor entre 2 y 16 (inclusive), el número de dígitos que se imprimen es igual a fpprintprec. En caso contrario, fpprintprec es 0 o mayor que 16, siendo el número de dígitos a imprimir en todos loa casos igual a 16.

En el caso de los decimales de precisión ilimitada (bigfloats), si fpprintprec toma un valor entre 2 y 16 (inclusive), el número de dígitos que se imprimen es igual a fpprintprec. En caso contrario, fpprintprec es 0 o mayor que fpprec, siendo el número de dígitos a imprimir igual a fpprec.

La variable fpprintprec no admite el valor 1.

Función: integerp (expr)

Devuelve true si expr es un número entero y false en cualquier otro caso.

La función integerp devuelve false si su argumento es un símbolo, incluso cuando éste ha sido declarado como entero.

Ejemplos:

(%i1) integerp (0);
(%o1)                         true
(%i2) integerp (1);
(%o2)                         true
(%i3) integerp (-17);
(%o3)                         true
(%i4) integerp (0.0);
(%o4)                         false
(%i5) integerp (1.0);
(%o5)                         false
(%i6) integerp (%pi);
(%o6)                         false
(%i7) integerp (n);
(%o7)                         false
(%i8) declare (n, integer);
(%o8)                         done
(%i9) integerp (n);
(%o9)                         false
Variable opcional: m1pbranch

Valor por defecto: false

La variable m1pbranch es la rama principal de -1 elevado a una potencia. Cantidades como (-1)^(1/3) (esto es, un exponente racional impar) y (-1)^(1/4) (esto es, un exponente racional par) son tratados como sigue:

              dominio real
                            
(-1)^(1/3):      -1         
(-1)^(1/4):   (-1)^(1/4)   

             dominio complejo              
m1pbranch:false          m1pbranch:true
(-1)^(1/3)               1/2+%i*sqrt(3)/2
(-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2
Función: nonnegintegerp (n)

Devuelve true si y solo si n >= 0, siendo n un entero.

Función: numberp (expr)

Devuelve true si expr es un enúmero entero, racional, de coma flotante o "bigfloat", en caso contrario devuelve false.

La función numberp devuelve false si su argumento es un símbolo, incluso cuando el argumento es un número simbólico como %pi o %i, o aunque haya sido declarado como even (par), odd (impar), integer (entero), rational (racional), irrational (irracional), real (real), imaginary (imaginario) o complex (complejo).

Ejemplos:

(%i1) numberp (42);
(%o1)                         true
(%i2) numberp (-13/19);
(%o2)                         true
(%i3) numberp (3.14159);
(%o3)                         true
(%i4) numberp (-1729b-4);
(%o4)                         true
(%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
(%o5)      [false, false, false, false, false, false]
(%i6) declare (a, even, b, odd, c, integer, d, rational,
     e, irrational, f, real, g, imaginary, h, complex);
(%o6)                         done
(%i7) map (numberp, [a, b, c, d, e, f, g, h]);
(%o7) [false, false, false, false, false, false, false, false]
Variable opcional: numer

La variable numer hace algunas funciones matemáticas con argumentos numéricos se evalúen como decimales de punto flotante. También hace que las variables de una expresión a las cuales se les ha asignado un número sean sustituidas por sus valores. Además, activa la variable float.

Véase también %enumer.

Ejemplos:

(%i1) [sqrt(2), sin(1), 1/(1+sqrt(3))];
                                               1
(%o1)                   [sqrt(2), sin(1), -----------]
                                          sqrt(3) + 1
(%i2) [sqrt(2), sin(1), 1/(1+sqrt(3))],numer;
(%o2) [1.414213562373095, .8414709848078965, .3660254037844387]
Variable opcional: numer_pbranch

Valor por defecto: false

La variable opcional numer_pbranch controla la evaluación numérica de las potencias de números enteros, racionales y decimales negativos. Si numer_pbranch vale true y el exponente es decimal o la variable opcional numer vale true, Maxima evalúa el resultado numérico utilizando la rama principal. En caso contrario, se devuleve un resultado simplificado pero no evaluado.

Ejemplos:

(%i1) (-2)^0.75;
(%o1) (-2)^0.75

(%i2) (-2)^0.75,numer_pbranch:true;
(%o2) 1.189207115002721*%i-1.189207115002721

(%i3) (-2)^(3/4);
(%o3) (-1)^(3/4)*2^(3/4)

(%i4) (-2)^(3/4),numer;
(%o4) 1.681792830507429*(-1)^0.75

(%i5) (-2)^(3/4),numer,numer_pbranch:true;
(%o5) 1.189207115002721*%i-1.189207115002721
Función: numerval (x_1, expr_1, ..., var_n, expr_n)

Declara las variables x_1, ..., x_n asignándoles los valores numéricos expr_1, ..., expr_n. El valor numérico se evalúa y sustituye a la variable en cualquier expresión en la que ésta aparezca si numer toma el valor true. Véase también ev.

Las expresiones expr_1, ..., expr_n pueden ser expresiones no necesariamente numéricas.

Función: oddp (expr)

Devuelve true si expr es un entero impar y false en caso contrario.

Variable opcional: ratepsilon

Valor por defecto: 2.0e-8

La variable ratepsilon guarda la tolerancia utilizada en la conversión de números decimales en coma flotante a números racionales.

Función: rationalize (expr)

Convierte todos los números en coma flotante de doble precisión y grandes (big float) presentes en una expresión expr de Maxima a sus formas racionales exactas equivalentes. Si el usuario no está familiarizado con la representación binaria de números en coma flotante, le puede extrañar que rationalize (0.1) no sea igual que 1/10. Este comportamiento no es único de Maxima, ya que el número 1/10 en su forma binaria es periódico y no exacto.

(%i1) rationalize (0.5);
                                1
(%o1)                           -
                                2
(%i2) rationalize (0.1);
                               1
(%o2)                          --
                               10
(%i3) fpprec : 5$
(%i4) rationalize (0.1b0);
                             209715
(%o4)                        -------
                             2097152
(%i5) fpprec : 20$
(%i6) rationalize (0.1b0);
                     236118324143482260685
(%o6)                ----------------------
                     2361183241434822606848
(%i7) rationalize (sin (0.1*x + 5.6));
                              x    28
(%o7)                     sin(-- + --)
                              10   5
Función: ratnump (expr)

Devuelve true si expr es un entero literal o una fracción de enteros literales, en caso contrario devuelve false.


Anterior: , Subir: Números   [Índice general][Índice]