# Primer contacto con wxMaxima

OBJETIVO: Realizar diversos cálculos de prueba para familiarizarse con el programa.

- Empezar abriendo una ventana en blanco con la pestaña "Archivo -> Nuevo".

- El documento se puede salvar y guardar con la pestaña "Archivo -> Guardar"
o "Archivo -> Guardar como", con extension .wxmx (o bien .wxm)

## OPERACIONES BÁSICAS

### Comenzar con 1+1. Ejecutar con "Mayús+Enter" 

Notas: TODOS LOS COMANDOS SE EJECUTAN CON "Mayús+Enter".
           PARA FIN DE LINEA Y SEPARAR COMANDOS SE USA ";"

### Realizar varias operaciones aritméticas con "+,-,*,/", y con potencias "^"

CALCULA  (1+2+3+4+5)/5

CALCULA  1+2*3; (1+2)*3  

CALCULA  1+2/3^4; (1+2)/3^4; 1+(2/3)^4

Notas: - Recordad separar las operaciones con ";".
       - Fijaos en la prioridad de las operaciones. 
         Los errores de cálculo por no poner paréntesis son MUY FRECUENTES...

### Operar con los numeros %pi, %e, %i

CALCULA   2*%pi;  1/%e; %i^2; %e^(%i*%pi)

### Opera con las funciones sqrt, exp, log, sin, cos, tan

CALCULA  sqrt(9*x^2); exp(2); log(%e)

 sin(0); cos(%pi); tan(%pi/3)

asin(1); acos(1/2); atan(1)

Nota: "log" SIEMPRE calcula ln, el logaritmo neperiano.

## FRACCIONES Y DECIMALES

### - Maxima opera por defecto con aritmética racional:
   - si introducimos números enteros o fracciones, el resultado será una fracción.
   - si introducimos algún decimal, el resultado aparecerá con decimales.

CALCULA  1/3; 1+2/3; 3/2*4/5;

 1.0/3; 1.0+2/3; 1.5*0.8

Para cambiar la aritmética racional por aritmética decimal, ir a la pestaña 

"Numérico -> Conmutar salida numérica"

o bien escribir el comando  "numer:true" (para decimal), "numer:false" (para racional)

CALCULA con decimales  2*%pi;  1/%e; sqrt(2)

### Maxima trabaja por defecto con precisión 16 (es decir 15 decimales).

Si queremos que en pantalla se visualicen menos decimales (digamos 3), podemos escribir

        fpprintprec:4

    (aprox 3 decimales en pantalla + la parte entera).

REPITE las operaciones anteriores, con 7 decimales en pantalla.

## TRABAJAR CON VARIABLES

### Maxima puede trabajar con números, variables y expresiones simbólicas.

 Ejemplo:  INTRODUCIR  x^2 + (lado)^2;

### Para asignar valores numéricos a las variables se utiliza ":" 

Ejemplo: 
            x:4 ; 
         lado:3 ;
 asigna los valores 4 y 3 a las variables "x" y "lado"; desde entonces, Maxima las reemplazará por su valor numérico, por ejemplo si introducimos de nuevo

    x^2 + (lado)^2;  devuelve 4^2 + 3^2 = 25

ASIGNA los valores 3 y 5 a las variables "b" y "h" para base y altura de un rectangulo,
        y calcula "area: b*h"  y "perimetro:2*b+2*h". Despues calcula "area/perimetro".

### Para eliminar el valor asignado a una variable "x" en algún paso anterior, se usa el comando "kill(x)".

### EVALUAR EXPRESIONES: 

También se puede evaluar una expresión asignando valores a las variables con
    el comando "ev". Por ejemplo,

    ev(x^2 + (lado)^2, x=5, lado=6)

### DEFINIR FUNCIONES:

 Se puede definir una funcion con ":="
    Por ejemplo,

                f(x):= sin(x);
                f(%pi);

DEFINE log10(x):= log(x)/log(10), y utilízalo para calcular los logaritmos decimales 
       de x=1, 2, 10, 100.

## SIMPLIFICANDO EXPRESIONES SIMBÓLICAS

### Maxima puede desarrollar productos, simplificar fracciones, etc...     usando las opciones "expandir", "factorizar",... de la pestaña "Simplificar".

SIMPLIFICA LA EXPRESIÓN (a+b)^2-(a-b)^2

EXPANDIR  (a+b)^3

FACTORIZA el número 120 y el polinomio X^2-7*X+12

SIMPLIFICA las expresiones 

         (X^4-1)/(X^2+1);
         (sin(X))^2+(cos(X))^2; 

## DIBUJAR GRÁFICAS DE FUNCIONES

### Se puede usar el comando "plot2d" o bien la pestaña "Gráficos -> Gráficos2D"

Ejemplo: 

    - para dibujar sin(x) entre -pi<x<pi usar

    plot2d (sin(x), [x, -%pi, %pi])

    - para dibujar dos funciones en la misma gráfica se usan corchetes

    plot2d ([sin(x), 5-x^2], [x, -%pi, %pi])

NOTA: Recordar escribir antes kill(x), si "x" estaba definida previamente.

DIBUJA la parábola y=x^2 entre -1<x<4

DIBUJA la función  y= 10/(1+3*exp(-x)) para 0<x<10, 0<y<12

DIBUJA en la misma gráfica la función anterior junto con y=5+5*sin(5*x)

### PREFIJO WX: 

  - el comando "plot2d" abre la figura en otra ventana, perdiéndose la figura al cerrar dicha ventana (hay que cerrar para seguir calculando).

    - el comando "wxplot2d" abre la figura directamente en la hoja de cálculo, donde queda guardada durante toda la sesión. 

REPITE la última gráfica usando wxplot2d

### COMANDO DRAW2D:

A menudo usaremos el comando "draw2d", que vale para gráficas en ecuaciones explícitas, implícitas, paramétricas,... (y para otras cosas); por ejemplo 

draw2d(explicit(exp(-x^2),x,-3,3));
draw2d(implicit(x^2+y^4=1,x,-3,3,y,-3,3));
draw2d(parametric(2*cos(t),sin(t),t,0,2*%pi));

DIBUJA la elipse x^2/4 + y^2/9 =1

DIBUJA las curvas anteriores en la misma gráfica

## TRABAJAR CON LISTAS

### Pueden definirse listas de números con los corchetes, por ejemplo  x:[2,4,6,8,10]

DEFINIR la lista anterior, y calcular x^2, ln(x), 1/x.

### Las listas son útiles en estadística, por ejemplo mean(x) y std(x) calculan la media y desviación típica de la lista "x"

DEFINIR dos listas "x", "y" con los datos del ejercicio 2 de Hoja 1, y calcular sus medias y dt.

### Para saber el valor de un elemento de la lista se usan corchetes.

Ejemplo:
            
            x[3];    devuelve el tercer elemento de la lista 

### Para crear una nueva lista eliminando un elemento se usa "delete"

Ejemplo: queremos eliminar el 4 de la lista x=[0,2,4,6,8]

            x:[0,2,4,6,8];
            y:delete(4,x);

DEFINIR la lista y anterior, definir otra lista y1 eliminando el 0, y calcular 1/y1.

### Para pegar varias listas se usa "append"

Ejemplo: append(x,y)

DEFINIR una nueva lista pegando las 2 listas del ejercicio 2 de la hoja 1,
        y calcular la media y dt de la nueva lista.

## Ejercicio: errores típicos. Inserta los comandos, explica los errores y corrige.

### Queremos calcular varios senos en la misma línea y escribimos

sin(0), sin(%pi/4), sin(%pi/3), sin(%pi/2)

### Queremos escribir el polinomio x^2 +2x +1 y calcular su valor en x=1, y escribimos

x=1; x^2+2*x+1 

### Lo mismo que el anterior, pero escribimos

ev(x^2+2x+1, x=1)

### Queremos calcular ln(x)+ sin^2(y) en x=1, y=pi, y escribimos

x:1;
y=pi;
ln(x)+sin^2(y);

### queremos calcular y=x^2 en x=2, y dibujar la gráfica; escribimos

x:2; x^2;
plot2d(x^2,[x,-3,3]);

## Comentarios generales sobre celdas

### ABRIR Y CERRAR CELDAS

- Para abrir una nueva celda de "input" ir a la pestaña "Celda -> Nueva celda de entrada"
- Para abrir una nueva celda de TEXTO ir a la pestaña "Celda -> Nueva celda de texto"
- Para "ocultar" el output de una celda, pinchar el triangulito que tienen arriba a la izquierda.
- Una nueva celda de cálculo comienza automáticamente si comenzamos a escribir en la
  parte blanca entre dos celdas. 
  Haciendo "click" con el raton dcho en zonas intermedias blancas, podemos también abrir 
  una celda de texto o de título.
- También se genera una nueva celda reescribiendo sobre una celda anterior,
  aunque en ese caso se pierde el texto de la celda original. 

  RECORDAR: PARA EJECUTAR CELDAS HAY QUE PULSAR "Mayús+enter" 

### SELECCIONAR CELDAS

- Para seleccionar una celda, hacer "click" en el espacio delimitado por la barra de la izquierda   (excepto en el triangulito, que la oculta parcialmente).
- Una vez seleccionada una celda la zona de la izda se pone de color azul.
  Las celdas seleccionadan se pueden borrar (con "supr") o copiar, cortar y pegar en otro lugar; operaciones habituales en cualquier editor.
- Seleccionar varias celdas a la vez: hacer "click" sin soltar el botón del ratón, y arrastarlo por las celdas que se desea seleccionar.

- EVALUAR CELDAS: Cuando se guarda un fichero como .wxm y se vuelve a abrir, las celdas aparecen sin ejecutar.
  Para ejecutarlas, ir a la pestaña "Celda -> Evaluar todas las celdas".

PRACTIQUE LOS RECURSOS ANTERIORES!!

### ATAJOS DE USO DE LÍNEAS PREVIAS

Las etiquetas "%i1,%i2,..." y "%o1,%o2,...", se pueden utilizar a lo largo de una
sesión para evitar reescribir las correspondientes expresiones.

Por ejemplo si tenemos

(%o12)   1/3

entonces  "%o12*5" nos devuelve "5/3".

La etiqueta "%" por defecto reescribe la última salida. 