# Manual do &kalgebra;

## Introdución

&kalgebra; is a MathML-based graph calculator. Although it was initially MathML oriented it can now be used by everyone with little mathematic knowledge.

Velaquí unha captura da xanela principal do &kalgebra; Xanela principal do &kalgebra;

&kalgebra; main window consists in a Console tab, a 2D Graph tab, a 3D Graph tab and a Dictionary tab. Below these tabs you will find an input field to type your functions or do your calculations.

## Sintaxe

If we want to understand how it works, the best thing we can do is to realize that our input is being converted into MathML although it is not necessary to know MathML. I have based the syntax basically on common sense, it should not be hard for anyone, I’ve looked closely to maxima and maple’s syntax so they look very similar.

Eis unha listaxe dos operadores dispoñíbeis de momento:

- + - * / : Suma, resta, multiplicación e división.

- ^, **: Potencias; pódense empregar os dous. Tamén é posíbel empregar os caracteres unicode ² . As potencias son tamén unha maneira de facer raíces; pódense facer así: a**(1/b)

- -> : lambda. It’s the way to specify the bounded variable in a function.

- x=a..b : This is used when we need to delimitate a range (bounded variable+uplimit+downlimit). This means that x goes from a to b.

- () : Emprégase para especificar unha prioridade maior.

- abc(paráms) : Funcións. Cando o analizador atopa unha función, comproba se abc é un operador. Se o é, trátase como operador; se non o é, trátase como función do usuario.

- := : Definición. Emprégase para definir un valor variábel. Pódense facer cousas como x:=3, x:=y, estando y definido ou non ou perímetro:=r->2*pi*r.

- ? : Piecewise condition definition. Piecewise is the way we can define conditional operations in &kalgebra;. If we introduce the condition before the '?' it will use this condition only if it is true, if it finds a '?' without any condition, it will enter in the last instance. Example: piecewise { x=0 ? 0, x=1 ? x+1, ? x**2 }

- {} : Contedor de MathML. Pódese empregar para definir un contedor. É útil especialmente para traballar con segmentos.

- = > >= < <= : Comparadores de valor para igual que, maior que, maior ou igual que, menor que e menor ou igual que, respectivamente

E agora poderíaseme preguntar que por que se debe preocupar o usuario por MathML? É fácil. Con isto, podemos traballar con funcións como cos(), sin() e outras funcións trigonométricas, sum() ou product(). Non importa de que tipo sexan. Podemos empregar plus(), times() e todo o que teña un operador. As funcións lóxicas tamén están incorporadas, polo que podemos facer cousas como or(1,0,0,0,0).

## Uso da consola

&kalgebra;'s console is useful as a calculator. There you have a list of the declared variables. By double clicking on them you will see a dialog that lets you change their values (just a way to trick the log). Every time you enter an expression, the "ans" variable value will be changed to the last result.

Exemplos:

- sin(pi)

- k:=33

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

- f:=p->p*k

- f(pi)

Menu options:

&Ctrl; N New

- Flushes the log.

&Ctrl; L Load Script

- Executes the instructions in a file sequentially. Nice if you want to define some libraries or resume some previous work.

&Ctrl; G Save Script

- Garda as instrucións que se escribisen desde que comezou a sesión para podelas reutilizar. Xera ficheiros de texto, polo que debería ser doado argallar neles con calquera editor de texto, como Kate.

&Ctrl; S Save Log

- Saves the log with all results into an HTML file to be able to print or publish.

&Ctrl; Q Quit

- Apaga o programa.

## Gráficas 2D

To add a new 2D graph on &kalgebra;, what you have to do is to go to the 2D Graph tab and click in the Add tab to add the new function. Then your focus will go to an input text box where you can type your function.

### Sintaxe

If you want to use a typical f(x) function it is not necessary to specify it, but if you want a f(y) or a polar function, you will have to add y-> and q-> as the bounded variables.

Exemplos:

- sin(x)

- x²

- y->sin(y)

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

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

Unha vez introducida a función, hai que premer o botón Aceptar para mostrar a gráfica na xanela principal.

### Características

Pódense colocar varias gráficas na mesma vista. Só hai que empregar o botón Engadir no modo Lista. Pódeselle asignar a súa propia cor a cada gráfica.

A vista pódese ampliar e mover co rato. Coa rodiña pódese achegar e alonxar. Tamén se pode seleccionar unha área co botón esquerdo do rato e esta área amplíase. A vista móvese coas teclas das frechas.

Na lapela Lista pódese abrir un menú de contexto co &RMB; sobre unha función e acochala ou eliminala.

No menú Gráfica 2D hai estas opcións:

- Mostrar ou acochar a grade

- Manter as proporcións durante a ampliación

- Achegar (&Ctrl; +) e afastar (&Ctrl; -)

- Gardar (&Ctrl; S) a gráfica como un ficheiro de imaxe

- Restaurar a vista á ampliación orixinal

- Seleccionar unha resolución para as gráficas

## Gráficas 3D

To draw a 3D Graph with &kalgebra; you will have to go to the 3D Graph tab and you will see an input field at the bottom where you will type your function. Z can not be defined yet, for the moment &kalgebra; only supports implicit 3d graphs dependent only on the x and y, such as (x,y)->x*y, where z=x*y.

Exemplos:

- sin(x)*sin(y)

- x/y

A vista pódese ampliar e mover co rato. Coa rodiña pódese achegar e alonxar. Mantén o &LMB; e move o rato para xirar a gráfica.

As frechas esquerda e dereita xiran a gráfica arredor do eixo z; as frechas para riba e para baixo rotan arredor do eixo horizontal da vista.

No menú Gráficas 3D atópanse estas opcións:

- Enable or disable transparency

- Gardar (&Ctrl; S) a gráfica como un ficheiro de imaxe

- Restaurar a vista á ampliación orixinal

- Draw the graphs with dots, lines or solid

## Dicionario

The dictionary is a collection of all &kalgebra; available operations. It can be useful to check in the dictionary what is an operation useful for and to know how many parameters does a function stand for.

## Créditos e licenza

- Copyright do programa 2005-2009 &Aleix.Pol;

Copyright da documentación 2007 &Aleix.Pol; &Aleix.Pol.mail;

Tradución da documentación: Xosé Calvo - http://trasno.net/

&underFDL; &underGPL;

## Instalación

### Como obter o &kalgebra;

&install.intro.documentation;

### Compilación e instalación

&install.compile.documentation;
&documentation.index;