Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


manual scilab, Manuais, Projetos, Pesquisas de Mecatrônica

manual scilab

Tipologia: Manuais, Projetos, Pesquisas

2012

Compartilhado em 13/11/2012

eduardo-hoyos-7
eduardo-hoyos-7 🇧🇷

4.5

(2)

1 documento

1 / 84

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Manual de Iniciación de Scilab
Manual
de
Scilab
Pág -1-
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54

Pré-visualização parcial do texto

Baixe manual scilab e outras Manuais, Projetos, Pesquisas em PDF para Mecatrônica, somente na Docsity!

Manual

de

Scilab

  1. Operaciones Básicas 1.1. Operaciones con matrices y vectores 1.1.1. Introducción de matrices desde el teclado 1.1.2. Operaciones con matrices 1.1.3. Tipos de datos 1.1.3.1. Números reales de doble precisión 1.1.3.2. Números Complejos 1.1.3.3. Cadenas de caracteres 1.1.3.4. Otras formas de definir matrices 1.1.3.4.1 Tipos de matrices predefinidos 1.1.3.4.2 Formación de una matriz a partir de otras 1.1.3.4.3 Direccionamiento de vectores y matrices a partir de vectores 1.1.3.4.4 Operador <> (:) 1.1.3.4.5 Definición de matrices y vectores desde fichero 1.1.3.5. Operadores Relacionales 1.1.3.6. Operadores Lógicos 1.2. Funciones de Librería 1.2.1 Características Generales de las funciones de librería 1.2.2. Funciones matemáticas elementales que operan de modo escalar 1.2.3. Funciones que actúan sobre matrices 1.2.3.1 Funciones elementales 1.2.3.2 Funciones Especiales 1.2.3.3 Funciones de Factorización y/o Descomposición Matricial 1.3. Más sobre operadores relacionales con vectores y matrices 1.4. Otras funciones que actúan sobre vectores y matrices
  1. Gráficos tridimensionales 5.1 Tipos de funciones gráficas tridimensionales 5.1.1 Dibujo de líneas: Función PARAM3D 5.1.2 Dibujo de mallados: Funciones PLOT3D, PLOT3D2, PLOT3D 5.1.3 Dibujo de líneas de contorno: Función CONTOUR
  2. Otros aspectos de Scilab 6.1 Guardar variables y estados de una sesión: Comandos save y load 6.2 Guardar sesión: Comando diary 6.3 Medida de tiempos y de esfuerzo de cálculo 6.4. Funciones de función

1. Operaciones Básicas

1.1. Operaciones con matrices y vectores

Como se comentó en la introducción que hemos visto en el punto anterior, Scilab es un programa creado para trabajar con matrices, por lo tanto, este punto es probablemente el más importante y en el que mejor tenemos que aclararnos para empezar a trabajar. Tenemos muchas opciones para trabajar con ellas, podemos intercambiar matrices, permutarlas, invertirlas; Scilab es una herramienta de cálculo muy potente en lo que a matrices se refiere.

1.1.1. Introducción de matrices desde el teclado

Las matrices y vectores son variables del programa cuyos nombres podemos definir, siempre y cuando no utilicemos los caracteres que el programa tiene como caracteres prohibidos. Para definir Scilab, se determinan el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen por filas ; los elementos de una misma fila están separados por blancos o comas , mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Tomemos como ejemplo: -->a=[1 2 1;3 4 2;5 3 1]

Cuya salida será: a =

! 1.0E+00 2.0E+00 1.0E+00! ! 3.0E+00 4.0E+00 2.0E+00! ! 5.0E+00 3.0E+00 1.0E+00!

Comenzamos con las operaciones más básicas que podemos encontrar, la suma y la resta de matrices: -->a+b ans =

! 2. 5. 6.! ! 5. 8. 5.! ! 6. 5. 2.!

-->a-b ans =

! 0. - 1. - 4.! ! 1. 0. - 1.! ! 4. 1. 0.!

Si realizamos la multiplicación de matrices con el operando ‘ tendremos que tener cuidado con que el número de columnas de la primera matriz debe coincidir con el número de filas de la segunda: -->ab ans =

! 6. 13. 12.! ! 13. 29. 29.! ! 12. 29. 35.!

También podemos utilizar una multiplicación elemento a elemento, que aunque no tiene demasiado sentido como multiplicación de matrices, si que es muy utilizable en el caso de que la matriz no sea más que un conjunto ordenado de valores. -->a.*b ans =

! 1. 6. 5.! ! 6. 16. 6.! ! 5. 6. 1.!

A continuación vamos a definir una nueva matriz a a partir de una función que genera valores aleatorios entre 0 y 1. -->rand(2,2) ans =

! 0.2113249 0.0002211! ! 0.7560439 0.3303271!

A partir de esta matriz a calculamos su inversa con el comando inv(a): -->d=inv(a) //es necesario que la matriz sea cuadrada y que posea determinante d =

! - 2. 1. - 4.9E-16! ! 7. - 4. 1.! ! - 11. 7. - 2.!

De igual manera que se define una matriz podemos definir un vector: -->x=[10 15 20] //vector fila x =

! 10. 15. 20.!

-->y=[10;15;20]; //vector columna

-->z=[10,15,20]’ //vector columna z =

! 10.! ! 15.! ! 20.!

Podemos observar, podemos definir vectores fila y vectores columna, con sólo hacer la traspuesta del vector en la definición. También podemos definir un vector columna como si hicieramos una matriz de 1xn Como podemos ver, no hemos obtenido resultado tras realizar la operación; esto es debido a que hemos puesto un “ ; ” al final de la línea de comando, esto hace que no salga por pantalla lo que hemos ejecutado, cosa que resulta muy útil cuando las matrices/vectores son de un número muy grande (100, 1000, …) y por lo tanto, difíciles de manejar visualmente. En Scilab se accede a los elementos de un vector poniendo el índice entre paréntesis (por ejemplo x(3) ó x(i) ). Los elementos de las matrices se acceden poniendo los dos índices entre paréntesis, separados por una coma (por ejemplo A(1,2) ó A(i,j) ). Las matrices se almacenan por columnas (aunque se introduzcan por filas , como se ha dicho antes), y teniendo en cuenta esto puede accederse a cualquier elemento de una matriz con un sólo subíndice. Por ejemplo, si A es una matriz (3x3) se obtiene el mismo valor escribiendo A(1,2) que escribiendo A(4).

1.1.2. Operaciones con matrices

Scilab puede operar con matrices por medio de operadores y por medio de funciones. Se han visto ya los operadores suma (+), producto (*) y traspuesta ('), así como la función invertir inv( ). Los operadores matriciales de SCILAB son los siguientes:

  • adición o suma
  • sustracción o resta
  • multiplicación ' traspuesta ^ potenciación \ división-izquierda / división-derecha .* producto elemento a elemento ./ y .\ división elemento a elemento .^ elevar a una potencia elemento a elemento Estos operadores se aplican también a las variables o valores escalares, aunque con algunas diferencias. Todos estos operadores son coherentes con las correspondientes operaciones matriciales: no se puede por ejemplo sumar matrices que no sean del mismo tamaño. Si los operadores no se usan de modo correcto se obtiene un mensaje de error. Véase el siguiente ejemplo de tres ecuaciones formadas por una recta que no pasa por el origen y los dos ejes de coordenadas:

Vamos a ver como funcionan una serie de operadores: -->a a =

! 1. 2. 1.! ! 3. 4. 2.! ! 5. 3. 1.!

-->b b =

! 1. 3. 5.! ! 2. 4. 3.! ! 1. 2. 1.!

-->a/b ans =

! 0. 0. 1.! ! - 2. 7. - 9.! ! - 7. 24. - 36.!

-->a\b ans =

! 0. - 2. - 7.! ! 0. 7. 24.! ! 1. - 9. - 36.!

Si los operadores « / » y « * » van precedidos de un “.* ” La operación se realiza elemento a elemento: -->a./b ans =

! 1. 0.66667 0.2! ! 1.5 1. 0.66667! ! 5. 1.5 1.!

-->a.\b ans =

! 1. 1.5 5.! ! 0.66667 1. 1.5! ! 0.2 0.66667 1.!

Así pues, para Scilab el infinito se representa como % inf. Scilab tiene también una representación especial para los resultados que no están definidos como números, que se representa como Not a Number ( %nan ): -->%nan ans =

Nan

Los NaN se propagan al realizar con ellos cualquier operación aritmética, en el sentido de que, por ejemplo, cualquier número sumado a un NaN da otro NaN. Scilab tiene esto en cuenta. Algo parecido sucede con los Inf. -->%nan* ans =

Nan

-->%nan*%nan ans =

Nan

-->%nan*%inf ans =

Nan

Podemos encontrar 3 variables predefinidas por Scilab que nos dan los valores máximos y mínimos de este tipo de datos: ƒ eps devuelve la diferencia entre 1.0 y el número de coma flotante inmediatamente superior. Da una idea de la precisión o número de cifras almacenadas. En un PC, eps vale 2.2204e-016. ƒ realmin devuelve el número más pequeño con que se puede trabajar (2.2251e-308) ƒ realmax devuelve el número más grande con que se puede trabajar (1.7977e+308)

1.1.3.2. Números complejos (complex)

Muchas veces nos vamos a encontrar que el cálculo que necesitamos ejecutar nos lleva a tener que definir el cuerpo de los números complejos, dado que el cuerpo de los números reales no es suficiente, por ejemplo, para realizar transformadas de Fourier o Laplace. Para ello se define la variable compleja % i : -->%i %i =

i

1.1.3.3. Cadenas de caracteres

Para crear una cadena de caracteres (string) en Scilab podemos hacerlo de estos dos modos: -->a='cadena de caracteres' a =

cadena de caracteres -->a=”cadena de caracteres” a =

cadena de caracteres

Debido a que para su uso es necesario un conocimiento previo de las funciones orientadas a matrices, postpondré otras explicaciones hasta que se hayan explicado estas, al igual que con los strings , se postpone la explicación de hipermatrices, structs y cell arrays. Ya han aparecido algunos ejemplos de variables y expresiones matriciales. Ahora se va a tratar de generalizar un poco lo visto hasta ahora. Una variable es un nombre que se da a una entidad numérica, que puede ser una matriz, un vector o un escalar. El valor de esa variable, e incluso el tipo de entidad numérica que representa, puede cambiar a lo largo de una sesión de SCILAB o a lo largo de la ejecución de un programa. La forma más normal de cambiar el valor de una variable es colocándola a la izquierda del operador de asignación (=). Una expresión de SCILAB puede tener las dos formas siguientes: primero, asignando su resultado a una variable, variable = expresión y segundo evaluando simplemente el resultado del siguiente modo, expresión en cuyo caso el resultado se asigna automáticamente a una variable interna de SCILAB llamada ans (de answer ) que almacena el último resultado obtenido. Se considera por

defecto que una expresión termina cuando se pulsa intro. Si se desea que una expresión continúe en la línea siguiente, hay que introducir tres puntos (...) antes de pulsar intro. También se pueden incluir varias expresiones en una misma línea separándolas por comas (,) o puntos y comas (;). Si una expresión termina en punto y coma (;) su resultado se calcula, pero no se escribe en pantalla. Esta posibilidad es muy interesante, tanto para evitar la escritura de resultados intermedios, como para evitar la impresión de grandes cantidades de números cuando se trabaja con matrices de gran tamaño. A semejanza de Fortran , SCILAB distingue entre mayúsculas y minúsculas en los nombres de variables; además no hace falta declarar las variables que se vayan a utilizar. Esto hace que se deba tener especial cuidado con no utilizar nombres erróneos en las variables, porque no se recibirá ningún aviso del ordenador. Cuando se quiere tener una relación de las variables que se han utilizado en una sesión de trabajo se puede utilizar el comando who. Existe otro comando llamado whos que proporciona además información sobre el tamaño, la cantidad de memoria ocupada y el carácter real o complejo de cada variable. El comando clear tiene varias formas posibles: ƒ clear sin argumentos, clear elimina todas las variables creadas previamente (excepto las variables globales). ƒ clear A, b borra las variables indicadas.