# Sesión 1: Introducción a Maxima.
Cálculo simbólico y cálculo aproximado.
Errores y estabilidad numérica.

## Introducción a Maxima

### Operaciones elementales

2+3

5-3

2*3

8/2

6^2

### Cálculo simbólico y numérico

3 + 1/2;

3.0 + 1/2;

3 + 1/2, numer;

Introducimos los números pi y e: 

float(%pi + %e);

bfloat(%pi + %e);

fpprec : 50$
bfloat(%pi^5 + %e^2);

### Asignación de variables

x : 23;
y : 48;
x*y;

x/y;

x/y, numer;

x-y;

Un ejemplo de conflicto entre variables: queremos resolver la ecuación x^2+3x-2=0

solve(x^2+3*x-2=0, x);

Dos formas de solucionar el problema:

solve('x^2+3*'x-2=0, 'x);

x;

kill(x) $
solve(x^2+3*x-2=0, x);

x;

También podemos trabajar con expresiones simbólicas:

expr : a+b/a+b^2+sqrt(b/a);

ratsimp(expr);

radcan(expr);

expand(expr);

expr,a=1,b=2;

a;

### Definición de funciones

Las funciones elementales más usuales son:
  sqrt(), sin(), cos(), exp(), log()

f(x) := x^2 + sin(x) - exp(x);

f(3);

f(3.9);

plot2d([f(x)], [x,-5,5],
 [plot_format, openmath])$

### Derivación e integración exactas

diff(f(x),x)

diff(f(x),y)

integrate(f(x),x)

integrate(f(x),x,-1,0)

integrate(exp(-x^2),x)

integrate(exp(-x^2),x,-1,0)

## Error por cancelación de dígitos en una operación simple

kill(all);

a : 1.0 $
b : 10.0^20 $
c : -10.0^20 $
[(a+b)+c,a+(b+c)];

a : 123456789012.13 $
b : 123456789012.12 $
[a^2-b^2,(a+b)*(a-b)];

for i : 1 thru 18 step 1 do (
    x : 33.12*10^i,
    r1 : sqrt(x)/(sqrt(x+1)+sqrt(x)),
    r2 : sqrt(x)*(sqrt(x+1)-sqrt(x)),
    print([i, r1, r2, r1-r2])
)$