You are on page 1of 9

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

Introduccin a Scilab
Scilab es un software libre desarrollado, por INRIA-Unit de recherche de Rocquencourt, para la solucin de sistemas de control, procesamiento de seales y otras aplicaciones matemticas o clculos ingenieriles de gran complejidad.

Entorno de Scilab. Una vez se inicia Scilab, se observa que aparecen 4 ventanas internas las cuales se consideran las principales al momento de estar trabajando en Scilab (vase Ilustracin 1), estas son: 1. Navegador de Archivos (file browser). esta ventana, se observan todas las carpetas y programas, desde los ejecutables en Scilab hasta los no ejecutables por l. 2. Consola de Scilab (Console).En esta ventana, se ejecutan todos los comandos de Scilab as como todo programa que se encuentren guardados en el Navegador de Archivos. 3. Exploracin de variables (Browsevar). Esta ventana permite la visualizacin del formato de las variables utilizadas y su contenido. 4. Historial de comandos (Commandhistory). Esta ventana, guarda de forma ordenada (por fecha y hora de abertura de Scilab) todos los comandos y caracteres ejecutados en la Consola de Scilab.

Ilustracin 1. Ubicacin de las ventanas de inicio en Scilab

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

VARIABLES. En Scilab, las variables que se pueden utilizar son infinitas dado que este software, hace distincin de maysculas y minsculas, es decir, a no es igual a A, por lo cual, se debe estar muy seguro de la variable a la cual se desea hacer referencia. Por otro lado, los nombres de variables permiten cualquier tipo de combinacin de letras y nmeros, por lo cual se pueden usar nombres desde a hasta djsadbk325r3, es de mencionar que un nombre de una variable no puede iniciar con un dato nmero. Adems, cabe destacar que a partir de este momento, se hablaran de vectores y matrices por lo cual estos conceptos deben estar lo ms claros posibles. Una Matriz ser un arreglo de nmeros o caracteres contenidos en una variable. Es decir, lo que normalmente se conoce como matriz en el mundo de la ingeniera. Sin embargo, existen matrices que poseen una sola columna o una sola fila, por lo cual a estos se conocern como vectores.

FORMATO DE VARIABLES. Al momento de utilizar Scilab para la programacin, es importante conocer en que formato estn las variables dado que, de esto depender la operacin que se puede realizar. Los distintos formatos permiten que las operaciones que se realicen sean las correctas o que se genere un error dado que el formato no es compatible para la operacin pedida. Existen varios formatos, pero los ms importantes son: 1. Numrico o double". Este formato permite la realizacin de cualquier operacin matemtica (suma, resta, multiplicacin, divisin, potenciacin etc). 2. Cadena de caracteres o String. Este formato es que hace referencia a letras o texto y nmeros. Este se escribe entre comillas o comillas simples Algo que es muy importante resaltar es que que sea un nmero no implica que est en formato numrico, es decir, que puede tenerse una variable que contenga nmeros y este en formato string. Sin embargo, esto no aplica de la misma manera para los caracteres. Como dato adicional, al realizar las distintas operaciones con matrices y vectores, es importante saber los resultados que estas pueden mostrar, estos son: 1. Valor numrico deseado. 2. Inf. Significa infinito, usualmente generado por una divisin entre cero. 3. NaN. Significa Not-a-Number, es decir, no es un nmero ocurre cuando se llega a una forma matemtica indeterminada como cero entre cero.

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

COMANDOS BSICOS e INTRODUCCIN DE VECTORES Y MATRICES. Como se coment anteriormente, el consola de Scilab es el lugar en donde se introducir absolutamente todos los comandos, vectores y matrices que deseen ejecutarse. En primer lugar, se iniciar con la introduccin vectores y matrices (vase Ilustracin 2Error! No se encuentra el origen de la referencia.). Para introducir asignar un valor numrico a una variable, simplemente se sigue alguna de las siguientes sintaxis: Valor numrico nico: Vector fila : Vector columna : Matriz: Nombre_de_variable=valor_numrico Nombre_de_variable=[valor1,valor2,valor2] Nombre_de_variable=[valor1;valor2;valor2] Nombre_de_variable=[valor1,valor2;valor3,valor4]

Ilustracin 2. Sintaxis de vectores y matrices

Para la introduccin de vectores y matrices, es importante no olvidar los corchetes ya que esto es lo que le da el formato de vector o matriz a la variable. Adems, para separar los elementos de una misma fila es necesario escribir una coma ( , ) o dejar un espacio en blanco entre cada elemento. El punto y coma ( ; ) se utilizar en caso se desee escribir la siguiente fila en caso desee una matriz. Un detalle muy importante, es que cuando escribimos de esta manera cada variable, estas van apareciendo inmediatamente en el explorador de variables, es decir, estas se van guardando automticamente y en caso de no guardarlo en una variable, estas aparecern guardadas en una variable llamada ans. En el caso de querer escribir variables con texto, se debe seguir la siguiente sintaxis (vase Ilustracin 3): Nombre_de_variable=texto_deseado

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

Ilustracin 3. Introduccin de texto

Todas las operaciones matemticas conocidas en el mbito ingenieril estn disponibles (suma, resta, multiplicacin, divisin, potenciacin, diferenciacin, integracin, etc). Sin embargo, es importante saber cual desea hacerse y como utilizar cada una de estas, las cuales se presentan a continuacin: + Suma Resta * Multiplicacin / o \ Divisin ^ o ** Potenciacin ' Traspuesta ------------------------------------------------------------------------------------------------.* Producto elemento a elemento .\ Divisin elemento a elemento .^ Potencia elemento a elemento -------------------------------------------------

Por lo anterior, es importante saber si se desea hacer una operacin elemento a elemento o si se desea hacer una operacin matricial (vase Ilustracin 4).

Ilustracin 4. Operacin con matrices en Scilab

El trabajar con matrices, hace que se tenga distintos elementos dentro de las mismas, por lo que es importante saber cmo hacer referencia a cada uno de los elementos en caso de solo necesitar 1 y no todos, para ello se utiliza la siguiente sintaxis: variable(fila,columna) ; sin embargo, los elementos en una matriz se numeran correlativamente en columnas (vase Ilustracin 5 e Ilustracin 6 para ver grficamente), por lo que se puede seguir la sintaxis equivalente: variable(nmero_correlativo).

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

(1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,1) (3,2) (3,3)

(1) (2) (3)

(4) (5) (6)

(7) (8) (9)

Ilustracin 5. Numeracin de elementos en matrices

Ilustracin 6. Numeracin de elementos en Scilab

Otras notaciones tiles son: A(2,:): el resultado sern los datos de la matriz A comprendidos de la fila 2 y todas las columnas (todos los elementos de la segunda fila). A(:,3): resultado sern los datos de la matriz A comprendidos de todas las filas y la columna 3 (todos los elementos de la tercera columna). A(2:3,1:2): el resultado sern los datos de la matriz A comprendidos de las fila 2 a 3 y columna 1 a 2.

Comandos de salida de datos. Scilab cuenta con varios comandos para salida de datos, nos centraremos en 2 que son los ms comunes y por lo tanto lo ms usados uno es disp y el otro es mprintf. o Disp

Disp es la abreviacin de display, es un comando para mostrar variables de salida o un texto cualquiera. Queda a opcin del programador ya utilizarlo para mostrar un texto o una variable dando la capacidad de mostrar ms de un dato a la vez, pudindose mezclar entre variables y texto. Su sintaxis es de la siguiente manera: disp(texto descriptivo,texto descriptivo 2,variable1,variable2,)

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

Ilustracin 7. Ejemplo de uso disp.

En la ilustracin 7 podemos ver un uso de este, en el cual se combino una variable previamente definida con una texto descriptivo, es de mencionar el orden en que los muestra siempre iniciara del ltimo al primero para mostrarlo y los muestra en distinta lnea siempre. o mprintf

Contamos con otro comando para salida de datos, este difiere del disp al permitir mezclar texto con una variable en la misma lnea. La virtud de poder mezclar un texto con una variable permite mostrar de una manera ms agradable la respuesta al usuario del programa. Su sintaxis es la siguiente: mprintf (texto %5.2f texto adicional %2.4f, variable1,variable2)

En su sintaxis cuando se escribe el signo % le indicada a Scilab que ir una variable ah siempre y cuando se termine con un carcter de conversin el cual en su sintaxis es f. En medio del % y la f se sitan los siguientes nmeros que dependen del programador e indican en cada caso: 1 caso: 5.2 indica que se desean 5 espacios designados para colocar el contenido de las variables con 2 decimales. 2 caso: 2.4 indica que se desean 2 espacios designados para colocar el contenido de las variables con 4 decimales. Estos casos se cumplirn siempre y cuando el dato numrico lo permita al no cambiarle de valor. mprintf consta de las siguientes herramientas que son los caracteres de conversin y los caracteres de escape. Dentro de los caracteres de conversin ms comunes tenemos: o e: Notacin exponencial en minsculas (ej. 1.709098e+001). o E: Notacin exponencial en maysculas (ej. 1.709098E+001). o f: Notacin de punto fijo (ej. 17.090980). o g: Representacin en formato corto de las notaciones e o f. o G: Representacin en formato corto de las notaciones E o f.

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

o o

i: Aproximacin entero menor. d: Aproximacin al entero menor.

Mientras que los caracteres de escape ms comunes tenemos: \t Espaciado horizontal (Horizontal tab) \n Cambio de lnea

Ilustracin 8. Ejemplo en el uso de mprintf.

Comandos de entrada de datos. Unos comandos para entrada de datos es el input, este comando se utiliza para que el programa que este ejecutando el usuario le pregunte los datos que necesita como entradas, tiene 2 tipos de sintaxis: Var1=input(texto o pregunta complementaria,s) Al terminar con la s estoy obligando que el dato que se guardara en la variable Var1 se guardara en formato String, es decir una cadena de caracteres. Var2=input(texto o pregunta complementaria) El dato que ingrese el usuario se guardara en la variable Var2 de forma numrica (doubl), si se ingresara caracteres no numricos dar un error ya que nos los reconocer.

Ilustracin 9. Ejemplo de uso del comando input

Uso de Scinote En el men superior de Scilab, justo debajo del men de archivo esta un botn que nos permite abrir Scinotes. Al acceder a ella se ejecutara una ventana nueva.

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

Ilustracin 10. Ventana de una Scinote.

La nueva ventana de Scinote es como un editor que nos permite escribir lneas de cdigo con el fin de poner ciertas ordenes lgicas y realizar un programa que resuelva la problemtica de nuestro inters. Al momento de comenzar a programar es necesario plantear varios pasos bsicos los cuales son: o o o Identificar el problema que se plantea programar. Definir qu datos son necesario como entradas para resolver el problema y cules sern las variables de salida con el problema ya resuelto. Desarrollar un algoritmo. Un algoritmo es la descripcin paso a paso que me llevara a resolver mi problema. En caso de ser un programa muy corto no es necesario un algoritmo muy exhaustivo pero si es un programa muy extenso se vuelve muy til.

Ejercicio: Dentro de un Scinote (Editor) realiza el siguiente programa que calcula las notas finales de la materia de mtodos numricos y programacin.

//Programa para el clculo de nota. nombre=input('Ingrese el nombre de la materia: ','s') labo=input('Ingrese nota de laboratorio: ') tareas=input('ingrese nota de tareas: ') exam1=input('ingrese nota de parcial 1: ') exam_final=input('ingrese nota de examen final: ') proyect=input('ingrese nota de proyecto: ') disp('-------------',nombre,'--------------') mprintf(' Primer Parcial (2.5) Examen final (2.5) Laboratorios (1.5) Tareas (1.5) Proyecto (1.5)\n') mprintf('%12.2f%19.2f%20.2f%17.2f%14.2f',exam1,exam_final,labo,tareas,proyect) nota_final=exam1*0.25+exam_final*0.25+labo*0.15+tareas*0.15+proyect*0.15; disp(nota_final,'Su nota final ser:')

Universidad Centroamericana Jos Simen Caas

Gua de Laboratorio 1 Ciclo 01/2014

Mtodos Numricos y Programacin

COMANDOS BSICOS. En Scilab, existen una infinidad de comandos, pero entre los ms bsicos se encuentran los siguientes con sus respectivas sintaxis: o o o o o o o o o o abs(a). valor absoluto de a. det(x). calcula el determinando de una matriz cuadrada x. diag(x). extrae la diagonal principal de una matriz x. exp(a) o %e^a. exponencial del nmero a. %i. Indica que el nmero es imaginario (-1) inv(x). Calcula la matriz inversa de x. isnan(a). evala si el contenido de la variable a es NaN devolviendo un T si es as, sino devuelve F. isreal(a).evala el contenido de la variable a y si es un nmero real, Devuelve un T, sino devuelve F. fix(x). redondea al entero menor un numero x. length(a). devuelve el tamao del vector a, es decir un nmero que hace referencia al nmero de elementos en el vector. linspace(a,b,n). genera un vector con n elementos, que inicia en el nmero a y termina en b. log(a). logaritmo natural del nmero a. log10(a): logaritmo base 10 del nmero a. max(x). valor mximo de un vector o matriz x. [n,m]=max(x). valor mximo de un vector o una matriz en donde n ser el nmero mayor y m las coordenadas de donde se encuentra. module(x,y). Realiza la divisin de x/y y devuelve el residuo de esta. min(x). valor mnimo de un vector o matriz x. [n,m]=min(x).valor mnimo de un vector o una matriz en donde n ser el nmero mnimo y m las coordenadas de donde se encuentra. ones(a,b): forma una matriz de ceros de a filas y b columnas. %pi. Devuelve el valor del nmero pi. size(a). devuelve el tamao de la matriz a, es decir, dos nmeros que se refieren a cuantas filas y columnas, respectivamente, tiene la matriz. sin(a), cos(a), tan(a). funciones trigonomtricas1 de la variable a. asin(a), acos(a), atan(a). funciones trigonomtricas inversas de la variable a. sqrt(a). raz cuadrada del nmero a. sum(a). realiza la sumatoria de todos los elementos de a. zeros(a,b). forma una matriz de ceros de a filas y b columnas.

o o o o o o o

o o o o o o o o

Scilab trabaja por default en radianes.