//
// Clase 1: Introduccion al Scilab
//
// Escriba 'resume' despues de cada comando 'pause' para continuar

pause

// Que es SCILAB?
//
// SCILAB es una herramienta de calculo numerico, programacion y 
// graficos disponible sin costo.
// Es similar a otros paquetes como MATLAB, GNU OCTAVE y MATHCAD
//

pause

//
// OPERACIONES BASICAS
//

// Cargando valores a una variable
a = 2.3 
pause

b = 8.4 
pause

a+b     //suma
pause

a*b     //multiplicacion
pause
  
a/b     //division
pause

a^b     //potencia
pause
  
who     //listar todas las variables activas
pause  

// Constantes predefinidas de SCILAB
%e     //e = base del logaritmo natural
pause

%i     //i = numero imaginario
pause

%pi    //pi 
pause

%eps   //epsilon = menor numero representable
pause

%inf   //infinito
pause

%nan   //not-a-number
pause

%t     //valor logico = verdadero (true)

// Probar si 5 > 2
pause

%f     //valor logico = falso (false)
pause

// Creando un vector

x = 100:-5:0
pause

// Introduciendo matrices
A = [1. -2. 3.; 1. -1. 0.; -5.4 8.5 6.] 
pause

B = [ -1. 0. 1. 
-2. 4.5 0.5 
3 1 -2 ] 
pause

// Introduciendo vectores fila
x = [1. 3.5 -%pi ], y = [%e 2.5 3. ], z = [0. 0. 1.] 
pause

// Creando matrices a partir de vectores

C = [x; y; z]  //los vectores son filas de C
pause

r = [x  y  z]  //combinando los vectores en un unico vector fila
pause

D = [x' y' z'] //transponiendo los vectores para convertirlos en filas de la matriz D
pause

// Accediendo a elementos de una matriz

a = D(2,3)   // Elemento de una matriz

pause

a = D(:,3)   // Extrayendo la 3ra. columna

pause

a = D(2,:)   // Extrayendo la 2da. fila

pause

a = D(:,2:$)   // Extrayendo desde la 2da a la 3ra. columna

pause

// Dimension de una matriz

size(D)

pause

//Operaciones matriciales
A + B          //suma
pause

A*B            //multiplicacion
pause
 
B*A
pause
 
D*x'
pause
 
rank (A)      //rango de una matriz
pause
 
inv(A)        //inversa de una matriz
pause
 
cond(B)       //numero de condicion
pause
 
det(C)        //determinante de una matriz
pause
 
spec(A)       //calculando autovalores
pause


// Ejecicio 1:
// Resolucion de un sistema lineal Ax = b
// donde A = |1. 3. 2. |  b = | 2 |
//           |2. 1. -1.|      | 3 |
//           |5. 2. 1. |;     | 4 | 
pause

// Volvemos a cargar la A y b (; para no ver resultado en pantalla)
A =[1 3 2;2 1 -1; 5 2 1];
b =[ 2 3 4]'

// Ahora resolvemos usando funcion 'linsolve'

pause

xb = linsolve(A,b)  
pause

// Multiplicacion punto
//
A = [1 1; 2 2]
B = [4 -1; 0 4]

C= A*B

// Guardar calculos realizados

save('Clase 1')  // Guarda todas las variables

// Para guardar una sesion

diary('Diario')

A = [1 1; 2 2]
B = [4 -1; 0 4]

C= A*B

D = A.*B

diary(0)

// Abrir ahora con un editor de texto el archivo "Diario"

//
// Fin de sesion
//

