Función signo


Función signo

En matemática, la función signo es una función matemática especial, una función definida a trozos, que obtiene el signo de cualquier número real que se tome por entrada. Se representa generalmente mediante sgn(x), y no debe confundirse con la función seno (sen(x) o bien sin(x)).

Contenido

Definición

Función signo representada en un plano cartesiano.

La función signo puede definirse de las siguientes maneras:

1. Donde su dominio de definición es R y su conjunto imagen {-1;0;1}.

\sgn (x) = \left\{\begin{matrix} 1, & \mbox{si }x > 0 \\ 0, & \mbox{si }x = 0 \\ -1, & \mbox{si }x < 0 \end{matrix}\right.

2. Como la derivada de la función valor absoluto. Su dominio de definición es R - {0} y su conjunto imagen Im={-1;1}

\sgn (x) = \dfrac {d|x|} {dx} = \left\{\begin{matrix} 1, & \mbox{si }x > 0 \\ -1, & \mbox{si }x < 0 \end{matrix}\right.

3. sgn(x) = 2u(x) - 1 donde u es la función escalón unitario o Heaviside Step, definida de la siguiente manera:

u(x) = \left\{\begin{matrix} 1, & \mbox{si }x > 0 \\ \frac {1} {2}, & \mbox{si }x = 0 \\ 0, & \mbox{si }x < 0 \end{matrix}\right.

Propiedades

\sgn(-x)=-\sgn(x) \,\!
 x = \sgn(x) \cdot |x|\, \qquad x \in \mathbb{R}
 {d |x| \over dx} =  \sgn(x) \,.
  • La función signo es derivable con derivada 0 para todo su dominio excepto en 0. No es derivable en 0 en el sentido ordinario de derivada, pero bajo una noción más general de derivada dentro de la teoría de distribuciones, la derivada de la función signo es dos veces la delta de Dirac.
 {d \ \sgn(x) \over dx} = 2 \delta(x) \,.
  • Para k \gg 0, una aproximación suave de la función signo es:
\ \sgn x \approx \tanh(kx) \,.

Uso en computación

En computación, el concepto es idéntico al ya expresado, pero la siguiente explicación resulta más fácil de entender para programadores no expertos en matemáticas.

El signo es una función que devuelve un valor según si un número o el resultado de una expresión es mayor, menor o igual que 0. Suele representarse en la forma SGN(número).

La mayor parte de los lenguajes de programación aplican esta función. No obstante, si no la aplican, es fácil construirla uno mismo, más abajo se presentan tres métodos.

Es habitual que sobre una variable o sobre el resultado de una expresión nos interese en un momento dado saber si es mayor, menor o igual que 0, ya sea para controlar el flujo según ese dato o para condicionar determinados valores o acciones.

Implementaciones de la función

Cuando un lenguaje no posee dicha función puede proveerse fácilmente con alguno de los métodos que se muestra a continuación en pseudocódigo.

Se presentan tres métodos para implementar la función. Dado que en computación es importante la velocidad, se hace referencia a las mismas.

  • El método basado en lógica y aritmética tarda lo mismo para cualquiera de los valores de un número.
  • El método basado en comparaciones tarda distinto, según sea el valor positivo, negativo o cero y, por consiguiente, según el orden en que se realicen las comprobaciones para dichos casos. Es ligeramente más rápido que el anterior.
  • Finalmente, para el método del valor absoluto, el tiempo también es diferente según sea 0 o distinto de 0 (no discrimina si es positivo o negativo). En cualquier caso, este método es más lento que los anteriores, debido a la operacón de división, que es más costosa.

Uso de la lógica y la aritmética (caso 1)

En lenguajes donde TRUE = -1 y FALSE = 0 En lenguajes de programación se aprovecha la mitad alta de la gama de datos para expresar números negativos cuando el tipo elegido de datos admite esa posibilidad.

     Funcion Signo(N)
        Devolver (N < 0) - (N > 0)
     Fin Funcion

Examinado el código, se observa que las expresiones de comparación devuelven TRUE= -1 o FALSE=0

  • Caso N Mayor que 0: si un número es mayor que 0, luego éste resultado = -1, y por lo tanto no puede ser cierta la expresión (n < 0), entonces al restar, se resta -1. Se verifica que: 0-(-1) = 1
  • Caso N igual a 0: Si N vale 0, ambas expresiones son falsas, dan por resultado 0, luego su resta también dará 0. Se verifica que: 0-0 = 0
  • Caso N menor que 0: Si n<0, entonces esta expresión = TRUE = -1; por tanto, la otra expresión no puede ser cierta, entonces se le resta 0, que es el resultado de la expresión final (n < 0). Se verifica que: -1-0 = -1

Usando lógica y aritmética (caso 2)

En lenguajes donde TRUE = 1 y FALSE = 0 En lenguaje natural (y cálculo mental), nos resulta más evidente así:

     Funcion Signo(N)
        Devolver (N > 0) - (N < 0)
     Fin Funcion

Examinado el código, se observa que las expresiones de comparación devuelve TRUE = 1 o bien FALSE = 0

  • Caso N mayor que 0: si un número es mayor que 0, luego el resultado de esta expresión = 1, y por lo tanto no puede ser cierta la expresión n < 0; entonces, al restar se resta 0. Se verifica que: 1-0 = 1
  • Caso N igual a 0: Si N vale 0, ambas expresiones dan por su lado un resultado de 0, luego su resta también dará 0. Se verifica que: 0-0 = 0
  • Caso N menor que 0: Si n < 0, entonces devuelve TRUE = 1, y la expresión n > 0 da 0; por tanto, se le resta 1 resultado de la expresión final (n < 0). Se verifica que 0-1 = -1

Usando comparaciones

Se puede conseguir mayor velocidad de cálculo al preguntar por el signo de una gran cantidad de números, si se sabe a priori si existe una mayor cantidad de números con valores positivos, negativos o iguales a 0, modificando la función de modo que se compruebe en primer lugar la posibilidad más frecuente. En este pseudocódigo, por tanto, se da prioridad a valores positivos, luego negativos y por último a números cuyo valor es 0.

     Funcion Signo(N)
       Si N > 0 luego
          devolver 1
       En otro caso
          Si N < 0 luego
               devolver -1
          En otro caso
               devolver 0
          Fin condición
       Fin condición
     Fin Funcion

Usando el valor absoluto

Esta función es la más lenta de todas las aquí mostradas. Sin embargo, si se sabe a priori que el valor de los números a evaluar son mayoritariamente 0 o bien distintos de 0, es posible modificar la función para que, al evaluar la comprobación, realice en primer lugar el caso más frecuente.

     Funcion Signo(N)
       Si N <> 0 luego
          devolver N \ ABS(N)  - se hace una división entera, que es más rápida
       En otro caso
          devolver 0
       Fin condición
     Fin Funcion

Ejemplos

  • Obtener el signo de una variable. En el ejemplo ponemos directamente el valor, puede asumirse que la variable en un momento dado contiene tal valor.
    • Signo de un número positivo: SGN(25) = 1
    • Signo de un número negativo: SGN(-23) = -1
    • Signo de 0: SGN(0) = 0
  • Obtener el signo de una variable, para condicionar un bucle: Si necesitamos realizar un ciclo de operaciones desde un punto inicial hasta un punto final, necesitamos saber si el punto final es mayor o menor que el inicial para determinar si la cuenta de ciclos es creciente, decreciente o nulo.

En pseudocódigo:

    Direccion = SGN(Inicio - Final)
    Decidir que hacer cuando Direccion = 0  - Un bucle con un incremento de 0 es un bucle infinito  
    Iniciar ciclo para todo elemento en la lista comenzando en Inicio hasta Final con incremento de Direccion
       hacer las operaciones deseadas al elemento apuntado
    Fin ciclo

Un ejemplo de código en VB:

  • Nótese cómo el bucle iniciaría en 586 e iría hacia atrás hasta llegar a 236. La función signo interviene para determinar cómo es el incremento: si creciente, decreciente o nulo. Si se presenta este último caso, debe decidirse entonces la acción a tomar, tal como se detalla en el siguiente párrafo.
  • Si inicio y final tuvieran el mismo valor, el incremento de cada ciclo sería 0. Esto provocaría un ciclo infinito que se remedia con la condición previa al bucle, y se permitiría ejecutar 1 vez el bucle. Si cuando son iguales se desea omitir la ejecución, se debe condicionar a usar el bucle sólo si la Dirección es distinta de 0. Ambas situaciones quedan reflejadas en el código
    DIM direccion AS INTEGER, Inicio AS LONG, Final AS LONG, K AS LONG
 
    Inicio = 586
    Final = 234 
    Direccion = SGN(Inicio - Final)
 
- Si dirección = 0, lo condicionamos para que el bucle se ejecute 1 vez.
 
    IF Direccion = 0 THEN Direccion = 1      - Éste es un ejemplo de condicionado de variables.
    FOR K = Inicio TO Final STEP Direccion    - Éste es un ejemplo que determina si la cuenta de los ciclos es creciente o decreciente.
         - las operaciones que se necesite realizar
    NEXT
 
- Si dirección = 0, lo condicionamos para que el bucle no se ejecute ninguna vez.
    IF Direccion <> 0 THEN                   - Éste es un ejemplo de control del flujo.
       For K = Inicio TO Final STEP Direccion - Éste es un ejemplo que determina si la cuenta de los ciclos es creciente o decreciente.
            - las operaciones que se necesite realizar
       Next
    END IF

Puede verse como la utilidad queda patente, cuando se asignan cualesquiera valores a inicio y final, el código se ejecutará correctamente sea cual sea el caso.

Véase también


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Función signo — La función signo puede definirse de las siguientes maneras: 1. También denominada signum. Su dominio de definición es R y su conjunto imagen Im= 1;0;1 2. Como la derivada de la función valor absoluto. Su dominio de definición es R 0 y su conjunto …   Enciclopedia Universal

  • Función discontinua — Saltar a navegación, búsqueda Una función es una función discontinua si no es continua en un punto evaluado. Contenido 1 Clasificación de la discontinuidad de una función 1.1 Evitable 1.2 …   Wikipedia Español

  • Signo (matemáticas) — Para otros usos de este término, véase Signo (desambiguación). Los signos más y menos se utilizan para mostrar el signo de un número entero, racional o real. En matemáticas, la palabra signo se refiere a la propiedad de ser positivo o negativo.… …   Wikipedia Español

  • Función escalonada — Una función escalonada es aquella función definida a trozos que en cualquier intervalo finito [a, b] en que esté definida tiene un número finito de discontinuidades c1 < c2 < ... < cn, y en cada intervalo ]ck, ck+1[ es constante,… …   Wikipedia Español

  • Función unitaria de Heaviside — La función escalón de Heaviside, también llamada función escalón unitario, debe su nombre al matemático inglés Oliver Heaviside. Es una función discontinua cuyo valor es 0 para cualquier argumento negativo, y 1 para cualquier argumento positivo:… …   Wikipedia Español

  • Función continua — En matemáticas, una función continua es aquella para la cual, intuitivamente, para puntos cercanos del dominio se producen pequeñas variaciones en los valores de la función. Si la función no es continua, se dice que es discontinua. Generalmente… …   Wikipedia Español

  • Función error — Gráfica de la función error. En matemáticas, la función error (también conocida como función error de Gauss) es una función especial (no elemental) que se utiliza en el campo de la probabilidad, la estadística y las ecuaciones diferenciales… …   Wikipedia Español

  • Función discreta — Una función discreta es una función matemática cuyo dominio de definición es un conjunto numerable (o discreto).[1] Es decir, es una definición: Una función discreta no debe confundirse con una función discontinua, puesto que estas últimas… …   Wikipedia Español

  • Función polinómica de grado 2 — Saltar a navegación, búsqueda De vital importancia en matemáticas y física es la función cuadrática o de segundo grado. Una función polinómica de grado dos o función cuadrática es la que corresponde a un polinomio en x de segundo grado, según la… …   Wikipedia Español

  • Función polinómica de grado 1 — Saltar a navegación, búsqueda Un polinomio de primer grado de una variable real es una función matemática de la forma: donde m y b son constantes. Una función lineal de una única variable independiente x suele escribirse en la forma siguiente …   Wikipedia Español