Está en la página 1de 31

SOFTWARE DE

LIBRE DISTRIBUCIÓN
DE UTILIDAD EN
MATEMÁTICAS
SCILAB
MASCOTA
LOGO (frailecillo)
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
SCILAB
Paquete de software de código abierto para
computación científica (cálculo numérico, operaciones
matriciales, aplicaciones científicas y de ingeniería)
SCIentific LABoratory MATrix LABoratory
(pero no igual)

Posibilidades:
• calculadora matricial
• cientos de funciones ( de propósito general y
especializadas ) para cálculo numérico y
visualización gráfica
• lenguaje de programación propio (interpretado)
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
SCILAB

Inicialmente desarrollado por el INRIA (Institut


National de Recherche en Informatique et
Automatique, Francia)
Actualmente a cargo de un Consorcio de
universidades, empresas y centros de investigación

http://www.scilab.org/
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
VERSIÓN ACTUAL: 4.1.2
PLATAFORMAS:
GNU/Linux
Windows 2000/XP/VISTA
HP-UX
INSTALACIÓN:
http://www.scilab.org/download/
(BINARIOS Y FUENTES)
DOCUMENTACIÓN:
http://www.scilab.org/product/
http://www.scilab.org/publications/
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Al arrancar Scilab en Windows:

linea de comandos
O S
A ND
OM
E C
N AD
A
ENT
V
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Barra de herramientas:

abrir help

elegir tipo de letras

cambiar directorio

copiar / pegar

abrir fichero existente

abrir y editar nuevo fichero


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ayuda on-line: HELP BROWSER
para alternar entre el índice
de la ayuda y la búsqueda
de comandos o palabras -
clave
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ayuda on-line: comando help

Se puede solicitar ayuda sobre una función


cualquiera, si se conoce su nombre:

-->
-->help exp
En la ventana del HELP BROWSER aparecerá la
descripción de la función exp
Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ayuda on-line: comando help
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ayuda on-line: comando apropos

Se puede efectuar una búsqueda por palabra-clave.


Por ejemplo, para encontrar el nombre de la función
que genera números aleatorios se puede escribir, en
la ventana de comandos, la orden

-->
-->apropos random
Scilab mostrará, en la ventana del HELP BROWSER, la
lista de los comandos en cuya descripción aparece la
palabara random
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS

demo

órdenes
que
producen la
demo
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Por defecto, los números son codificados como
números reales en coma flotante en doble precisión
Algunas constantes numéricas están predefinidas. Su
nombre comienza por % :
%pi : nú
número pi
%e : nú
número e
%i : unidad imaginaria
%inf : infinito (overflow)
%nan : not a number

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Operadores aritméticos

+ - * / ^
Operadores de comparación

== ~= > < >= <=


Operadores lógicos

& | ~

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Los nombres de las funciones elementales son los
habituales
Se puede encontrar el nombre de una función ó bien
en el epígrafe "Elementary functions" del HELP
BROWSER ó bien utilizando el comando apropos:

-->apropos
-->apropos logarithm

En general, los argumentos pueden ser reales o


complejos y el resultado se devuelve en el mismo tipo
del argumento.

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
sqrt(x) raiz cuadrada sin(x) seno (radianes)
abs(x) módulo cos(x) coseno (radianes)
conj(z) complejo conjugado tan(z) tangente (radianes)
real(z) parte real cotg(x) cotangente (radianes)
imag(z) parte imaginaria asin(x) arcoseno
exp(x) exponencial acos(x) arcocoseno
log(x) logaritmo natural atan(x) arcotangente
log10(x) logaritmo decimal cosh(x) cos. hiperbólico
rat(x) aprox. racional sinh(x) seno hiperbólico
modulo(x,y) resto de dividir x por y tanh(x) tangente hiperbólica
floor(x) n tal que n<=x<(n+1) acosh(x) arcocoseno hiperb.
ceil(x) n tal que (n-1)<x<=n asinh(x) arcoseno hiperb.
int(x) parte entera inglesa: atanh(x) arcotangente hiperb.
floor(x) si x>=0
ceil(x) si x<0

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ejemplos:

-->7*exp(5/4)+3.54^2
-->7*exp(5/4)+3.54^2
ans = 36.964001
-->2*(1+3*%i)
-->2*(1+3*%i)
ans = 2. + 6.i
-->sqrt(34*exp(2))/(cos(23.7)+12)
-->sqrt(34*exp(2))/(cos(23.7)+12)
ans = 1.3058717
-->exp(2+3*%i)
-->exp(2+3*%i)
ans = - 7.3151101 + 1.0427437i
-->sqrt(
-->sqrt(-
>sqrt(-5)
ans = 2.236068i
1. USO COMO CALCULADORA
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
La utilización de variables en Scilab es DINÁMICA: su
tipo y su tamaño cambian de forma dinámica en
función de los valores que le son asignados.

-->a=7.38
-->a=7.38
-->b=%e*cosh(a)
-->b=%e*cosh(a)
-->a=rand(5,5)
-->a=rand(5,5)
-->a='la
-->a='la solucion es:'
Scilab distingue entre mayúsculas y minúsculas:
xt y Xt son variables distintas

2. VARIABLES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Las matrices bidimensionales de números reales o
complejos son los objetos básicos con los que trabaja
Scilab. Los vectores y escalares son casos
particulares de matrices.
Construcción elemental de matrices:

-->v=[1,
-->v=[1,-
>v=[1,-1,0,sin(2.88)]
vector-
vector-fila (matriz 1x4)
-->w=[0;1.003;2;3;4;5*%pi]
-->w=[0;1.003;2;3;4;5*%pi]
vector-
vector-columna (matriz 5x1)
-->a=[1,2,3,4;5,6,7,8;9,10,11,12]
-->a=[1,2,3,4;5,6,7,8;9,10,11,12]
matriz 3x4

3. MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
-->v1=a:h:b
-->v1=a:h:b
(a,a+h,a+2h,a+3h,....c)

-->v2=a:b
-->v2=a:b
(a,a+1,a+2,a+3,....c)

-->v3=v2
-->v3=v2’
>v3=v2’
traspuesta conjugada

-->v4=v2.
-->v4=v2.’
>v4=v2.’
traspuesta sin conjugar

3. MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Ejemplos:
-->v1=1:4
-->v1=1:4
-->v2=[v1,5;0.1:0.1:0.5]
-->v2=[v1,5;0.1:0.1:0.5]
-->v3=[v2',[11,12,13,14,15]']
-->v3=[v2',[11,12,13,14,15]']

3. MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla

-->diag([1,2,3,4])
-->diag([1,2,3,4])

-->zeros(2,4)
-->zeros(2,4)

-->7*ones(5,1)
-->7*ones(5,1)

-->eye(2,3)
-->eye(2,3)

3. MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
linspace(a,b,n) Si a y b son números reales y n un número entero, genera una
partición regular del intervalo [a,b] con n nodos (n-1
subintervalos)
linspace(a,b) Como el anterior, pero se asume n=100
logspace(e,f,n) Vector con n elementos logarítmicamente espaciados desde
10^e hasta 10^f, es decir
logspace(e,f) Como el anterior, pero se asume n=50

-->linspace(1,2,4)
-->linspace(1,2,4)

-->logspace(1,2,4)
-->logspace(1,2,4)

3. MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
Operadores aritméticos:
• cuando tenga sentido, las operaciones habituales
• cuando precedidos de un punto, operaciones
elemento a elemento

A+B (A-
(A-B) aij + bij ( aij + bij )

A*B producto matricial habitual de A y B


A+k (A-
(A-k) aij + k ( aij - k )
k*A (A/k) k * aij ( aij / k )
k./A k / aij
A.^k (k.^A) aij ^ k ( k ^ aij )
A.*B aij * bij
A./B aij / bij
A.^B aij ^ bij

4. OPERAR CON MATRICES


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
La mayoría de las funciones Scilab están hechas de
forma que admiten matrices como argumentos. Esto
se aplica en particular a las funciones matemáticas
elementales y su utilización debe entenderse en el
sentido de "elemento a elemento":

exp(A) exp( aij )

5. FUNCIONES Y MATRICES
SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
• Se puede usar la sintaxis habitual:
v(2) A(i,j) A(k)
• Se pueden designar, de distintas formas, conjuntos
de elementos de una matriz o vector:

v(h) h=vector de índices


A(h,k) h,k=vectores de índices
A(:,j) columna j de A
A(i,:) fila i de A

6. MANIPULACIÓN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
• Se pueden usar vectores booleanos:
B vector booleano
v(B) elementos de v cuyo correspondiente elemento
de B sea verdadero (%t)
(%t

-->B=[
-->B=[ %t , %f% , %t , %f , %t ]
-->v=[1,2,3,4,5,6,7,8,9]
-->v=[1,2,3,4,5,6,7,8,9]
-->v(B)
-->v(B)
ans =
1 3 5

6. MANIPULACIÓN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
OBSERVACIONES:
1. Cuando se asigna un valor a un elemento que
no existe de una matriz, la dimensión de la matriz
se modifica para incluir dicho elemento.
Ejemplo:
-->A=[1,2;3,4]
-->A=[1,2;3,4]

-->A(3,3)=24
-->A(3,3)=24

6. MANIPULACIÓN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
OBSERVACIONES:
2. Scilab posee un buen número de herramientas
para manipular matrices huecas (sparse), de
interés primordial en la resolución de problemas
formulados en términos de ecuaciones diferenciales.
No se ven aquí.

-->
--> apropos sparse

6. MANIPULACIÓN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIÓN DE UTILIDAD EN MATEMÁTICAS

Rosa Echevarría Líbano - Dpto. de Ecuaciones Diferenciales y Análisis Numérico - Univ de. Sevilla
OBSERVACIONES:
3. Funciones útiles en cálculos matriciales:
sum(A) suma de las componentes de la matriz A

sum(A,1), sum(a;'r') vector fila (row) conteniendo la suma de los elementos de cada columna de A
sum(A,2), sum(a;'c') vector columna conteniendo la suma de los elementos de cada fila de A

prod(A) producto de las componentes de la matriz A

prod(A,'r'), prod(A,'c') ídem por columnas y por filas (como antes)

max(A) máximo de las componentes de la matriz A


max(A,'r'), max(A,'c') máximos de columnas y filas resp. (como antes)

mean(A) media de las componentes de la matriz A


mean(A,'r'), mean(A,'c') medias de columnas y filas resp. (como antes)

norm(v), norm(v,2) norma euclídea del vector v


norm(v,p) norma-p del vector v = sum(abs(v).^p)^(1/p)
norm(v,'inf'), norm(v,%inf) norma infinito del vector v = max(abs(v))

norm(A), norm(A,2) máximo autovalor de la matriz A


norm(A,1) norma-1 de la matriz A: = max(sum(abs(A),'r'))
norma infinito de la matriz A = max(sum(abs(A),'c'))
norm(A,'inf'), norm(A,%inf)

(ver apuntes ó help)


6. MANIPULACIÓN DE ELEMENTOS DE MATRICES

También podría gustarte