SlideShare uma empresa Scribd logo
1 de 11
Scilab una alternativa
libre para el cálculo
numérico (1ra parte)
Scilab es un entorno de trabajo para realizar cálculos numéricos especialmente
destinados a ingenierías. El programa contiene cientos de funciones matemáticas
dando la posibilidad de añadir las propias, si las escribimos en lenguajes como C o
Fortran. Las funciones se pueden mostrar gráficamente en 2D e incluso animarse en
tres dimensiones. También permite crear simulaciones ODE y DAE.


                                                         realizar experimentos que contribuyan
                                                         a la ciencia y a la investigación.
                                                     ✔   Hacer uso de funcionalidades ya
                                                         implementadas,      en    lugar de
                                                         desarrollarlas desde cero
                                                     ✔   Reusar procedimientos y funciones
                                                         realizadas por otros profesionales.
                                                     ✔   .....

Antecedentes                                      Es así que dentro del mundo matemático,
                                                  hoy en día contamos con una amplia
Hoy en día la mayoría de los centros de           variedad de aplicaciones software tanto
formación superior y Universidades, tratan de     comerciales como libres; un fenómeno que
fomentar    la investigación entre sus            destaca actualmente es el uso del software
profesionales y alumnado, pero muchas             libre, que al margen de proveer soluciones
veces esta tarea se ve limitada por la falta de   iguales o mejores a sus similares dentro el
herramientas e instrumentos que permitan          ámbito comercial de pago, permite fomentar
encarar este proceso. Una de estas                directamente el trabajo en comunidad,
herramientas y/o instrumentos la conforman        estudia detalle de soluciones existentes
las aplicaciones software, cuyo objetivo          (tener a disposición el código de la
principal es la automatización de tareas          aplicación), su libre distribución y la
morosas y álgidas que muchas veces las            colaboración dentro los proyectos existentes,
personas deben realizar.                          aspecto que se convierte en fundamental al
Para los profesionales y estudiantes dentro el    momento de encarar una investigación.
mundo académico y de la investigación, es
fundamental contar con herramientas que le
permitan:
                                                  Introducción
   ✔   Convertir la teoría en práctica            Scilab es un software matemático, con un
                                                  lenguaje de programación de alto nivel, para
   ✔   Realizar tareas de forma automática        cálculo científico, interactivo de libre uso y
   ✔   Realizar cálculos matemáticos de           disponible en múltiples sistemas operativos.
       forma más cómoda, sencilla, rápida y       Scilab contiene numerosas herramientas,
       confiable.                                 entre las que destacan: gráficos 2-D y 3-D,
   ✔   Valerse de estas herramientas para         animación, álgebra lineal, matrices dispersas,
Polinomios      y     funciones       racionales,      ✔   Resolución    de    sistemas  de
Simulación: programas de resolución de                     ecuaciones lineales y ecuaciones
sistemas     de    ecuaciones       diferenciales          diferenciales
(explícitas e implícitas), Xcos: simulador por
                                                       ✔   Creación y definición de funciones
diagramas en bloque de sistemas dinámicos
                                                           propias
híbridos,     Control      clásico,      robusto,
optimización LMI, Optimización diferenciable           ✔   Creación y utilización de funciones
y no diferenciable, Tratamiento de señales,                destinadas a aplicaciones específicas
Grafos y redes, Scilab paralelo empleando                  denominados       “Toolboxes”,    con
PVM, Estadísticas, Creación de GUIs,                       aplicación al Control, Optimización,
Interfaz con el cálculo simbólico (Maple,                  Redes Neurales, etc.
MuPAD), Interfaz con TCL/TK.
Otra de sus ventajas es que se pueden               Funciones incluidas
agregar    numerosas      herramientas  o
toolboxes, hechas por los usuarios como                ✔   Entrada/Salida
Grocer una herramienta para Econometría u              ✔   Gráficas
Open FEM (Una caja de Herramientas para
Elementos Finitos), hecha por INRIA.                   ✔   Manejo de matrices
                                                       ✔   Álgebra lineal
Requerimientos                                         ✔   Ecuaciones no lineales
Para su instalación se puede hacer uso del             ✔   Ecuaciones diferenciales
gestor de paquetes propio de cada                      ✔   Optimización
distribución:
                                                       ✔   Estadística
   ✔   YUM, para CentOs, Fedora
                                                       ✔   Funciones financieras
   ✔   apt-get, para Debian, Ubuntu
                                                       ✔   Conjuntos
                                                           Manejo de polinomios
Características                                        ✔

                                                       ✔   Teoría de control
   ✔   Se basa en un lenguaje orientado al
       cálculo numérico simple y fácilmente            ✔   Procesado de señales
       asimilable                                      ✔   Procesado de imágenes
   ✔   Proporciona una consola para el uso             ✔   Procesado de audio
       del interprete de forma interactiva
   ✔   Compatible con la mayoría              las
       instrucciones de Matlab                      Modos de trabajo
   ✔   Puede extenderse mediante el uso de          En Scilab existen dos formas de trabajar:
       procedimientos y funciones por medio            ✔   Modo interactivo: Ejecución de
       de módulos dinámicos                                cualquier expresión, programa o
   ✔   Capacidad de         ser   utilizado   en           función Scilab dentro del entorno. El
       archivos script                                     modo interactivo puede arrancarse en
                                                           modo ventana o en modo texto
   ✔   Es multiplataforma
                                                           ✔   Modo ventana: $ scilab
   ✔   Generación de gráficos en dos y tres
       dimensiones                                         ✔   Modo texto: $ scilab -nw
   ✔   Operaciones matriciales                         ✔   Modo bash: Ejecución de un fichero
                                                           sin necesidad de entrar en el entorno
   ✔   Operaciones     con polinomios          y           del programa.
       funciones de transferencia
✔   $ echo "exec('ordenes.sce'); quit" |   Matriz unidad
           scilab -nw > resultados.out            -->ones(5,5)
                                                   ans =
                                                      1.    1.     1.    1.     1.
Tipos de datos                                        1.    1.     1.    1.     1.
                                                      1.    1.     1.    1.     1.
   ✔   Escalares                                      1.    1.     1.    1.     1.
                                                      1.    1.     1.    1.     1.
   ✔   Vectores y Matrices

                                                  Matriz cero
Escalares                                         -->zeros(5,5)
-->17                                              ans =
 ans =                                                0.    0.     0.    0.     0.
    17.                                               0.    0.     0.    0.     0.
                                                      0.    0.     0.    0.     0.
                                                      0.    0.     0.    0.     0.
Vectores                                              0.    0.     0.    0.     0.

-->[2 4 6 8 10]
 ans =                                            Números aleatorios
    2.    4.    6.      8.     10.
                                                  -->rand()
                                                   ans =
Matrices                                              0.2113249

-->[1 2;3 4]
 ans =                                            -->rand(3,3)
    1.    2.                                       ans =
    3.    4.                                          0.7560439     0.6653811     0.6857310
                                                      0.0002211     0.6283918     0.8782165
                                                      0.3303271     0.8497452     0.0683740
Constantes
                                                  Variables
-->%e
 %e =                                             -->x=1
    2.7182818                                      x =
                                                      1.
-->%pi
 %pi =                                            -->y=rand(2,2)
    3.1415927                                      y =
                                                      0.5608486     0.7263507
                                                      0.6623569     0.1985144
Algunos ejemplos sobre
matrices                                          Intervalos
                                                  -->1:5
                                                   ans =
Matriz identidad                                      1.      2.   3.    4.     5.

-->eye(5,5)                                       -->1:3:25
 ans =                                             ans =
    1.    0.       0.   0.     0.                           column 1 to 6
    0.    1.       0.   0.     0.                     1.     4.    7.     10.    13.    16.
    0.    0.       1.   0.     0.                           column 7 to 9
    0.    0.       0.   1.     0.                     19.     22.     25.
    0.    0.       0.   0.     1.
-->2|2
Operaciones                                    ans =
                                                T
 Operación            Descripción

     +        Adición suma                    Comparación entre vectores
                                              -->[2 4 6 8] <= [5 2 7 8]
      –       Sustracción resta                ans =
                                                T F T T
      *       Multiplicación
                                              Comparación entre matrices
      '       Traspuesta
                                              -->[1 3; 5 7] <= [5 2; 6 7]
                                               ans =
      ^       Potenciación                      T F
                                                T T
             División-izquierda

      /       División-derecha                Variables
                                              En Scilab, las variables no son declaradas:
     .*       Producto         elemento   a   su tipo y su tamaño cambian de forma
              elemento                        dinámica de acuerdo con los valores que le
                                              son asignados. Así, una misma variable
   ./ y .    División       elemento     a   puede ser utilizada para almacenar en
              elemento                        distintos tiempos un valor de tipo distinto. Las
                                              variables se crean automáticamente al
     .^       Elevar a una potencia
                                              asignarles un contenido.
              elemento a elemento
                                              Es importante comprender que el uso de
  == ~= (ó                                    mayúsculas y minúsculas en el nombre de
    <>)                                       una variable hace que esta sea distinta una
     <>                                       de la otra.
              Operadores de comparación
    <=                                        En Scilab es importante determinar que
                                              variables tenemos a disposición en un
     >=                                       determinado instante, eliminar variables, etc;
                                              para esto podemos hacer uso de los
     &                                        siguientes comandos utiles para la gestión de
          |   Operadores lógicos              variables.

      ~
                                                  Función             Descripción
Comparación de escalares                       who             lista las variables actuales
-->2>5
 ans =                                         whos            como el anterior, pero más
  F                                                            detallado

                                               clear           elimina todas las variables
-->2&2                                                         que    existan   en    ese
 ans =                                                         momento
  T
                                               clear a b c     elimina las variables a, b y
                                                               c (atención: sin comas!)

                                               browsevar()     abre, en ventana aparte, un
“ojeador” de la memoria de       date()     Devuelve la Fecha actual
                   trabajo de Scilab: permite
                   “ver”    el   contenido    y
                   características    de    las    Funciones
                   variables e, incluso, editar
                   su valor.                       Scilab por defecto incluye una amplia
                                                   variedad de funciones, entre las más
                                                   utilizadas podemos destacar:
Formatos
Por defecto, Scilab muestra los números en            Función              Descripción
formato variable con 10 dígitos. Se puede
modificar esto mediante el comando format           sqrt(x)       raiz cuadrada de x

                                                    abs(x)        módulo de x
       Función             Descripción
                                                    conj(z)       complejo conjugado de z
 format(14)         14 dígitos
                                                    real(z)       parte real de z
 format(‘e’)        formato    científico    o
                    exponencial, coma flotante      imag(z)       parte imaginaria de z

 format(‘v’)        formato      variable   (por    exp(x)        exponencial de x
                    defecto)
                                                    log(x)        logaritmo natural de x
 format(‘v’,20) formato variable con 20
                dígitos                             log10(x)      logaritmo decimal de x

 format(‘e’,15) formato científico con 15           rat(x)        aprox. Racional de x
                dígitos
                                                    modulo(x,y) resto de dividir x por y

                                                    floor(x)      valor entero más próximo
Algunos utilitarios                                               hacia -∞
Dentro de Scilab muchas veces tenemos la
necesidad de incluir ficheros o variables de        ceil(x)       valor entero más próximo
sistema, para esto están disponibles algunos                      hacia +∞
comandos utilitarios, como:
                                                    sin(x)        seno

                                                    cos(x)        coseno
 Función                Descripción
                                                    tan(x)        tangente
 ls            Lista de ficheros del directorio
               actual (como Unix)                   asin(x)       arco seno
 dir           Lista de ficheros del directorio     acos(x)       arco coseno
               (de otra forma)
                                                    atan(x)       arco tangente (devuelve un
 pwd           Devuelve el nombre y path del                      ángulo entre -90 y 90
               directorio actual                                  grados)
 cd            Para cambiar de directorio           sinh(x)       seno hiperbólico
 clc           Limpia la ventana de comandos        cosh(x)       coseno hiperbólico
lu(A)       factorización LU de la matriz A

tanh(x)       tangente hiperbólica              chol(A)     factorización de Cholesky de la
                                                            matriz A
asinh(x)      arco seno hiperbólico
                                                qr(A)       factorización QR de la matriz A
acosh(x)      arco coseno hiperbólico

atanh(x)      arco tangente hiperbólica        Algunos ejemplos de estas operaciones la
                                               mostramos a continuación:
Algunas funciones                              -->x=[2 6 4 8 12 10]
                                                x =
estadísticas y matemáticas                         2.    6.    4.       8.     12.    10.

 Función             Descripción
                                               -->max(x)
 max()      Valor máximo de un vector           ans =
                                                   12.

 min()      Valor mínimo de un vector
                                               -->min(x)
 sum()      La suma de los elementos de         ans =
                                                   2.
            un vector

 prod()     Producto de los elementos de       -->median(x)
            un vector                           ans =
                                                   7.
 median()   La media de un vector
                                               -->gsort(x)
 std()      Desviación estándar de un           ans =
                                                   12.     10.     8.     6.     4.    2.
            vector

 gsort()    Ordena los elementos de un         ->m
            vector                              m =
                                                   1.      2.    3.
                                                   4.      5.    6.
 size(A)    Devuelve, en un vector fila, las       7.      8.    9.
            dimensiones de la matriz A

 size(A,'r') Número de filas/columnas de       -->length(m)
                                                ans =
             la matriz A                           9.
 size(A,'c')

 length(A) Devuelve un escalar con el          -->size(m)
           número de elementos de la            ans =
           matriz A: si A es una vector,           3.     3.
           length(A) es su longitud; si A
           es una matriz length(A) es el       -->size(m,'r')
           producto de sus dimensiones          ans =
                                                   3.
 det(A)     Determinante    de   la   matriz
            cuadrada A                         -->size(m,'c')
                                                ans =
 rank(A)    Rango de la matriz                     3.


 inv(A)     Inversa de la matriz A
-->rank(m)
 ans =
                                               e,f,n)         logarítmicamente espaciados
    2.                                                        desde 10^e hasta 10^f, es
                                                              decir
Algunas funciones                              logspace( Como el anterior, pero se
matriciales                                    e,f)      asume n=50

  Función             Descripción
                                              Nota: Scilab brinda la posibilidad de poder
 diag(v)     Si v es un vector, diag(v) es    crear nuestras propias funciones y ponerlas
             una matriz cuadrada de ceros     disponibles dentro de nuestras aplicaciones.
             con diagonal principal = v
                                              Algunos ejemplos de estas operaciones la
 diag(A)     Si A es una matriz, diag(A) es   mostramos a continuación:
             un vector = diagonal principal
             de A                             -->v=[1 2 3]
                                               v =
                                                  1.    2.       3.
 diag(A,k)   Si A es una matriz y k es un
             entero, diag(A,k) es un vector
             = k-ésima sub o super            -->diag(v)
                                               ans =
             diagonal de A (según sea k<0         1.     0.      0.
             ó k>0)                               0.     2.      0.
                                                  0.     0.      3.
 tril(A)     Triangular inferior de A

 triu(A)     Triangular superior de A         -->w=[4 5 6]
                                               w =
 zeros(n,m) matriz nxm con todas sus              4.    5.       6.
            componentes iguales a cero
                                              -->w'
 ones(n,m) matriz nxm con todas sus            ans =
           componentes iguales a uno              4.
                                                  5.
                                                  6.
 eye(n,m)    matriz unidad: matriz nxm con
             diagonal principal =1 y el
             resto de las componentes =0      -->m=[1 2 3;4 5 6;7 8 9]
                                               m =
                                                  1.    2.    3.
 matrix(A,n Re-dimensiona una matriz: si          4.    5.    6.
 ,m)        A es una matriz hxk,                  7.    8.    9.
            matrix(A,n,m) es otra matriz
            con los mismos elementos
                                              -->m'
            que A, pero de dimensiones         ans =
            nxm (tiene que ser h*k=n*m)           1.    4.       7.
                                                  2.    5.       8.
 linspace(a Si a y b son números reales y         3.    6.       9.
 ,b,n)      n un número entero, genera
            una partición regular del         -->mat=[v;w;0 1 0]
            intervalo [a,b] con n nodos (n-    mat =
            1 subintervalos)                      1.    2.    3.
                                                  4.    5.    6.
                                                  0.    1.    0.
 linspace(a Como el anterior, pero se
 ,b)        asume n=100

 logspace( Vector     con    n    elementos
-->zeros(m)                                  precedidos de un punto deben entenderse en
 ans =
    0.    0.        0.
                                             el sentido de que la operación se efectúa
    0.    0.        0.                       elemento a elemento.
    0.    0.        0.


-->ones(w)                                      Función             Descripción
 ans =
  1.      1.   1.                             A+B (A-B)      matriz de elementos aij + bij
                                                             ( aij - bij ) (si dimensiones
-->size(m)                                                   iguales)
 ans =
    3.     3.                                 A*B            producto matricial de A y B
                                                             (si           dimensiones
-->v                                                         adecuadas)
 v =
     1.        2.   3.                        A^k            matriz A elevada       a      la
-->diag(v)
                                                             potencia k
 ans =
    1.     0.       0.                        A+k            matriz de elementos aij + k
    0.     2.       0.
    0.     0.       3.                        A-k            matriz de elementos aij - k

-->m                                          k*A            matriz de elementos k * aij
 m =
     1.        2.   3.                        A/k =(1/k)*A   matriz de elementos aij / k
     4.        5.   6.
     7.        8.   9.
                                              A^k            matriz A elevada a la
-->diag(m)                                                   potencia k: si k entero>0,
 ans =                                                       A^k=A*A*...*A
    1.
    5.                                                       si k entero      <0,   A^k=
    9.                                                       (inv(A))^(-k)
                                                             si no, A^k se calcula por
-->m                                                         diagonalización
 m =
     1.        2.   3.
     4.        5.   6.                        k./A           matriz de elementos k / aij
     7.        8.   9.
                                              A.^k           matriz de elementos ( aij ) ^
                                                             k
-->tril(m)
 ans =
    1.     0.       0.                        k.^A           matriz de elementos k ^
    4.     5.       0.                                       ( aij)
    7.     8.       9.
                                              A.*B           matriz de elementos aij * bij
-->triu(m)                                                   (si dimensiones iguales)
 ans =
    1.     2.       3.                        A./B           matriz de elementos aij / bij
    0.     5.       6.                                       (si dimensiones iguales)
    0.     0.       9.

                                              A.^B           matriz de elementos aij ^ bij
Operaciones matriciales                                      (si dimensiones iguales)
Los operadores aritméticos representan las
correspondientes operaciones matriciales
siempre que tengan sentido. Cuando van
Algunos ejemplos de estas operaciones la   -->a
                                            a =
mostramos a continuación:                       1.       2.
                                                3.       4.
-->a=[1 2;3 4]
 a =
    1.    2.                               -->a+y
    3.    4.                                ans =
                                               3.        4.
-->det(a)                                      5.        6.
 ans =
  - 2.
                                           -->a*y
                                            ans =
-->a                                           2.        4.
 a =                                           6.        8.
     1.     2.
     3.     4.
                                           -->a^y
                                            ans =
-->prod(a)
                                               7.         10.
 ans =
                                               15.        22.
    24.

-->sum(a)                                  -->a.^y
 ans =                                      ans =
    10.                                        1.        4.
                                               9.        16.
-->b=[-2 -4;-6 -8]
 b =
  - 2. - 4.
                                           Funciones para operar con
  - 6. - 8.                                matrices
-->abs(b)
 ans =
    2.    4.
                                              Función                  Descripción
    6.    8.
                                            sum(A)             suma de las componentes
                                                               de la matriz A
-->a
 a =                                        sum(A,1)           es un vector fila (row)
     1.     2.                                                 conteniendo la suma de
                                            sum(a;'r')
     3.     4.                                                 elementos de cada columna
                                                               de A
-->a+a
 ans =                                      sum(A,2)           es un vector columna
    2.      4.                                                 conteniendo la suma de
    6.      8.                              sum(a;'c')
                                                               elementos de cada fila de A

-->a*a                                      trace(A)           traza de A : sum(diag(A))
 ans =
    7.       10.                            prod(A)            producto      de         las
    15.      22.
                                                               componentes de la matriz A

                                            prod(A,1)          es un vector fila (row)
-->y=2                                                         conteniendo el producto los
 y =                                        prod(A,'r')
    2.
                                                               elementos de cada columna
                                                               de A

                                            prod(A,2)          es   un    vector   columna
prod(A,'c')   conteniendo el producto de          Función                 Descripción
               elementos de cada fila de A
                                                   v(i)          Si v es un vector es vi
 max(A)        máximo de las componentes
               de la matriz A                      A(i,j)        Si A es una matriz, es aij
 max(A,'r')
               máximos de columnas y filas         A(k)          Si A es una matriz, es el k-
 max(A,'c')
               respectivamente                                   ésimo elemento de A, en el
                                                                 orden en que está almacenada
 mean(A)     media de las componentes                            en la memoria (por columnas)
             de la matriz A medias de
 mean(A,'r')
             columnas        y    filas
 mean(A,'c') respectivamente                     Pero Scilab posee un buen número de
                                                 facilidades para designar globalmente un
 norm(v)       norma euclídea del vector v       conjunto de elementos de una matriz o
 norm(v,2)                                       vector, consecutivos o no. Algunos ejemplos
                                                 de ello:
 norm(v,p)     norma-p del vector           v:   -->A(2:3,1:2)
               sum(abs(v).^p)^(1/p)              // elementos de la fila 2 a la 3 y de las
                                                 columnas 1 a la 2
 norm(v,'inf') norma infinito del vector v:      -->A(:,2)
               max(abs(v))                       // representa la segunda columna de A
 norm(v,
 %inf)                                           -->A(:,2:$)
                                                 // representa las columnas desde 2 hasta
 norm(A)       máximo     autovalor   de    la   la última
               matriz A
 norm(A,2)                                       -->A(:)
                                                 // representa todos los elementos de A,
 norm(A,1)     norma-1 del matriz A:             en una sola columna
               máximo entre las sumas de
               sus               columnas:       Interacción con lenguajes de
               max(sum(abs(A),'r'))
                                                 programación
 norm(A,'inf') norma infinito de la matriz A:    Una de las grandes virtudes de Scilab es
               máximo entre las sumas de         brindar la posibilidad de ser utilizado desde
 norm(A,
               sus                      filas:   una aplicación desarrollada en lenguajes de
 %inf)
               max(sum(abs(A),'c'))              programación como: Python, Perl, C, C++;
                                                 cualidad que hace que se pueda reutilizar
                                                 esta poderosa herramienta desde el
                                                 desarrollo de nuestras propias aplicaciones.
Manipulación     de     los
elementos de una matriz
                                                 Referencias
Scilab permite una amplia manipulación de
los elementos de una matriz, algunos             [1]        http://www.scilab.org/
ejemplos de ello los mostramos a
continuación:
Autores




Pilar Castel Diaz                     Esteban Saavedra López
Centro de Investigación en Física y   Presidente de la Fundación AtixLibre (Bolivia)
Matemáticas (ES)                      Activista de Software Libre en Bolivia
pilar.castel.diaz@gmail.com           jesaavedra@opentelematics.org
                                      esteban.saavedra@atixlibre.org
                                      http://jesaavedra.opentelematics.org
                                      http://www.atixlibre.org

Mais conteúdo relacionado

Mais procurados

5. aplicaciones de la integral limitada
5. aplicaciones de la integral limitada5. aplicaciones de la integral limitada
5. aplicaciones de la integral limitadacisco1598
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijolisset neyra
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5thomasbustos
 
Diferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosDiferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosalan moreno
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónDaniela Medina
 
Algebra lineal problemas_resueltos
Algebra lineal problemas_resueltosAlgebra lineal problemas_resueltos
Algebra lineal problemas_resueltosmathbmc
 
Operador anulador
Operador anuladorOperador anulador
Operador anuladorgermane123
 
Funciones asociadas de legendre (final)
Funciones asociadas de legendre (final)Funciones asociadas de legendre (final)
Funciones asociadas de legendre (final)jonnathan_andre
 
Ecuaciones de estado. Ejercicios resueltos
Ecuaciones de estado. Ejercicios resueltosEcuaciones de estado. Ejercicios resueltos
Ecuaciones de estado. Ejercicios resueltosDavid Escobar
 
Ecuaciones reducibles a variables separables
Ecuaciones reducibles a variables separablesEcuaciones reducibles a variables separables
Ecuaciones reducibles a variables separablesArkantos Flynn
 
Resolucion de ecuaciones diferenciales por medio de la Transformada de Laplace
Resolucion de ecuaciones diferenciales por medio de la Transformada de LaplaceResolucion de ecuaciones diferenciales por medio de la Transformada de Laplace
Resolucion de ecuaciones diferenciales por medio de la Transformada de LaplaceMateoLeonidez
 

Mais procurados (20)

5. aplicaciones de la integral limitada
5. aplicaciones de la integral limitada5. aplicaciones de la integral limitada
5. aplicaciones de la integral limitada
 
Ejercicios1er con respuestas
Ejercicios1er con respuestasEjercicios1er con respuestas
Ejercicios1er con respuestas
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5
 
Ley de enfriamiento de newton
Ley de enfriamiento de newtonLey de enfriamiento de newton
Ley de enfriamiento de newton
 
Diferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosDiferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntos
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa Posición
 
Algebra lineal problemas_resueltos
Algebra lineal problemas_resueltosAlgebra lineal problemas_resueltos
Algebra lineal problemas_resueltos
 
Operador anulador
Operador anuladorOperador anulador
Operador anulador
 
Extremos. Problemas de aplicación
Extremos. Problemas de aplicación Extremos. Problemas de aplicación
Extremos. Problemas de aplicación
 
Trabajo de coordenadas polares
Trabajo de coordenadas polaresTrabajo de coordenadas polares
Trabajo de coordenadas polares
 
Funciones asociadas de legendre (final)
Funciones asociadas de legendre (final)Funciones asociadas de legendre (final)
Funciones asociadas de legendre (final)
 
Ecuaciones de estado. Ejercicios resueltos
Ecuaciones de estado. Ejercicios resueltosEcuaciones de estado. Ejercicios resueltos
Ecuaciones de estado. Ejercicios resueltos
 
G5 oscilaciones
G5 oscilacionesG5 oscilaciones
G5 oscilaciones
 
Ecuaciones reducibles a variables separables
Ecuaciones reducibles a variables separablesEcuaciones reducibles a variables separables
Ecuaciones reducibles a variables separables
 
Metodo de Runge Kutta en Matlab
Metodo de Runge Kutta en Matlab Metodo de Runge Kutta en Matlab
Metodo de Runge Kutta en Matlab
 
Metodo de euler
Metodo de eulerMetodo de euler
Metodo de euler
 
Formulario
FormularioFormulario
Formulario
 
Resolucion de ecuaciones diferenciales por medio de la Transformada de Laplace
Resolucion de ecuaciones diferenciales por medio de la Transformada de LaplaceResolucion de ecuaciones diferenciales por medio de la Transformada de Laplace
Resolucion de ecuaciones diferenciales por medio de la Transformada de Laplace
 
Integrales dobles
Integrales doblesIntegrales dobles
Integrales dobles
 

Destaque

Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilabGabriel Romero
 
Software libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasSoftware libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasJuan Eladio Sánchez Rosas
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplotblogdevon
 
Manual de instrucciones winplot
Manual de instrucciones winplotManual de instrucciones winplot
Manual de instrucciones winplotblogdevon
 
Programas instalados en net del plan CI
Programas instalados en net del plan CIProgramas instalados en net del plan CI
Programas instalados en net del plan CISergio Alonso
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolboxAwesomejk
 
Customizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and PaletteCustomizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and PaletteScilab
 
10. ecuaciones parametricas
10. ecuaciones parametricas10. ecuaciones parametricas
10. ecuaciones parametricasSALINAS
 
09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeasterOpenCascade
 
Manual mantenimiento plantas electricas diesel
Manual mantenimiento plantas electricas dieselManual mantenimiento plantas electricas diesel
Manual mantenimiento plantas electricas dieselkbeman
 

Destaque (20)

Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Clase winplot
Clase winplotClase winplot
Clase winplot
 
Manual Scilab
Manual ScilabManual Scilab
Manual Scilab
 
Software libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemasSoftware libre y abierto en la empresa y la enseñanza de sistemas
Software libre y abierto en la empresa y la enseñanza de sistemas
 
Ntic Winplot
Ntic WinplotNtic Winplot
Ntic Winplot
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplot
 
Manual de instrucciones winplot
Manual de instrucciones winplotManual de instrucciones winplot
Manual de instrucciones winplot
 
Winplot
WinplotWinplot
Winplot
 
Winplot
WinplotWinplot
Winplot
 
REDES
REDESREDES
REDES
 
Programas instalados en net del plan CI
Programas instalados en net del plan CIProgramas instalados en net del plan CI
Programas instalados en net del plan CI
 
Apuntes scilab
Apuntes scilabApuntes scilab
Apuntes scilab
 
Manual winplot
Manual winplotManual winplot
Manual winplot
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolbox
 
Customizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and PaletteCustomizing Xcos with new Blocks and Palette
Customizing Xcos with new Blocks and Palette
 
Xcos scilab
Xcos scilabXcos scilab
Xcos scilab
 
10. ecuaciones parametricas
10. ecuaciones parametricas10. ecuaciones parametricas
10. ecuaciones parametricas
 
09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster09 jus 20101123_optimisation_salomeaster
09 jus 20101123_optimisation_salomeaster
 
Manual mantenimiento plantas electricas diesel
Manual mantenimiento plantas electricas dieselManual mantenimiento plantas electricas diesel
Manual mantenimiento plantas electricas diesel
 
Debian GNU
Debian GNUDebian GNU
Debian GNU
 

Semelhante a Scilab una alternativa libre para el cálculo numérico

Octave una alternativa libre para el cálculo numérico
Octave una alternativa libre para el cálculo numéricoOctave una alternativa libre para el cálculo numérico
Octave una alternativa libre para el cálculo numéricoEsteban Saavedra
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 
Culcay carlos herramientas_costos
Culcay carlos herramientas_costosCulcay carlos herramientas_costos
Culcay carlos herramientas_costosCarlos Culcay
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
Video] teoria en Sistemas
Video] teoria en SistemasVideo] teoria en Sistemas
Video] teoria en SistemasMarrss Chacon
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfIsabellaLugo3
 
Taller Estructuras básicas
Taller Estructuras básicasTaller Estructuras básicas
Taller Estructuras básicaselizabethpc222
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfXcpBoy
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfhellendiaz12
 
Simuladores mas Importantes de la Historia.
Simuladores mas Importantes de la Historia.Simuladores mas Importantes de la Historia.
Simuladores mas Importantes de la Historia.Roberto Dominguez
 

Semelhante a Scilab una alternativa libre para el cálculo numérico (20)

Octave una alternativa libre para el cálculo numérico
Octave una alternativa libre para el cálculo numéricoOctave una alternativa libre para el cálculo numérico
Octave una alternativa libre para el cálculo numérico
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Software 1
Software 1Software 1
Software 1
 
Exposición CASE - IDE
Exposición CASE - IDEExposición CASE - IDE
Exposición CASE - IDE
 
Software
SoftwareSoftware
Software
 
Iswmovil
IswmovilIswmovil
Iswmovil
 
Culcay carlos herramientas_costos
Culcay carlos herramientas_costosCulcay carlos herramientas_costos
Culcay carlos herramientas_costos
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Video] teoria en Sistemas
Video] teoria en SistemasVideo] teoria en Sistemas
Video] teoria en Sistemas
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdf
 
Taller Estructuras básicas
Taller Estructuras básicasTaller Estructuras básicas
Taller Estructuras básicas
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdf
 
Taller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdfTaller Estructuras básicas_ conceptos básicos de programación.pdf
Taller Estructuras básicas_ conceptos básicos de programación.pdf
 
Herramienta case
Herramienta case Herramienta case
Herramienta case
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Manual 2 mwinqsb
Manual 2 mwinqsbManual 2 mwinqsb
Manual 2 mwinqsb
 
Manual winqsb
Manual winqsbManual winqsb
Manual winqsb
 
Simuladores mas Importantes de la Historia.
Simuladores mas Importantes de la Historia.Simuladores mas Importantes de la Historia.
Simuladores mas Importantes de la Historia.
 
Investigación Simuladores
Investigación Simuladores Investigación Simuladores
Investigación Simuladores
 
Metricas orientadas a objeto
Metricas orientadas a objetoMetricas orientadas a objeto
Metricas orientadas a objeto
 

Mais de Esteban Saavedra (20)

Atix30
Atix30Atix30
Atix30
 
Atix29
Atix29Atix29
Atix29
 
Atix28
Atix28Atix28
Atix28
 
Atix27
Atix27Atix27
Atix27
 
Atix26
Atix26Atix26
Atix26
 
Atix25
Atix25Atix25
Atix25
 
Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ansible
AnsibleAnsible
Ansible
 
Perl
PerlPerl
Perl
 
Atix24
Atix24Atix24
Atix24
 
Atix23
Atix23Atix23
Atix23
 
Lineas Base Migracion a Software Libre
Lineas Base Migracion a Software LibreLineas Base Migracion a Software Libre
Lineas Base Migracion a Software Libre
 
Seguridad Sistemas de Gobierno
Seguridad Sistemas de GobiernoSeguridad Sistemas de Gobierno
Seguridad Sistemas de Gobierno
 
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y FirewallsTunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y Firewalls
 
Bi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar EmpresasBi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar Empresas
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Introduccion Computacion Ubicua
Introduccion Computacion UbicuaIntroduccion Computacion Ubicua
Introduccion Computacion Ubicua
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Avances Tecnologicos
Avances TecnologicosAvances Tecnologicos
Avances Tecnologicos
 
Dni Electronico Bolivia
Dni Electronico BoliviaDni Electronico Bolivia
Dni Electronico Bolivia
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Scilab una alternativa libre para el cálculo numérico

  • 1. Scilab una alternativa libre para el cálculo numérico (1ra parte) Scilab es un entorno de trabajo para realizar cálculos numéricos especialmente destinados a ingenierías. El programa contiene cientos de funciones matemáticas dando la posibilidad de añadir las propias, si las escribimos en lenguajes como C o Fortran. Las funciones se pueden mostrar gráficamente en 2D e incluso animarse en tres dimensiones. También permite crear simulaciones ODE y DAE. realizar experimentos que contribuyan a la ciencia y a la investigación. ✔ Hacer uso de funcionalidades ya implementadas, en lugar de desarrollarlas desde cero ✔ Reusar procedimientos y funciones realizadas por otros profesionales. ✔ ..... Antecedentes Es así que dentro del mundo matemático, hoy en día contamos con una amplia Hoy en día la mayoría de los centros de variedad de aplicaciones software tanto formación superior y Universidades, tratan de comerciales como libres; un fenómeno que fomentar la investigación entre sus destaca actualmente es el uso del software profesionales y alumnado, pero muchas libre, que al margen de proveer soluciones veces esta tarea se ve limitada por la falta de iguales o mejores a sus similares dentro el herramientas e instrumentos que permitan ámbito comercial de pago, permite fomentar encarar este proceso. Una de estas directamente el trabajo en comunidad, herramientas y/o instrumentos la conforman estudia detalle de soluciones existentes las aplicaciones software, cuyo objetivo (tener a disposición el código de la principal es la automatización de tareas aplicación), su libre distribución y la morosas y álgidas que muchas veces las colaboración dentro los proyectos existentes, personas deben realizar. aspecto que se convierte en fundamental al Para los profesionales y estudiantes dentro el momento de encarar una investigación. mundo académico y de la investigación, es fundamental contar con herramientas que le permitan: Introducción ✔ Convertir la teoría en práctica Scilab es un software matemático, con un lenguaje de programación de alto nivel, para ✔ Realizar tareas de forma automática cálculo científico, interactivo de libre uso y ✔ Realizar cálculos matemáticos de disponible en múltiples sistemas operativos. forma más cómoda, sencilla, rápida y Scilab contiene numerosas herramientas, confiable. entre las que destacan: gráficos 2-D y 3-D, ✔ Valerse de estas herramientas para animación, álgebra lineal, matrices dispersas,
  • 2. Polinomios y funciones racionales, ✔ Resolución de sistemas de Simulación: programas de resolución de ecuaciones lineales y ecuaciones sistemas de ecuaciones diferenciales diferenciales (explícitas e implícitas), Xcos: simulador por ✔ Creación y definición de funciones diagramas en bloque de sistemas dinámicos propias híbridos, Control clásico, robusto, optimización LMI, Optimización diferenciable ✔ Creación y utilización de funciones y no diferenciable, Tratamiento de señales, destinadas a aplicaciones específicas Grafos y redes, Scilab paralelo empleando denominados “Toolboxes”, con PVM, Estadísticas, Creación de GUIs, aplicación al Control, Optimización, Interfaz con el cálculo simbólico (Maple, Redes Neurales, etc. MuPAD), Interfaz con TCL/TK. Otra de sus ventajas es que se pueden Funciones incluidas agregar numerosas herramientas o toolboxes, hechas por los usuarios como ✔ Entrada/Salida Grocer una herramienta para Econometría u ✔ Gráficas Open FEM (Una caja de Herramientas para Elementos Finitos), hecha por INRIA. ✔ Manejo de matrices ✔ Álgebra lineal Requerimientos ✔ Ecuaciones no lineales Para su instalación se puede hacer uso del ✔ Ecuaciones diferenciales gestor de paquetes propio de cada ✔ Optimización distribución: ✔ Estadística ✔ YUM, para CentOs, Fedora ✔ Funciones financieras ✔ apt-get, para Debian, Ubuntu ✔ Conjuntos Manejo de polinomios Características ✔ ✔ Teoría de control ✔ Se basa en un lenguaje orientado al cálculo numérico simple y fácilmente ✔ Procesado de señales asimilable ✔ Procesado de imágenes ✔ Proporciona una consola para el uso ✔ Procesado de audio del interprete de forma interactiva ✔ Compatible con la mayoría las instrucciones de Matlab Modos de trabajo ✔ Puede extenderse mediante el uso de En Scilab existen dos formas de trabajar: procedimientos y funciones por medio ✔ Modo interactivo: Ejecución de de módulos dinámicos cualquier expresión, programa o ✔ Capacidad de ser utilizado en función Scilab dentro del entorno. El archivos script modo interactivo puede arrancarse en modo ventana o en modo texto ✔ Es multiplataforma ✔ Modo ventana: $ scilab ✔ Generación de gráficos en dos y tres dimensiones ✔ Modo texto: $ scilab -nw ✔ Operaciones matriciales ✔ Modo bash: Ejecución de un fichero sin necesidad de entrar en el entorno ✔ Operaciones con polinomios y del programa. funciones de transferencia
  • 3. $ echo "exec('ordenes.sce'); quit" | Matriz unidad scilab -nw > resultados.out -->ones(5,5) ans = 1. 1. 1. 1. 1. Tipos de datos 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. ✔ Escalares 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. ✔ Vectores y Matrices Matriz cero Escalares -->zeros(5,5) -->17 ans = ans = 0. 0. 0. 0. 0. 17. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. Vectores 0. 0. 0. 0. 0. -->[2 4 6 8 10] ans = Números aleatorios 2. 4. 6. 8. 10. -->rand() ans = Matrices 0.2113249 -->[1 2;3 4] ans = -->rand(3,3) 1. 2. ans = 3. 4. 0.7560439 0.6653811 0.6857310 0.0002211 0.6283918 0.8782165 0.3303271 0.8497452 0.0683740 Constantes Variables -->%e %e = -->x=1 2.7182818 x = 1. -->%pi %pi = -->y=rand(2,2) 3.1415927 y = 0.5608486 0.7263507 0.6623569 0.1985144 Algunos ejemplos sobre matrices Intervalos -->1:5 ans = Matriz identidad 1. 2. 3. 4. 5. -->eye(5,5) -->1:3:25 ans = ans = 1. 0. 0. 0. 0. column 1 to 6 0. 1. 0. 0. 0. 1. 4. 7. 10. 13. 16. 0. 0. 1. 0. 0. column 7 to 9 0. 0. 0. 1. 0. 19. 22. 25. 0. 0. 0. 0. 1.
  • 4. -->2|2 Operaciones ans = T Operación Descripción + Adición suma Comparación entre vectores -->[2 4 6 8] <= [5 2 7 8] – Sustracción resta ans = T F T T * Multiplicación Comparación entre matrices ' Traspuesta -->[1 3; 5 7] <= [5 2; 6 7] ans = ^ Potenciación T F T T División-izquierda / División-derecha Variables En Scilab, las variables no son declaradas: .* Producto elemento a su tipo y su tamaño cambian de forma elemento dinámica de acuerdo con los valores que le son asignados. Así, una misma variable ./ y . División elemento a puede ser utilizada para almacenar en elemento distintos tiempos un valor de tipo distinto. Las variables se crean automáticamente al .^ Elevar a una potencia asignarles un contenido. elemento a elemento Es importante comprender que el uso de == ~= (ó mayúsculas y minúsculas en el nombre de <>) una variable hace que esta sea distinta una <> de la otra. Operadores de comparación <= En Scilab es importante determinar que variables tenemos a disposición en un >= determinado instante, eliminar variables, etc; para esto podemos hacer uso de los & siguientes comandos utiles para la gestión de | Operadores lógicos variables. ~ Función Descripción Comparación de escalares who lista las variables actuales -->2>5 ans = whos como el anterior, pero más F detallado clear elimina todas las variables -->2&2 que existan en ese ans = momento T clear a b c elimina las variables a, b y c (atención: sin comas!) browsevar() abre, en ventana aparte, un
  • 5. “ojeador” de la memoria de date() Devuelve la Fecha actual trabajo de Scilab: permite “ver” el contenido y características de las Funciones variables e, incluso, editar su valor. Scilab por defecto incluye una amplia variedad de funciones, entre las más utilizadas podemos destacar: Formatos Por defecto, Scilab muestra los números en Función Descripción formato variable con 10 dígitos. Se puede modificar esto mediante el comando format sqrt(x) raiz cuadrada de x abs(x) módulo de x Función Descripción conj(z) complejo conjugado de z format(14) 14 dígitos real(z) parte real de z format(‘e’) formato científico o exponencial, coma flotante imag(z) parte imaginaria de z format(‘v’) formato variable (por exp(x) exponencial de x defecto) log(x) logaritmo natural de x format(‘v’,20) formato variable con 20 dígitos log10(x) logaritmo decimal de x format(‘e’,15) formato científico con 15 rat(x) aprox. Racional de x dígitos modulo(x,y) resto de dividir x por y floor(x) valor entero más próximo Algunos utilitarios hacia -∞ Dentro de Scilab muchas veces tenemos la necesidad de incluir ficheros o variables de ceil(x) valor entero más próximo sistema, para esto están disponibles algunos hacia +∞ comandos utilitarios, como: sin(x) seno cos(x) coseno Función Descripción tan(x) tangente ls Lista de ficheros del directorio actual (como Unix) asin(x) arco seno dir Lista de ficheros del directorio acos(x) arco coseno (de otra forma) atan(x) arco tangente (devuelve un pwd Devuelve el nombre y path del ángulo entre -90 y 90 directorio actual grados) cd Para cambiar de directorio sinh(x) seno hiperbólico clc Limpia la ventana de comandos cosh(x) coseno hiperbólico
  • 6. lu(A) factorización LU de la matriz A tanh(x) tangente hiperbólica chol(A) factorización de Cholesky de la matriz A asinh(x) arco seno hiperbólico qr(A) factorización QR de la matriz A acosh(x) arco coseno hiperbólico atanh(x) arco tangente hiperbólica Algunos ejemplos de estas operaciones la mostramos a continuación: Algunas funciones -->x=[2 6 4 8 12 10] x = estadísticas y matemáticas 2. 6. 4. 8. 12. 10. Función Descripción -->max(x) max() Valor máximo de un vector ans = 12. min() Valor mínimo de un vector -->min(x) sum() La suma de los elementos de ans = 2. un vector prod() Producto de los elementos de -->median(x) un vector ans = 7. median() La media de un vector -->gsort(x) std() Desviación estándar de un ans = 12. 10. 8. 6. 4. 2. vector gsort() Ordena los elementos de un ->m vector m = 1. 2. 3. 4. 5. 6. size(A) Devuelve, en un vector fila, las 7. 8. 9. dimensiones de la matriz A size(A,'r') Número de filas/columnas de -->length(m) ans = la matriz A 9. size(A,'c') length(A) Devuelve un escalar con el -->size(m) número de elementos de la ans = matriz A: si A es una vector, 3. 3. length(A) es su longitud; si A es una matriz length(A) es el -->size(m,'r') producto de sus dimensiones ans = 3. det(A) Determinante de la matriz cuadrada A -->size(m,'c') ans = rank(A) Rango de la matriz 3. inv(A) Inversa de la matriz A
  • 7. -->rank(m) ans = e,f,n) logarítmicamente espaciados 2. desde 10^e hasta 10^f, es decir Algunas funciones logspace( Como el anterior, pero se matriciales e,f) asume n=50 Función Descripción Nota: Scilab brinda la posibilidad de poder diag(v) Si v es un vector, diag(v) es crear nuestras propias funciones y ponerlas una matriz cuadrada de ceros disponibles dentro de nuestras aplicaciones. con diagonal principal = v Algunos ejemplos de estas operaciones la diag(A) Si A es una matriz, diag(A) es mostramos a continuación: un vector = diagonal principal de A -->v=[1 2 3] v = 1. 2. 3. diag(A,k) Si A es una matriz y k es un entero, diag(A,k) es un vector = k-ésima sub o super -->diag(v) ans = diagonal de A (según sea k<0 1. 0. 0. ó k>0) 0. 2. 0. 0. 0. 3. tril(A) Triangular inferior de A triu(A) Triangular superior de A -->w=[4 5 6] w = zeros(n,m) matriz nxm con todas sus 4. 5. 6. componentes iguales a cero -->w' ones(n,m) matriz nxm con todas sus ans = componentes iguales a uno 4. 5. 6. eye(n,m) matriz unidad: matriz nxm con diagonal principal =1 y el resto de las componentes =0 -->m=[1 2 3;4 5 6;7 8 9] m = 1. 2. 3. matrix(A,n Re-dimensiona una matriz: si 4. 5. 6. ,m) A es una matriz hxk, 7. 8. 9. matrix(A,n,m) es otra matriz con los mismos elementos -->m' que A, pero de dimensiones ans = nxm (tiene que ser h*k=n*m) 1. 4. 7. 2. 5. 8. linspace(a Si a y b son números reales y 3. 6. 9. ,b,n) n un número entero, genera una partición regular del -->mat=[v;w;0 1 0] intervalo [a,b] con n nodos (n- mat = 1 subintervalos) 1. 2. 3. 4. 5. 6. 0. 1. 0. linspace(a Como el anterior, pero se ,b) asume n=100 logspace( Vector con n elementos
  • 8. -->zeros(m) precedidos de un punto deben entenderse en ans = 0. 0. 0. el sentido de que la operación se efectúa 0. 0. 0. elemento a elemento. 0. 0. 0. -->ones(w) Función Descripción ans = 1. 1. 1. A+B (A-B) matriz de elementos aij + bij ( aij - bij ) (si dimensiones -->size(m) iguales) ans = 3. 3. A*B producto matricial de A y B (si dimensiones -->v adecuadas) v = 1. 2. 3. A^k matriz A elevada a la -->diag(v) potencia k ans = 1. 0. 0. A+k matriz de elementos aij + k 0. 2. 0. 0. 0. 3. A-k matriz de elementos aij - k -->m k*A matriz de elementos k * aij m = 1. 2. 3. A/k =(1/k)*A matriz de elementos aij / k 4. 5. 6. 7. 8. 9. A^k matriz A elevada a la -->diag(m) potencia k: si k entero>0, ans = A^k=A*A*...*A 1. 5. si k entero <0, A^k= 9. (inv(A))^(-k) si no, A^k se calcula por -->m diagonalización m = 1. 2. 3. 4. 5. 6. k./A matriz de elementos k / aij 7. 8. 9. A.^k matriz de elementos ( aij ) ^ k -->tril(m) ans = 1. 0. 0. k.^A matriz de elementos k ^ 4. 5. 0. ( aij) 7. 8. 9. A.*B matriz de elementos aij * bij -->triu(m) (si dimensiones iguales) ans = 1. 2. 3. A./B matriz de elementos aij / bij 0. 5. 6. (si dimensiones iguales) 0. 0. 9. A.^B matriz de elementos aij ^ bij Operaciones matriciales (si dimensiones iguales) Los operadores aritméticos representan las correspondientes operaciones matriciales siempre que tengan sentido. Cuando van
  • 9. Algunos ejemplos de estas operaciones la -->a a = mostramos a continuación: 1. 2. 3. 4. -->a=[1 2;3 4] a = 1. 2. -->a+y 3. 4. ans = 3. 4. -->det(a) 5. 6. ans = - 2. -->a*y ans = -->a 2. 4. a = 6. 8. 1. 2. 3. 4. -->a^y ans = -->prod(a) 7. 10. ans = 15. 22. 24. -->sum(a) -->a.^y ans = ans = 10. 1. 4. 9. 16. -->b=[-2 -4;-6 -8] b = - 2. - 4. Funciones para operar con - 6. - 8. matrices -->abs(b) ans = 2. 4. Función Descripción 6. 8. sum(A) suma de las componentes de la matriz A -->a a = sum(A,1) es un vector fila (row) 1. 2. conteniendo la suma de sum(a;'r') 3. 4. elementos de cada columna de A -->a+a ans = sum(A,2) es un vector columna 2. 4. conteniendo la suma de 6. 8. sum(a;'c') elementos de cada fila de A -->a*a trace(A) traza de A : sum(diag(A)) ans = 7. 10. prod(A) producto de las 15. 22. componentes de la matriz A prod(A,1) es un vector fila (row) -->y=2 conteniendo el producto los y = prod(A,'r') 2. elementos de cada columna de A prod(A,2) es un vector columna
  • 10. prod(A,'c') conteniendo el producto de Función Descripción elementos de cada fila de A v(i) Si v es un vector es vi max(A) máximo de las componentes de la matriz A A(i,j) Si A es una matriz, es aij max(A,'r') máximos de columnas y filas A(k) Si A es una matriz, es el k- max(A,'c') respectivamente ésimo elemento de A, en el orden en que está almacenada mean(A) media de las componentes en la memoria (por columnas) de la matriz A medias de mean(A,'r') columnas y filas mean(A,'c') respectivamente Pero Scilab posee un buen número de facilidades para designar globalmente un norm(v) norma euclídea del vector v conjunto de elementos de una matriz o norm(v,2) vector, consecutivos o no. Algunos ejemplos de ello: norm(v,p) norma-p del vector v: -->A(2:3,1:2) sum(abs(v).^p)^(1/p) // elementos de la fila 2 a la 3 y de las columnas 1 a la 2 norm(v,'inf') norma infinito del vector v: -->A(:,2) max(abs(v)) // representa la segunda columna de A norm(v, %inf) -->A(:,2:$) // representa las columnas desde 2 hasta norm(A) máximo autovalor de la la última matriz A norm(A,2) -->A(:) // representa todos los elementos de A, norm(A,1) norma-1 del matriz A: en una sola columna máximo entre las sumas de sus columnas: Interacción con lenguajes de max(sum(abs(A),'r')) programación norm(A,'inf') norma infinito de la matriz A: Una de las grandes virtudes de Scilab es máximo entre las sumas de brindar la posibilidad de ser utilizado desde norm(A, sus filas: una aplicación desarrollada en lenguajes de %inf) max(sum(abs(A),'c')) programación como: Python, Perl, C, C++; cualidad que hace que se pueda reutilizar esta poderosa herramienta desde el desarrollo de nuestras propias aplicaciones. Manipulación de los elementos de una matriz Referencias Scilab permite una amplia manipulación de los elementos de una matriz, algunos [1] http://www.scilab.org/ ejemplos de ello los mostramos a continuación:
  • 11. Autores Pilar Castel Diaz Esteban Saavedra López Centro de Investigación en Física y Presidente de la Fundación AtixLibre (Bolivia) Matemáticas (ES) Activista de Software Libre en Bolivia pilar.castel.diaz@gmail.com jesaavedra@opentelematics.org esteban.saavedra@atixlibre.org http://jesaavedra.opentelematics.org http://www.atixlibre.org