Está en la página 1de 61

MINICURSO DE SCILAB

Ángel Durán
Departamento de Matemática Aplicada
Universidad de Valladolid

15 de febrero de 2011
Ensayo de contenidos

1 Generalidades
Preliminares
Operaciones básicas

2 Manipulación de matrices
Variables y expresiones
Operaciones con matrices y coordenada a coordenada
Submatrices y notación de dos puntos
Algunos temas a tratar en la asignatura

3 Programación en SCILAB
Ficheros script y de función
Instrucciones de control y relaciones

4 Gráficos en SCILAB
Gráficos en 2-D
Gráficos en 3-D

5 Referencias
Ensayo de contenidos

1 Generalidades
Preliminares
Operaciones básicas

2 Manipulación de matrices
Variables y expresiones
Operaciones con matrices y coordenada a coordenada
Submatrices y notación de dos puntos
Algunos temas a tratar en la asignatura

3 Programación en SCILAB
Ficheros script y de función
Instrucciones de control y relaciones

4 Gráficos en SCILAB
Gráficos en 2-D
Gráficos en 3-D

5 Referencias
Ensayo de contenidos

1 Generalidades
Preliminares
Operaciones básicas

2 Manipulación de matrices
Variables y expresiones
Operaciones con matrices y coordenada a coordenada
Submatrices y notación de dos puntos
Algunos temas a tratar en la asignatura

3 Programación en SCILAB
Ficheros script y de función
Instrucciones de control y relaciones

4 Gráficos en SCILAB
Gráficos en 2-D
Gráficos en 3-D

5 Referencias
Ensayo de contenidos

1 Generalidades
Preliminares
Operaciones básicas

2 Manipulación de matrices
Variables y expresiones
Operaciones con matrices y coordenada a coordenada
Submatrices y notación de dos puntos
Algunos temas a tratar en la asignatura

3 Programación en SCILAB
Ficheros script y de función
Instrucciones de control y relaciones

4 Gráficos en SCILAB
Gráficos en 2-D
Gráficos en 3-D

5 Referencias
Ensayo de contenidos

1 Generalidades
Preliminares
Operaciones básicas

2 Manipulación de matrices
Variables y expresiones
Operaciones con matrices y coordenada a coordenada
Submatrices y notación de dos puntos
Algunos temas a tratar en la asignatura

3 Programación en SCILAB
Ficheros script y de función
Instrucciones de control y relaciones

4 Gráficos en SCILAB
Gráficos en 2-D
Gráficos en 3-D

5 Referencias
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

1 Entorno interactivo para desarrollar cálculos numéricos y


simbólicos.
2 Código fuente no accesible pero software libre:
htttp://www.scilab.org
3 Consta de programas accesibles de extensión .sce o .sci,
escritos en un lenguaje de programación propio.
1 Cada programa incorpora una función a realizar. Se
pueden editar, imprimir, modificar,...
2 Se pueden crear programas propios.
3 Programas orientados a una disciplina en concreto
agrupados en módulos (Álgebra Lineal, Estadística,
Procesado de Señales,...).
4 Maneras de usar SCILAB:
1 A través de la consola en modo interactivo.
2 A través de un editor propio.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

Comandos y navegador de ayuda


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

Comandos y navegador de ayuda


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

5. Diferencias ficheros fuente/ficheros.sci

−− > edit("sum") −− > edit("trace")


!–error 10000 // Scilab ( http://www.scilab.org/ ) - This file
is part of Scilab
edit: sum es una función // Copyright (C) ????-2008 - INRIA
hard coded ineditable. // This file must be used under the terms
at line 28 of function edit called by : of the CeCILL
edit("sum") // This source file is licensed
// as described in the file COPYING, which
// you should have received as part of this distribution. T
...
function t = trace(a)
// trace - computes the trace of a matrix
select type(a)
case 1 then
[m,n]=size(a)
...
t = sum(diag(a));
...
endfunction
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones básicas

1. Calculadora:

−− > 1 + 2 ∗ 3 − 4ˆ5/6
ans =
−163,6667
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

2. Constantes predefinidas: % pi, % eps, % i, % inf % nan


−− > % eps
% eps =
2,2204e − 016
−− > help % eps
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

3. Formato de salida: Todos los cálculos se efectúan en doble precisión, pero el


formato de salida de los cálculos puede controlarse con el comando format (por
defecto, aparece el formato variable con diez dígitos):

−− > format(’v’,10) −− > format(’e’,10)


−− > 2 ∗ 3ˆ5/7 −− > 2 ∗ 3ˆ5/7
ans = ans =
69,428571 6,9430e + 001
−− > format(’v’,20) −− > format(10,1)
−− > 2 ∗ 3ˆ5/7 −− > 2 ∗ 3ˆ5/7
ans = ans =
69,4285714285714306 69,428571

−− > help format


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

5. Administración del espacio de trabajo.


5.1 Comandos de información: who, whos, what, why, pwd, workspace
5.2 Eliminación de variables: clear
5.3 Almacenamiento: save, load, diary, mopen, mclose
−− > a = 8; b = 9,5;
−− > save(’misdatos.dat’, a, b)

−− > help save


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Preliminares

−− > clear a
−− > clear b
−− > load(’misdatos.dat’)
−− > a
a=
8

−− > help load


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Variables y expresiones

Las instrucciones de SCILAB son de la forma


−− > Variable = expresión (−− > a = 2)
−− > Expresión (−− > 3,15 ∗ 2ˆ3/6)
Las expresiones se componen a partir de operaciones, funciones y nombres de
variables.
No hay que declarar el tipo de variable (real, entera, simbólica, compleja) antes
de expresar su contenido.
Las variables pueden cambiar de tipo.
Los nombres de las variables pueden ser tan largas como se quiera, pero
SCILAB considera sólo los 24 primeros caracteres.
Se permiten letras (a-z, A-Z) y dígitos (0-9). Mayúsculas y minúsculas son
variables distintas para SCILAB.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Variables y expresiones

La evaluación de una operación produce una matriz, objeto elemental en SCILAB, que
se asigna a una variable para posterior uso y se puede mostrar en pantalla. Si se
omite la variable y el signo =, SCILAB crea una variable propia , ans, con el resultado
de la expresión.

−− > a = 2 + 2 −− > 2 + 2
a= ans =
4 4
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Variables y expresiones

Podemos escribir instrucciones en una misma línea; basta separar por comas o puntos
y coma. La diferencia se encuentra en la posibilidad de que el resultado aparezca en
pantalla.

−− > a = 2, b = 3 −− > a = 2; b = 3 −− > a = 2; b = 3;


a= b=
2 3
b=
3

Una instrucción termina generalmente con el retorno de carro. Si se quiere continuar


una expresión en la línea siguiente, se escriben dos o más puntos antes del retorno
−− > a = 1 + 2 + 3 + 4 + 5 + 6 + ...
+8 + 9;
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

El objeto elemental de SCILAB es la matriz. Todas las variables representan matrices,


entendiendo los vectores como matrices de una fila o una columna y los escalares
como matrices de una fila y una columna.
Formas de introducir una matriz:
1 A través de una lista de elementos: se separan las filas por punto y coma, los
elementos de cada fila por comas o espacios en blanco y se encierra la lista
entre corchetes.
−− > A = [0 1 2; 2 3 4; 4 5 6]
A=
0. 1. 2.
2. 3. 4.
4. 5. 6.
2 A través de expresiones de SCILAB:
−− > A = [0 1 2]; A = [A; A + 2; A + 4];
3 En la forma ‘lápiz y papel’
−− > A = [0 1 2
−− > 2 3 4;
−− > 4 5 6]
A=
0. 1. 2.
2. 3. 4.
4. 5. 6.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Las entradas individuales se obtiene poniendo los índices entre paréntesis de forma
usual

−− > A(1, 1) −− > v = [2 3 5]; v (2)


ans = ans =
0 3

Pero sólo pueden usarse como índices números naturales. Expresiones como
v (0), v (−1) son erróneas.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Comandos propios de SCILAB:


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

−− > b = ones(2, 3) −− > C = diag([3 4])


b= C=
1 1 1 3 0
1 1 1 0 4
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Funciones elementales de manipulación: size, length, min, max, sum, find,


prod, cumsum, diff, cumprod,...
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

−− > d = size(b, ”r ”) −− > d = size(b, 2) −− > d = size(b, ” ∗ ”)


d= d= d=
2 3 6
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Las operaciones con matrices son, básicamente


+, −, ∗, ˆ, 0 , \, /
que también se aplican a escalares. Si los tamaños de las matrices son incompatibles
con la operación, aparece un mensaje de error, excepto en el caso de que una de ellas
sea escalar, que se opera con cada elemento de la otra matriz.

−− > A = [1 2; 3 4]; −− > A = [1 + %i 1; 2 1 − %i];


−− > B = A0 B = A0
B= B=
1 3 1. − i 2.
2 4 1. 1. + i

−− > A = [1 + %i 1; 2 1 − %i];
B = A.0
B=
1. + i 2.
1. 1. − i
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

En cuanto a la división, si A es invertible y b es una columna (resp. fila),


x = A\b es la solución de Ax = b (resp. x = b/A es la solución de xA = b).
Estas operaciones pueden extenderse en un sentido general de mínimos cuadrados.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Operaciones coordenada a coordenada y operaciones matriciales: Las


operaciones +, − son coordenada a coordenada, pero las restantes soin operaciones
matriciales. Puede hacerse que operen coordenada a coordenada precediéndolas de
un punto.

−− > A = [0 1 2; 2 3 4; 4 5 6];
−− > Aˆ2 −− > A .ˆ2
ans = ans =
10 13 16 0 1 4
22 31 40 4 9 16
34 49 64 16 25 36

−− > v = [1 2 3]; w = [4 5 6];


−− > v /w −− > v ./w
ans = ans =
0,4156 0,2500 0,400 0,500
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada

Funciones elementales que operan coordenada a coordenada y matriciales


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Operaciones con matrices y coordenada a coordenada


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Submatrices y notación de dos puntos

Submatrices y notación de dos puntos Algunas utilidades permiten manipular filas,


columnas o elementos de una matriz, con la idea de simplificar las expresiones. Por
ejemplo
−− > A = [0 1 2; 2 3 4; 4 5 6] puede generarse
−− > A = [0 : 1 : 2; 2 : 1 : 4; 4 : 1 : 6] o también
−− > A = [0 : 2; 2 : 4; 4 : 6]
Otro ejemplo:
−− > v = [1 : 0,1 : 1,5]
v=
1,0000 1,1000 1,2000 1,3000 1,4000 1,5000
La notación de dos puntos permite también acceder a submatrices de una matriz.
−− > A = [0 1 2; 2 3 4; 4 5 6]

−− > A(:, 2) −− > A(:, [1 3]) −− > A(1, [1 3])


ans = ans = ans =
1 0 2 0 2
3 2 4
5 4 6
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Submatrices y notación de dos puntos

El tamaño de una matriz puede modificarse dinámicamente.

−− > A = [1 2 3; 4 5 6];
−− > A(3, 1) = 7
A=
1. 2. 3.
4. 5. 6.
7. 0. 0.

−− > A(:, 3) = []
A=
1. 2.
4. 5.
7. 0.
−− > B = matrix(A, 1, 6)
B=
1. 4. 7. 2. 5. 0.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Submatrices y notación de dos puntos

El operador $ hace referencia a elementos finales de la matriz.

−− > A = testmatrix(”hilb”, 3)
A=
9. − 36. 30.
−36. 192. − 180.
30. − 180. 180.
−− > A($−1,$−2)
ans =
−36.

−− > A($+1, :) = [1 2 3]
A=
9. − 36. 30.
−36. 192. − 180.
30. − 180. 180.
1. 2. 3.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Submatrices y notación de dos puntos


Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Algunos temas a tratar en la asignatura

Representación de los números en SCILAB.


Polinomios.
Álgebra lineal numérica.
Resolución numérica de ecuaciones y sistemas no lineales.
Resolución numérica de ecuaciones diferenciales.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Ficheros script y de función

Ficheros de escritura o script


Sucesión de instrucciones de SCILAB que se ejecutan en modo comando
tecleando el nombre del archivo.
Por convenio, tienen extension .sce .
Son útiles como apoyo de los archivos de función. Pueden actuar como ficheros
de datos que necesite algún fichero de función más importante, para pequeñas
tareas o como programa principal de varios archivos de función.
Para la ejecución, se usa
−− > exec("filename") // (Repite todas las instrucciones
en pantalla)
−− > exec(’filename’,-1) // (No repite las instrucciones en
pantalla)
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Ficheros script y de función

Ejemplo: reportfig.sce

proj=[’Proy 1’,’Proy 2’,’Reuniones’,’Cursos’,’Comidas’];


subplot(2,1,1)
plot(T,’-o’)
legend(proj)
title(’Informe semanal’)
subplot(2,2,3)
bar(sum(T’,1),’w’)
title(’Horas por día’)
subplot(2,2,4)
pie(sum(T,1),proj)
title(’Horas por actividad’)

−− > T = [2 3 1 2 0,75; 5 ...


0 2 0 1; 4 2 2 0 ...
0,75; 2 0 4 2 0,75; 2 3 1 0 0,5];
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Ficheros script y de función

−− > exec(’F:\ telecos \ angel \ clases \ fmii \ reportfig.sce’,-1)

Informe semanal
5.0
Proy 1
4.5
Proy 2
4.0 Reuniones
3.5 Cursos
3.0 Comidas
2.5
2.0
1.5
1.0
0.5
0.0
1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0

Horas por dia Horas por actividad


9
Comidas
8
7 Cursos
Proy 1
6
5

4
Reuniones
3
2
Proy 2
1
0
1 2 3 4 5
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Ficheros script y de función

Ficheros de función
Archivos de creación de nuevas funciones.
Las variables son locales.
La estructura general del archivo nombre.sci es
function [a1 , . . . , aN ] = nombre (b1 , . . . , bM )
a1 , . . . , aN son los datos de salida
b1 , . . . , bM son las variables de entrada
// Líneas de comentarios
Instrucciones de ejecución...
...
endfunction
Las líneas precedidas de // son de comentario. SCILAB las ignora a efectos de
computación y son las que aparecen al teclear en la ventana de comandos
−− > help nombre.
En el interior de un fichero de función se pueden declarar variables, realizar
operaciones, crear condicionales, ciclos, llamar a funciones ya creadas, bien de
sciLAB o del usuario, etc.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Ficheros script y de función

Ejemplo: −− > edit

function y = fact(n)
//y = fact(n) calcula el factorial de un número n
// n ha de ser un número natural.
y = prod(1 : n);
endfunction

−− > exec(’F:\ telecos \ angel \ clases \ fmii \ fact.sci’)


−− >function [y ] = fact(n)
−− > //y = fact(n) calcula el factorial de un número natural n
−− > //n ha de ser un número natural.
−− > y = prod(1 : n);
−− >endfunction
−− >exec(’F:\ telecos \ angel \ clases \ fmii \ fact.sci’,-1)
−− > y = fact(3)
y=
6.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Relaciones lógicas
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Ciclo for:
for k ={vector}
{instrucciones}
end

function f = fibonacci(f 1, f 2, n)
// Generación de la sucesión de Fibonacci.
f (1) = f 1; f (2) = f 2;
for i = 3 : n
f (i) = f (i − 1) + f (i − 2);
end
endfunction

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ fibonacci.sci’,-1)


−− > f = fibonacci(0, 1, 4)
f =
0 1 1 2
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Condicional:
if {condición lógica} then
{instrucciones}
elseif {condición lógica} then
{instrucciones}
else
{instrucciones}
end
function p = primo(n)
// Lista de los números primos hasta el n.
p = 2;
for i = 3 : n
if ˜or (modulo(i, p) == 0); then
p = [p i];
end
end
endfunction

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ primo.sci’,-1)


−− > p = primo(10)
p=
2 3 5 7
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Instrucción select: dependiendo del valor de una variable, select permite


ejecutar la instrucción correspondiente al case asociado a la variable.

i=2
select i.
case 1
disp(" uno")
case 2
disp("dos")
case 3
disp("tres")
else
disp(" otro caso")

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ ejemploselect.sce’,-1)


dos
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

i=0
select i.
case 1
disp(" uno")
case 2
disp("dos")
case 3
disp("tres")
else
error("valor no esperado de i")

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ ejemploselect2.sce’,-1)


valor no esperado de i
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Ciclo while
while {condición lógica}
{instrucciones}
end

function f = fibonacci2(f 1, f 2, n)
// Generación de la sucesión de Fibonacci.
f (1) = f 1; f (2) = f 2; ii = 3;
while (ii < n)
f (ii) = f (ii − 1) + f (ii − 2);
ii = ii + 1;
end
endfunction

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ fibonacci2.sci’,-1)


−− > f = fibonacci2(0, 1, 4)
f =
0 1 1 2
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Instrucción break: permite interrumpir un ciclo.

function f = fibonacci3(f 1, f 2, n)
// Generación de la sucesión de Fibonacci.
f (1) = f 1; f (2) = f 2; ii = 3;
while ( %t)
if (ii > n) then
break
end
f (ii) = f (ii − 1) + f (ii − 2);
ii = ii + 1;
end
endfunction
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Instrucciones de control y relaciones

Instrucción continue: permite dar saltos en un ciclo.

function s = sumap(n)
// Suma de los cuadrados de los enteros pares.
// hasta el n
s = 0; ii = 0;
while (ii < n)
ii = ii + 1;
if (modulo(i,2)<>0) then
continue
end
s = s + ii ∗ ∗2;
end
endfunction

−− >exec(’F:\ telecos \ angel \ clases \ fmii \ sumap.sci’,-1)


−− > s = sumap(6)
s=
56
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

Comandos generales Los comandos plot, plot2d crea gráficos en el plano. Si x es un


vector, y = plot(x) genera un dibujo de las componentes de y frente a los índices de x.

−− > x = [0 : 2 ∗ %pi/7 : 2 ∗ %pi];


−− > y = cos(x);
−− > plot2d(y )

SCILAB dibuja los puntos (1, cos(x(1))), . . . , (8, cos(x(8))) y los une con una
poligonal. Los datos se autoescalan y se dibujan los ejes.
Se puede dar título al gráfico y etiquetas a los ejes.

−− > title(0 nombre10 )


−− > xtitle(0 nombre10 ,0 ejeX 0 ,0 ejeY 0 )
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

nombre1
1.0

0.8

0.6

0.4

0.2
eje Y

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
1 2 3 4 5 6 7 8
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

Si x e y son vectores de la misma longitud, plot(x, y ) dibuja los elementos de x frente


a los de y . Así,
>> plot(x, y )
dibuja (x(1), cos(x(1))), . . . , (x(8), cos(x(8))) y los une con poligonales. De manera
que cuantos más puntos tenga x, mejor se representará la función.

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
0 1 2 3 4 5 6 7
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

Hay dos métodos para hacer varios dibujos en un solo gráfico:

Comando plot con dos argumentos.


Si Y es una matriz y x es un vector, plot(x, Y ) dibuja
sucesivamente las filas o columnas de Y frente a los
elementos de x (dependiendo de cuál de los dos tiene la
misma longitud que x. Si Y es cuadrada, se usa la
dirección columna) usando un tipo diferente de línea para
cada fila/columna.
Si X es una matriz, y es un vector, se aplican las reglas de
arriba, dibujándose X frente a y .
Si X e Y son matrices del mismo tamaño, plot(X , Y ) dibuja
las columnas de X frente a las de Y .
plot(Y ) dibuja cada columna de Y frente al índice de fila.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

Comando plot con varios argumentos:

>> x = [0 : 2 ∗ %pi/35 : 2 ∗ %pi];


>> y = cos(x); z = cos(4 ∗ x)
>> plot(x, y , x, z)

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-0.4

-0.6

-0.8

-1.0
0 1 2 3 4 5 6 7
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

Pueden controlarse los tipos de línea y el color

Tipo línea Tipo puntos Color


Sólida − Cruz + Verde g
A trozos −− Punto · Negro k
Puntos : Estrellas ∗ Rojo r
Trazo y punto −. Círculo o Azul b

Por defecto, se superponen los gráficos. Para hacer dibujos separados, hay que usar
clf() o figure.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

El comando subplot permite dibujar varias gráficas en una misma ventana.


subplot(mnp) divide la ventana gráfica en una matriz m × n y utiliza la caja p para el
siguiente dibujo que se indique.

−− > x = [0 : 2 ∗ %pi/35 : 2 ∗ %pi];


−− > subplot(2, 2, 1)
−− > y = cos(x); plot(x, y )
−− > subplot(2, 2, 2)
−− > y = cos(2 ∗ x); plot(x, y ,0 g 0 )
−− > subplot(2, 2, 3)
−− > y = cos(3 ∗ x); plot(x, y ,0 −.r 0 )
−− > subplot(2, 2, 4)
−− > y = cos(4 ∗ x); plot(x, y ,0 : k 0 )
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D

1.0 1.0
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0.0 0.0
-0.2 -0.2
-0.4 -0.4
-0.6 -0.6
-0.8 -0.8
-1.0 -1.0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

1.0 1.0
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0.0 0.0
-0.2 -0.2
-0.4 -0.4
-0.6 -0.6
-0.8 -0.8
-1.0 -1.0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 2-D
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 3-D

Comando mesh: genera un dibujo tridimensional.

−− > x = −2 : ,1 : 2; y = −2,5 : ,1 : 2,5;


−− > size(x), size(y )
ans =
1 41
ans =
1 51
−− > [X , Y ] = meshgrid(x, y );
−− > f = (X .ˆ2 + 3 ∗ Y .ˆ2).ˆ2 − Y .ˆ2);
−− > size(f )
ans =
51 41
−− > mesh(x, y , f )
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 3-D

600

500

400

Z 300

200

100

-100
2.5
2.0
1.5
1.0 2.0
0.5 1.5
0.0 1.0
Y -0.5 0.5
-1.0 0.0
-1.5 -0.5 X
-1.0
-2.0 -1.5
-2.5 -2.0
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Gráficos en 3-D

Otros comandos:
plot3d: dibujo de curvas en 3-D.
contour: mira la superficie desde arriba; las curvas de nivel y los colores ilustran
la altura. El comando da un dibujo bidimensional (x, y ), donde las curvas de
nivel f (x, y ) = C se dibujan para un número de constantes C elegidas
automáticamente.
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias

Referencias

I NTRODUCTION TO SCILAB. Consortium SCILAB, www.scilab.org, 2010


R. Echevarría, U NA INTRODUCCIÓN RÁPIDA A SCILAB. Departamento de Ecuaciones
Diferenciales y Análisis Numérico, Universidad de Sevilla,
http://personal.us.es/echevarria/ , 2010

También podría gustarte