// // 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. // Programa desarrollado por INRIA y ENPC (Francia) // 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 a*b //multiplicacion a/b //division a^b //potencia pause who //listar todas las variables activas pause // Constantes predefinidas de SCILAB %e //e = base del logaritmo natural %i //i = numero imaginario %pi //pi %inf //infinito %nan //not-a-number %t //valor logico = verdadero (true) %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 A*B //multiplicacion B*A D*x' pause rank(A) //rango de una matriz inv(A) //inversa de una matriz cond(B) //numero de condicion det(C) //determinante de una matriz 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" //============================================================== // Funciones elementales de SCILAB //============================================================== pause round([1.25 1.50 -1.25 -1.75]) //Redondeo abs([1.25 1.50 -1.25 -1.75]) //Redondeo sign([-2.4 0.0 5.4]) sqrt([-2.4 0.0 5.4]) // //SCILAB: operaciones con numeros complejos // z = 3 - 4*%i //Definiendo un numero complejo x = real(z) //Parte real de z y = imag(z) //Parte imaginaria de z abs(z) //Para numeros complejos // Funciones exponenciales %e^2 exp(2) log([1 2 3]) // Logaritmo natural log10([100 200 1000 1500]) // Logaritmo decimal // // Tambien se tienen: // - Funciones trigonometricas (sin, cos, tan y cotg, etc.) // - Funciones trigonometricas inversas (asin, acos, etc.) // - Funciones hiperbolicas (sinh, cosh, tanh) pause //============================================================== // GRAFICOS //============================================================== //Ejemplo de la funcion 'plot' x=[-4*%pi:%pi/100:4*%pi]; y=cos(x); xbasc(); // Borra todos los graficos existentes plot(x,y,'x','y') xtitle("Funcion coseno"); //Titulo del grafico pause // Otra forma x=[-4*%pi:%pi/100:4*%pi]; xbasc(); // Borra todos los graficos existentes plot2d(x,[cos(x)' (cos(x).^2)'],style =[-1 -2],leg="cos(x)@cos^2 (x)") xtitle("Funcion coseno y coseno cuadrado","X","Y"); //Titulo del grafico y de ejes xgrid() // Agregando una grilla pause