Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Á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
Preliminares
Preliminares
Preliminares
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias
Preliminares
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
Preliminares
Preliminares
Preliminares
−− > clear a
−− > clear b
−− > load(’misdatos.dat’)
−− > a
a=
8
Variables y expresiones
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.
Las entradas individuales se obtiene poniendo los índices entre paréntesis de forma
usual
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
−− > 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
−− > 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
−− > 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
−− > 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
Ejemplo: reportfig.sce
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
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 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
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
Relaciones lógicas
Generalidades Manipulación de matrices Programación en SCILAB Gráficos en SCILAB Referencias
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
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
i=2
select i.
case 1
disp(" uno")
case 2
disp("dos")
case 3
disp("tres")
else
disp(" otro caso")
i=0
select i.
case 1
disp(" uno")
case 2
disp("dos")
case 3
disp("tres")
else
error("valor no esperado de i")
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
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
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
Gráficos en 2-D
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.
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
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
Gráficos en 2-D
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
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
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
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