











Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Forma de uso de scilab para poder manejar de mejor forma todo aquello que tiene que ver con sus códigos
Tipo: Apuntes
1 / 19
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!












3.Manual básico de Scilab
El entorno de programación de Scilab [1] es parecido al de otros prgramas de cálculo. El prompt queda definido por. --> Pulsando la tecla “Enter” o retorno de carro, se ejecuta la orden escrita tras este prompt. Una orden del estilo: -->k = 5.6; crea la variable k y le asigna el valor 5.6. El punto y coma al final de la instrucción hace que el resultado no se muestre por pantalla, pero la orden tuvo efecto. Scilab no hace diferencia entre números enteros y números reales. Los números se pueden escribir usando la notación usual o la notación científica. Por ejemplo, son válidos los siguientes números:
8.9e 8.9E
-9. Al usar la orden “who”, Scilab muestra por pantalla qué variables está usando en ese momento. Ahí se incluyen no sólo las variables que Scilab usa por defecto, sino también las que el usuario ha creado a lo largo de su sesión de trabajo con el programa. Los espacios en blanco no son imprescindibles en Scilab. Se usan simplemente para facilitar su lectura al usuario. Los nombres de las variables en Scilab pueden contener hasta 24 caracteres. Es imprescindible que el primer carácter sea una letra o el símbolo “$”. El resto pueden ser letras, números o símbolos como “#” , ”_” , “$”, “!”. Los resultados de las operaciones escritas en la línea de comandos, si no tienen asignaciones de variables, van precedidos de la palabra “ans”:
3.1.Introducción ans =
Para conocer el valor de una variable ya definida, basta escribir su nombre y pulsar “Enter”. En Scilab puede haber varias instrucciones en la misma línea, si se separan por punto y comas. j4 = 6; j5 = 9; dj= j4 – j5;
Los símbolos + – * / sirven para realizar las cuatro operaciones básicas: adición, sustracción, producto y división. El signo – sirve también para expresar el signo de un número. Para expresar la potenciación se puede usar ^ o bien **. En una expresión puede haber varios operadores. Las reglas de precedencia de las operaciones son las habituales de las escritura matemática usual. De mayor a menor, los grupos de prioridad son los siguientes: ^ **
3.2.Operaciones básicas
3.2.Operaciones básicas Como se ve, el uso de números complejos es muy intuitivo. Las funciones real, imag, conj y abs, representan, respectivamente, la parte real de un número complejo, su parte imaginaria, el conjugado y el módulo. Todas las funciones de Scilab están generalizadas, para permitir números complejos en su uso.
Un polinomio se puede definir de dos maneras: por sus coeficientes o por sus raíces. Es necesario, además, indicar la variable simbólica del polinomio. La orden p = poly([2 3 5 7], "x", "coeff") define en la variable p el polinomio 2 + 3x + 5x^2 + 7x^3. La orden q = poly([2 3 5], "x", "roots") define en la variable q el polinomio -30+31x-10x2+x3, cuyas raíces son exactamente 2, 3 y 5. Escribir q = poly([2 3 5], "x") produce exactamente el mismo resultado, o sea, "roots" es el tipo de definición por defecto. La doble comilla “ se puede reemplazar por la comilla sencilla '. Más aún, se puede reemplazar 'coeff' por 'c' y 'roots' por 'r'. Es lícito escribir
k = coeff(q,2) Si se utiliza simplemente
3.4.Vectores y matrices La definición de matriz se hace por filas. Los elementos de una misma fila se separan por medio de espacios en blanco o por medio de comas. Una fila se separa de la siguiente por medio de punto y coma o por medio de cambio de línea. Scilab permite crear rápidamente algunos tipos esepciales de matrices:
3.4.Vectores y matrices Si a es una matriz mxn, entonces a(:) es un vector columna de tamaño mnx1. Se obtiene colocando primero la primera columna de a, seguida de la segunda, y así sucesivamente. Si x es un vector columna, entonces x(:) es el mismo vector columna. Si y es un vector fila, entonces y(:) es lo mismo que y'. O sea, que si x es un vector (fila o columna), entonces x(:) es un vector columna con las mismas entradas de x. Así x = x(:) convierte el vector x en un vector columna. Si y es un vector fila, se puede escribir y(5) o y(1,5). Análogamente, si x es un vector columna, se upede escribir x(4) o x(4,1). Para hacer el producto de entre un número y una matriz se usa el operador . Los operadores + y – permiten realizar sumas y restas entre matrices del mismo tamaño. Cuando el producto de matrices es posible (porque las matrices tengan dimensiones compatibles), también se usa para ello el operador . La trasposición de una matriz se indica también por medio de la comilla simple: ' b = n'n La instrucción anterior crea la matriz b, que es el producto de la traspuesta de n y de n. Por lo tanto, b es una matriz cuadrada. Al igual que pasaba con los números complejos, las mayoría funciones de Scilab son válidas para las matrices. La función se aplica elemento a elemento a cada matriz, resultando una matriz del mismo tamaño que el original, pero con la función aplicada a cada uno de sus elementos. Para realizar la multiplicación, división o exponenciación de matrices elemento a elemento, se usa respectivamente los operadores . ./ y .^ Si g es una matriz rectangular g.^(1/2) equivale a sqrt(g) o sea, una matriz del mismo tamaño, cuyos elementos son las raíces cuadradas de los elementos de g. En cambio, si g es una matriz cuadrada, g4=g^(1/2) g4 es una matriz raíz cuadrada de g, o sea, que g4*g4=g Si los tamaños de las matrices son compatibles, dos o más matrices se pueden “pegar” para obtener una matriz de tamaño mayor. Por ejemplo: AA = [a rand(3,2)]
3.5.Funciones elementales para el manejo de matrices fc=size(a) proporciona un vector fila 1x2 con el número de filas y el número de columnas de a. La orden size(a,1) proporciona el número de filas de a. Y análogamente, size(a,2) proporciona el número de columnas de a. tril(a) proporciona la parte triangular inferior de a. triu(a) proporciona la parte triangular superior de a. [q,r] = qr(a) proporciona la factorización qr de la matriz a. a1=pinv(a) calcula la inversa generalizada de Moore-Penrose, también llamada pseudoinversa.
Para resolver sistemas de ecuaciones lineales de primer orden, Ax=b, conocidos la matriz A y el vector b, se pueden usar dos métodos principales en Scilab. x1=inv(A)*b Este primer método se puede usar cuando la matriz A es cuadrada e invertible. Es decir, la solución existe y es única. En este caso, también podría usarse el segundo método: x2=A\b Esto es un algoritmo eficiente de Scilab para hallar la solución. Teóricamente, el resultado debería ser el mismo, pero desde el punto de vista de la precisión numérica, los resultados son semejantes. Para matrices medianamente grandes hay diferencias en el tiempo. La primera forma gasta, aproximadamente, tres veces más tiempo que la segunda. Fuera del caso de solución única hay otros dos casos: el caso del sistema inconsistente (sin solución) y el caso de muchas soluciones (número infinito de soluciones). Si el sistema es inconsistente, entonces se desea encontrar una pseudosolución, la solución por mínimos cuadrados, o sea, se busca un x que minimice el ||A-b||^22 En este caso, la orden x=A\b encuentra una de estas soluciones. Si las columnas de A son linealmente independientes, esta pseudosolución es única. Se puede obtener más ayuda con el comando help backslash.
En Scilab hay dos tipos de programas: los guiones o libretos (scripts) y las funciones. Un guión es simplemente una secuencia de órdenes de Scilab. No tiene parámetros (“argumentos") de entrada ni de salida. En cambio una función sí los tiene.
3.7.Programas: guiones y funciones Por otro lado, las variables definidas en un guión son globales, es decir, después de llamar al guión, estas variables siguen existiendo. En cambio en una función, las variables definidas dentro de la función dejan de existir una vez finalizada la ejecución de la función, son variables locales. Un guión es simplemente un archivo ASCII en el que hay una sucesión de órdenes de Scilab. Generalmente tiene la extensión .sce pero eso no es obligatorio. Puede estar colocado en cualquier carpeta. Scilab contiene un editor de programas llamado Scipad. Se puede usar éste o cualquier otro para escribir un progrma. Hay tres formas de ejecutar un programa:
3.8.Comparadores, operadores lógicos y órdenes de control de flujo Las órdenes de control de flujo son también las usuales en muchos lenguajes de programación:if, select y case, for, while, break, return y abort.
3.8.Comparadores, operadores lógicos y órdenes de control de flujo Igual que ocurre con las estructuras if, las estructuras for se pueden anidar unas dentro de otras.
3.9.Gráficas x=(-2:0.05:3)'; y=sin(x); z=cos(x); plot2d(x,[y z sin(2x)]) En este caso Scilab asigna colores diferentes a cada una de las curvas. Para conocer la correspondencia entre colores y curvas se pueden colocar letreros (“legend”) para las curvas. Se utiliza la opción leg separando los letreros por medio de @. plot2d(x,[y z sin(2x)], leg=”sen(x)@cos(x)@sen(2x)”) Después de haber hecho una gráfica, se le pueden agregar letreros. Se usa xtitle, que tiene 3 parámetros, todos los tres deben ser cadenas. El primero para el letrero general, el segundo para el eje horizontal y el tercero para el eje verticual. Por ejemplo xtitle(“Funciones trigonométricas”,”x”,””) En resumen, una de las formas de utilizar plot2d es plot2d(x,a), donde x es un vector columna y a es una matriz con el mismo número de filas que x. En la figura habrá tantas gráficas como columnas tenga la matriz a. Una forma más general es plot2d(u,v), donde u y v son matrices del mismo tamaño, de m filas y n columnas. Entonces en la misma figura aparecerán la gráfica de la primera columna de u con la primera columna de v, la gráfica de la segunda columna de u con la segunda columna de v, etc. En la figura producida por el siguiente ejemplo está la gráfica de seno entre 0 y 3.14 y la gráfica de la tangente entre -1 y 1. n = 100; a = 0; b = 3.14; h = (b-a)/n; x1 = (a:h:b)'; y = sin(x1); a = -1; b = 1; h = (b-a)/n; x2 = (a:h:b)'; z = tan(x2); plot2d([x1 x2], [y z]); También se puede, usando fplot2d, obtener la gráfica de una función f definida mediante una función de Scilab. En este caso, sólo se necesita el vector de valores de x. Este vector debe ser monótono, es decir, creciente o decreciente. Supongamos que se ha definido la siguiente función
3.9.Gráficas function fx = func4(x) fx = sin(x)-tan(x) endfunction y que se ha cargado el archivo donde está definida, mediante getf... Entonces se puede obtener la gráfica mediante u = (-1:0.01:1)'; fplot2d(u,func4) Si la función es sencilla, no es necesario crear la función en un archivo. Se puede obtener la gráfica mediante: t=(-1:0.01:1.2)'; deff(“[y]=func4b(x)”,”y=x.*x + 2.5”) fplot2d(t,func4b) Algunas veces se desea, no obtener la curva, sino dibujar los puntos, sin que haya “continuidad”, o sea, que los puntos no estén unidos por un segmento de recta. Una forma de hacerlo es mediante un argumento adicional, el estilo. Las siguientes órdenes muestran un ejemplo. xbasc(); x=(-3.2:0.2:3.2)'; y=sin(x); tipo=-1; plot2d(x,y,tipo); Si el estilo, en este ejemplo la variable tipo, es menor o igual a cero, en la gráfica aparecen los puntos representados por un símbolo. Los valores pueden ser 0, -1, -2, ..., - El significado de los cinco primeros es el siguiente: 0:. -1: + -2: x -3:
3.10.Ventajas e inconvenientes del uso de Scilab