Guia_1._Scilab (1) (2)

9
Universidad Centroamericana José Simeón Cañas Métodos Numéricos y Programación Introducción a Scilab Scilab es un software libre desarrollado, por INRIA-Unité de recherche de Rocquencourt, para la solución de sistemas de control, procesamiento de señales y otras aplicaciones matemáticas o cálculos 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 (véase  Ilustración 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. Exploración de variables (Browsevar). Esta ventana permite la visualización 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”. Ilustración 1. Ubicación de las ventanas de inicio en Scilab Guía de Laboratorio 1  Ciclo 01/2014 

Transcript of Guia_1._Scilab (1) (2)

  • Universidad Centroamericana Jos Simen Caas

    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

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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.

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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: Nombre_de_variable=valor_numrico Vector fila : Nombre_de_variable=[valor1,valor2,valor2] Vector columna : Nombre_de_variable=[valor1;valor2;valor2] Matriz: 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

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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).

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    Mtodos Numricos y Programacin

    A

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

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

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

    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,)

    A

    (1) (4) (7)

    (2) (5) (8)

    (3) (6) (9)

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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.

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    Mtodos Numricos y Programacin

    o i: Aproximacin entero menor.

    o 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.

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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 Identificar el problema que se plantea programar.

    o Definir qu datos son necesario como entradas para resolver el problema y

    cules sern las variables de salida con el problema ya resuelto.

    o 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:')

    Gua de Laboratorio 1 Ciclo 01/2014

  • Universidad Centroamericana Jos Simen Caas

    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 abs(a). valor absoluto de a.

    o det(x). calcula el determinando de una matriz cuadrada x.

    o diag(x). extrae la diagonal principal de una matriz x.

    o exp(a) o %e^a. exponencial del nmero a.

    o %i. Indica que el nmero es imaginario (-1)

    o inv(x). Calcula la matriz inversa de x.

    o isnan(a). evala si el contenido de la variable a es NaN devolviendo un T si

    es as, sino devuelve F.

    o isreal(a).evala el contenido de la variable a y si es un nmero real,

    Devuelve un T, sino devuelve F.

    o fix(x). redondea al entero menor un numero x.

    o length(a). devuelve el tamao del vector a, es decir un nmero que hace

    referencia al nmero de elementos en el vector.

    o linspace(a,b,n). genera un vector con n elementos, que inicia en el nmero

    a y termina en b.

    o log(a). logaritmo natural del nmero a.

    o log10(a): logaritmo base 10 del nmero a.

    o max(x). valor mximo de un vector o matriz x.

    o [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.

    o module(x,y). Realiza la divisin de x/y y devuelve el residuo de esta.

    o 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.

    o ones(a,b): forma una matriz de ceros de a filas y b columnas.

    o %pi. Devuelve el valor del nmero pi.

    o 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.

    o sin(a), cos(a), tan(a). funciones trigonomtricas1 de la variable a.

    o asin(a), acos(a), atan(a). funciones trigonomtricas inversas de la variable a.

    o sqrt(a). raz cuadrada del nmero a.

    o sum(a). realiza la sumatoria de todos los elementos de a.

    o zeros(a,b). forma una matriz de ceros de a filas y b columnas.

    1Scilab trabaja por default en radianes.

    Gua de Laboratorio 1 Ciclo 01/2014