Funciones

Las funciones se definen en el apartado de Definiciones. Las funciones asignan un número real a cada valor de su variable (o a cada conjunto de valores de sus variables). Las funciones tienen un identificador (o nombre), una o más variables (que no son más que una lista de identificadores) y  una expresión en términos de esas variables.

Estos son ejemplos de funciones de una variable con sus identificadores y sus variables:

Expresión

Identificador

Variable

f(x)=sen(3*x+2)

f

x

g(y)=A*exp(-(y^2)/(s^2))

g

y

Area(radio)=(pi*radio^2)/2

Area

radio

Estos son ejemplos de funciones de dos o más variables con sus identificadores y sus variables:

Expresión

Identificador

Variables

f(x,y)=raíz(x^2+y^2)

f

x, y

Fun(x,y,z)

Fun

x, y, z

Volumen(a,b,c)=4*pi*a*b*c/3

Volumen

a, b, c

Los nombres específicos de las variables de una función no son importantes, sólo sirven para identificar las variables dentro de la expresión y asignarles allí un papel. Las funciones se evalúan nada más cuando son llamadas explícitamente (por ejemplo por un algoritmo, por un gráfico, por la animación o por la constricción de un control gráfico que se mueve). El panel de configuración de una función tiene este aspecto:

panel_funcion

En las siguientes escenas, podemos verificar el funcionamiento de algunas funciones y la forma como fueron creadas en el panel de configuración.

Escena con funciones de una sola variable.

(Todas las escenas de este artículo puede descargarlas desde este enlace)

Escena con funciones de dos o más variables:

Cada uno de los elementos del panel de configuración, se explican en la siguiente tabla:

id

Consta de dos campos de texto. En el primero se especifica el identificador de la función y debe incluir los parámetros de los que dependa escritos entre paréntesis y separados por comas. Por ejemplo: f(x, y, z). En el segundo se detalla una expresión que será el valor a asignara como imagen a esa función.

dominio

Es una expresión booleana que determina el dominio de la función. Cualquier intento de evaluar la función fuera de su dominio lanzará una excepción, con lo cual, por ejemplo, su gráfica no se dibuja en los puntos que no están en el dominio.El valor por defecto es vacío, lo cual se interpreta como que el dominio no está restringido.

algoritmo

Selector que indica si la función, para evaluarse, debe usar un algoritmo, es decir, si necesita los cálculos indicados en “inicio”, “hacer” y “mientras” (ver, al final, un ejemplo para el cálculo del factorial).

inicio

En el campo “inicio” pueden escribirse una serie de asignaciones y llamadas a funciones separadas por punto y coma “;”. Todo lo que haya en este campo se ejecuta al inicio del cálculo.

hacer

En el campo “hacer” puede escribirse una serie de asignaciones y llamadas a funciones separadas por saltos de línea. Lo que hay en “hacer” se ejecuta repetidamente mientras la condición “mientras” sea válida.

mientras

En el campo “mientras” se debe escribir una expresión booleana. Lo que hay en “hacer” se ejecuta repetidamente mientras la condición “mientras” sea válida.

El campo donde aparece el identificador de la función (a la izquierda del signo = ) debe incluir los identificadores de las variables entre paréntesis y separados por comas, para dar sentido a la expresión que aparece al lado derecho. La expresión que aparece a la derecha del signo = puede ser, o incluir, un término condicional, por ejemplo:

     func(x)=(x<0)?0:1

es la función que vale 0 para x<0 y 1 para x>=0. Una expresión booleana vale 1 cuando es verdadera y 0 cuando es falsa por lo cual la función anterior también podría escribirse como

func(x)=(x>=0),

o bien usando la función indicadora ind, también podría escribirse como:

     func(x)=ind(x>=0),

Aparte de las funciones que se definen explícitamente en cada escena por parte del desarrollador de la misma, Descartes incluye una serie de funciones matemáticas básicas, un conjunto de operadores y palabras reservadas que son reconocidas por el analizador de expresiones. Estas funciones, operadores y palabras reservadas pueden usarse en cualquier sitio donde Descartes espera una expresión, incluyendo el campo de texto de un control numérico.

El dominio puede ser una expresión booleana en términos de las variables de la función. El programa utiliza el dominio para decidir si intenta evaluar la función. Si en un punto la expresión del dominio no se cumple, la evaluación no se intenta y el programa genera una excepción, con lo cual, si se está dibujando por ejemplo la gráfica de esta función, el dibujo que corresponde a este punto no se realiza  y se pasa al siguiente. Cuando el campo del domino está vacío se considera que el dominio de la función no tiene restricciones, es decir, cualquier conjunto de valores de sus variables está en el dominio.

Cuando el programa intenta evaluar una función en un punto donde tiene una singularidad, se genera una interrupción, igual que si el punto no estuviera en el dominio. Por lo tanto no es necesario excluir del dominio de una función sus puntos singulares, el programa ya lo hace automáticamente. Sólo hay que especificar el dominio si se desea restringir el dominio natural de una función.

A veces no se puede definir una función solamente mediante una expresión, sino que su evaluación requiere un proceso más complicado. En estos casos el autor puede marcar algoritmo, con lo cual la evaluación de la función realiza antes el algoritmo definido en los campos de texto etiquetados con iniciohacer y mientras (consultar Algoritmos para el significado de estos términos).  En estos campos el autor puede describir el algoritmo de evaluación de la función. El siguiente ejemplo muestra cómo puede una función utilizar un algoritmo. Se trata de una función Fact(x) que calcula el factorial del mayor entero menor o igual que x, para x>=0.

En la siguiente escena, podemos calcular el factorial de un número entero positivo. Si intentamos con un número negativo, nos dirá que la función no está definida, que confirma la restricción del dominio (ver la siguiente imagen con el algoritmo de la función).

Funcion_algoritmo

El algoritmo que se define en este panel se ejecuta cada vez que se quiere evaluar la función, por lo cual los valores calculados en el algoritmo pueden utilizarse para definir el valor de la función.

Las funciones pueden tener cualquier número de variables, incluso cero. Para evaluar una función sin variables se debe escribir un par de paréntesis después de su nombre (por ejemplo func()).   Las funciones sin variables pueden servir como algoritmos de cálculo que devuelven un valor real. También puede haber funciones que no devuelven ningún valor, las cuales pueden usarse como algoritmos que admiten parámetros.

Haz un comentario