# Manual de &kalgebra;

## Introducción

&kalgebra; contiene numerosas funciones que permiten al usuario realizar todo tipo de operaciones matemáticas y mostrarlas gráficamente. Originalmente, este programa estaba orientado a &MathML;. En la actualidad lo puede usar cualquier persona con pocos conocimientos matemáticos para resolver problemas sencillos o avanzados.

Incluye funcionalidades como las siguientes:

- Una calculadora para una fácil y rápida evaluación de funciones matemáticas.

- Posibilidad de usar guiones para series avanzadas de cálculos.

- Posibilidades lingüísticas, como la definición de funciones y la terminación automática.

- Funciones de cálculo, como la diferenciación simbólica, cálculo vectorial y manipulación de listas.

- Trazado de funciones con cursor activo para encontrar raíces gráficas y otros tipos de análisis.

- Trazado en 3D para la visualización útil de funciones en 3D.

- Un diccionario de operadores integrado para la rápida referencia de las diversas funciones disponibles.

A continuación se muestra una imagen de la aplicación &kalgebra; en acción:

Aquí se muestra una captura de la ventana principal de &kalgebra;. Ventana principal de &kalgebra;

Cuando el usuario comienza una sesión con &kalgebra; se le muestra una única ventana que contiene cuatro pestañas: Calculadora, Gráfica 2D, Gráfica 3D y Diccionario. Dentro de estas pestañas encontrará un campo de entrada donde podrá introducir sus funciones o cálculos, y un campo de visualización que muestra el resultado.

El usuario puede gestionar la sesión en cualquier momento con las opciones del menú principal Sesión:

&Ctrl; N Sesión Nueva

- Abre una nueva ventana de &kalgebra;

&Ctrl;&Shift; F Sesión Modo de pantalla completa

- Conmuta el modo de pantalla completa para la ventana de &kalgebra;. El modo de pantalla completa también se puede activar o desactivar mediante el botón situado en la parte superior derecha de la ventana de &kalgebra;.

&Ctrl; Q Sesión Salir

- Cierra el programa.

## Sintaxis

&kalgebra; usa una sintaxis algebraica intuitiva para introducir las funciones del usuario de forma similar a la que usan la mayor parte de las calculadoras gráficas modernas. Esta sección lista las operaciones fundamentales que proporciona &kalgebra;. El autor de &kalgebra; ha modelado la sintaxis según Maxima y Maple para los usuarios que estén familiarizados con estos programas.

Para los usuarios interesados en el funcionamiento interno de &kalgebra;, las funciones introducidas por el usuario se convierten a &MathML; en el motor. Un conocimiento rudimentario de las posibilidades proporcionadas por &MathML; le servirá de ayuda para revelar las funcionalidades internas de &kalgebra;.

Aquí tiene una lista de los operadores disponibles hasta el momento:

- `+ - * /` : suma, resta, multiplicación y división.

- `^, **` : potencia, puede usar cualquiera de las dos formas. Asimismo, puede usar los caracteres unicode `²`. Las potencias son también una forma de expresar raíces, lo que puede hacer de la siguiente forma: `a**(1/b)`

- `->` : lambda. Es el modo de especificar una o más variables libres que estarán ligadas a una función. Por ejemplo, en la expresión `length:=(x,y)->(x*x+y*y)^0.5`, el operador lambda se usa para indicar que `x` e `y` estarán ligadas cuando se usa la función «length».

- `x=a..b` : se usa cuando necesitamos delimitar un intervalo (variable limitada + límite superior + límite inferior). Esto significa que `x` va de `a` a `b`.

- `()` : se usa para especificar una prioridad mayor.

- `abc(parámetros)` : funciones. Cuando el analizador sintáctico encuentra una función, comprueba si `abc` es un operador. Si lo es, lo trata como un operador; si no lo es, lo trata como una función de usuario.

- `:=` : definición. Se usa para definir el valor de una variable. Puede escribir cosas como `x:=3`, `x:=y`, donde `y` puede estar definido o no, o como `perímetro:=r->2*pi*r`.

- `?` : definición de condiciones en funciones definidas a trozos («piecewise»). Permite definir operaciones condicionales en &kalgebra;. Dicho de otro modo, es otra forma de especificar una condición «if, elseif, else». Cuando introducimos la condición antes del símbolo `?`, se utilizará dicha condición solo si es verdadera; en cambio, si encuentra un símbolo `?` sin ninguna condición, se tendrá en cuenta el último caso. Por ejemplo: `piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }`

- `{ }` : contenedor &MathML;. Puede usarse para definir un contenedor. Es muy útil a la hora de trabajar con funciones definidas a trozos.

- `= > >= < <=` : operadores relacionales que indican «igual», «mayor», «mayor o igual», «menor» o «menor o igual», respectivamente.

Ahora puede preguntarme por qué debería el usuario preocuparse por &MathML;. La respuesta es fácil. Con esto podremos realizar operaciones con funciones como `cos()`, `sin()` (o cualquier otra función trigonométrica), `sum()` o `product()`. No importa el tipo de función que sea. Podremos usar `plus()`, `times()` y cualquier cosa a la que le corresponda un operador. También se han implementado funciones lógicas, por lo que podremos hacer cosas como `or(1,0,0,0,0)`.

## Uso de la calculadora

La calculadora de &kalgebra; es útil como una calculadora a lo grande. El usuario puede introducir expresiones a evaluar en los modos Calcular y Evaluar, según la selección del menú Calculadora.

En el modo de evaluación, &kalgebra; simplifica la expresión incluso si se encuentra una variable indefinida. Cuando está en modo de cálculo, &kalgebra; calcula todo y si encuentra una variable indefinida muestra un error.

Además de mostrar las ecuaciones introducidas por el usuario y el resultado en la pantalla de la calculadora, también se muestran todas las variables declaradas en un cuadro persistente en la parte de la derecha. Si hace doble clic sobre una variable se mostrará un diálogo que le permitirá modificar su valor (solo es un modo de engañar al registro).

La variable «`ans`» es especial; cada vez que introduzca una expresión, la variable «`ans`» cambiará su valor al del último resultado.

A continuación se muestran funciones de ejemplo que se pueden introducir en el campo de entrada de la ventana de la calculadora:

- `sin(pi)`

- `k:=33`

- `sum(k*x : x=0..10)`

- `f:=p->p*k`

- `f(pi)`

A continuación se muestra una captura de la ventana de la calculadora tras introducir las expresiones de ejemplo anteriores:

Captura de la ventana de la calculadora de &kalgebra; con expresiones de ejemplo Ventana de la calculadora de &kalgebra;

El usuario puede controlar la ejecución de una serie de cálculos usando las opciones del menú Calculadora:

&Ctrl; L Calculadora Cargar guion…

- Ejecuta las instrucciones de un archivo de forma secuencial. Es útil si desea definir bibliotecas o reanudar un trabajo anterior.

Calculadora Guiones recientes

- Muestra un submenú que le permitirá escoger los guiones usados recientemente.

&Ctrl; G Calculadora Guardar guion…

- Guarda las instrucciones que ha introducido desde que comenzó la sesión, con lo que podrá reutilizarlas. Genera un archivo de texto que podrá corregir usando cualquier editor de texto, por ejemplo &kate;.

&Ctrl; S Calculadora Exportar registro…

- Guarda el registro con todos los resultados en un archivo &HTML; que podrá imprimir o publicar.

F3 Calculadora Insertar ans…

- Insertar la variable «`ans`» y facilitar la reutilización de valores anteriores.

Calculadora Calcular

- Un botón de opción para definir el Modo de ejecución a cálculo.

Calculadora Evaluar

- Un botón de opción para definir el Modo de ejecución a evaluación.

## Gráficas 2D

Para añadir un gráfica 2D en &kalgebra;, seleccione la pestaña Gráfica 2D y pulse la pestaña Añadir, que le permitirá añadir una nueva función. A continuación tendrá dirigirse al cuadro de texto de entrada, donde podrá introducir la función.

### Sintaxis

Si quiere usar una función `f(x)` típica, no es necesario que la especifique; en cambio, si quiere usar una función `f(y)` o una función polar, tendrá que añadir `y->` y `q->` como variables limitadas.

Ejemplos:

- `sin(x)`

- `x²`

- `y->sin(y)`

- `q->3*sin(7*q)`

- `t->vector{sin t, t**2}`

Después de haber introducido la función, pulse el botón Aceptar para dibujar la gráfica en la ventana principal.

### Características

Es posible dibujar varias gráficas en la misma vista. Para esto use simplemente el botón Añadir cuando se encuentre en el modo Lista. Puede ajustar el color de cada gráfica.

Puede ampliar la vista y desplazarla con el ratón. Con la rueda del ratón podrá ampliar o reducir la vista. Puede también seleccionar un área con el &LMB;, y el área se ampliará. Desplace la vista con las teclas de dirección del teclado.

La ventana de gráficos 2D se puede definir de manera explícita mediante la pestaña Ventana en una pestaña Gráfico 2D.

En la pestaña Lista de la parte inferior derecha puede abrir una pestaña de Edición para editar o eliminar una función mediante doble clic y poner o quitar la marca de la casilla de verificación situada junto al nombre de la función para mostrarla u ocultarla.

En el menú Gráfica 2D dispone de las siguientes opciones:

- Cuadrícula: Mostrar u ocultar la cuadrícula.

- Mantener las proporciones: Mantener las proporciones mientras amplía o reduce la vista.

- Guardar: Guardar (&Ctrl; S) la gráfica como un archivo de imagen.

- Ampliar/reducir: Ampliar (&Ctrl; +) y reducir (&Ctrl; -).

- Tamaño real: Reiniciar la vista a la ampliación original.

- Resolución: Seguida por una lista de botones de opciones para seleccionar una resolución para los gráficos.

A continuación se muestra una captura de pantalla de un usuario cuyo cursor está en la raíz del extremo derecho de la función, `sen(1/x)`. El usuario ha utilizado una resolución muy alta para mostrar el grafo (ya que oscila al frecuencias muy altas cerca del origen). También dispone de la funcionalidad de cursor vivo, mediante la cual se muestran los valores `x` e `y` en la esquina inferior izquierda de la pantalla cada vez que mueva el cursor a un nuevo punto. Se traza una «línea tangente» viva sobre la función en la posición del cursor vivo.

Aquí se muestra una captura de la ventana gráfica 2D de &kalgebra; Ventana gráfica 2D de &kalgebra;

## Gráficas 3D

Para dibujar una grafica 3D con &kalgebra;, seleccione la pestaña Gráfica 3D, donde verá un campo de entrada en la parte inferior que le permitirá introducir la función. Aún no podrá definir `Z`. Por ahora, &kalgebra; solo admite gráficas 3D que dependen de `x` e `y`, como `(x,y)->x*y`, donde `z=x*y`.

Ejemplos:

- `(x,y)->sin(x)*sin(y)`

- `(x,y)->x/y`

Puede ampliar o reducir la vista con el ratón. Use la rueda del ratón para ampliarla o reducirla. Si mantiene pulsado el &LMB; y se desplaza con el ratón, la gráfica rotará.

Las teclas de las flechas &Left; y &Right; rotan el grafo alrededor del eje `z`. Las teclas de las flechas &Up; y &Down; rotan la vista alrededor del eje horizontal. Pulse W para ampliar el gráfico y S para reducirlo.

En el menú Gráfica 3D dispone de las siguientes opciones:

- Guardar: Guardar (&Ctrl; S) la gráfica como un archivo de imagen o un documento permitido.

- Reiniciar la vista: Reiniciar la vista a la ampliación original en el menú Gráfico 3D.

- Puede dibujar los gráficos con los estilos de Puntos, Líneas o Sólido en el menú Gráfico 3D.

A continuación se muestra una captura de la función denominada «sombrero». Esta gráfica particular se muestra usando el estilo 3D.

Aquí se muestra una captura de la ventana gráfica 3D de &kalgebra; Ventana gráfica 3D de &kalgebra;

## Diccionario

El diccionario proporciona una lista de todas las funciones integradas en &kalgebra;. Se puede usar para encontrar la definición de una operación y sus parámetros de entrada. Es un lugar útil para encontrar las muchas funcionalidades que posee &kalgebra;.

A continuación se muestra una captura de la ventana de la búsqueda de la función coseno en el diccionario de &kalgebra;.

Aquí se muestra una captura de la ventana del diccionario de &kalgebra; Ventana del diccionario de &kalgebra;
&commands;

## Créditos y licencia

- Derechos de autor del programa 2005-2009 &Aleix.Pol;.

Derechos de autor de la documentación 2007 &Aleix.Pol; &Aleix.Pol.mail;.

Traducido por Leticia Martín Hernández leticia.martin@gmail.com y Eloy Cuadra ecuadra@eloihr.net.

&underFDL; &underGPL;
&documentation.index;