Está en la página 1de 31

SOFTWARE DE

LIBRE DISTRIBUCIN
DE UTILIDAD EN
MATEMTICAS
SCILAB
MASCOTA
LOGO (frailecillo)
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
SCILAB
Paquete de software de cdigo abierto para
computacin cientfica (clculo numrico, operaciones
matriciales, aplicaciones cientficas y de ingeniera)
SCIentific LABoratory MATrix LABoratory
(pero no igual)

Posibilidades:
calculadora matricial
cientos de funciones ( de propsito general y
especializadas ) para clculo numrico y
visualizacin grfica
lenguaje de programacin propio (interpretado)
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 investigacin

http://www.scilab.org/
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
VERSIN ACTUAL: 4.1.2
PLATAFORMAS:
GNU/Linux
Windows 2000/XP/VISTA
HP-UX
INSTALACIN:
http://www.scilab.org/download/
(BINARIOS Y FUENTES)
DOCUMENTACIN:
http://www.scilab.org/product/
http://www.scilab.org/publications/
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Ayuda on-line: HELP BROWSER
para alternar entre el ndice
de la ayuda y la bsqueda
de comandos o palabras -
clave
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Ayuda on-line: comando help

Se puede solicitar ayuda sobre una funcin


cualquiera, si se conoce su nombre:

-->
-->help exp
En la ventana del HELP BROWSER aparecer la
descripcin de la funcin exp
Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Ayuda on-line: comando help
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Ayuda on-line: comando apropos

Se puede efectuar una bsqueda por palabra-clave.


Por ejemplo, para encontrar el nombre de la funcin
que genera nmeros 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 descripcin aparece la
palabara random
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Algunas muestras de lo que Scilab hace: DEMOS

demo

rdenes
que
producen la
demo
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Por defecto, los nmeros son codificados como
nmeros reales en coma flotante en doble precisin
Algunas constantes numricas estn predefinidas. Su
nombre comienza por % :
%pi : n
nmero pi
%e : n
nmero e
%i : unidad imaginaria
%inf : infinito (overflow)
%nan : not a number

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Operadores aritmticos

+ - * / ^
Operadores de comparacin

== ~= > < >= <=


Operadores lgicos

& | ~

1. USO COMO CALCULADORA


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Los nombres de las funciones elementales son los
habituales
Se puede encontrar el nombre de una funcin bien
en el epgrafe "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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
sqrt(x) raiz cuadrada sin(x) seno (radianes)
abs(x) mdulo 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. hiperblico
rat(x) aprox. racional sinh(x) seno hiperblico
modulo(x,y) resto de dividir x por y tanh(x) tangente hiperblica
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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
La utilizacin de variables en Scilab es DINMICA: su
tipo y su tamao cambian de forma dinmica en
funcin 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 maysculas y minsculas:
xt y Xt son variables distintas

2. VARIABLES
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Las matrices bidimensionales de nmeros reales o
complejos son los objetos bsicos con los que trabaja
Scilab. Los vectores y escalares son casos
particulares de matrices.
Construccin 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
linspace(a,b,n) Si a y b son nmeros reales y n un nmero entero, genera una
particin 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 logartmicamente 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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
Operadores aritmticos:
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 DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
La mayora de las funciones Scilab estn hechas de
forma que admiten matrices como argumentos. Esto
se aplica en particular a las funciones matemticas
elementales y su utilizacin debe entenderse en el
sentido de "elemento a elemento":

exp(A) exp( aij )

5. FUNCIONES Y MATRICES
SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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. MANIPULACIN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - 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. MANIPULACIN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
OBSERVACIONES:
1. Cuando se asigna un valor a un elemento que
no existe de una matriz, la dimensin 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. MANIPULACIN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
OBSERVACIONES:
2. Scilab posee un buen nmero de herramientas
para manipular matrices huecas (sparse), de
inters primordial en la resolucin de problemas
formulados en trminos de ecuaciones diferenciales.
No se ven aqu.

-->
--> apropos sparse

6. MANIPULACIN DE ELEMENTOS DE MATRICES


SOFTWARE DE LIBRE DISTRIBUCIN DE UTILIDAD EN MATEMTICAS

Rosa Echevarra Lbano - Dpto. de Ecuaciones Diferenciales y Anlisis Numrico - Univ de. Sevilla
OBSERVACIONES:
3. Funciones tiles en clculos 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) mximo de las componentes de la matriz A


max(A,'r'), max(A,'c') mximos 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 eucldea 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) mximo 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. MANIPULACIN DE ELEMENTOS DE MATRICES

También podría gustarte