Documentos de Académico
Documentos de Profesional
Documentos de Cultura
=
2 1 7
9 4 5
6 0 2
A se introducen los elementos por filas:
Los elementos de cada rengln pueden separarse con espacios o con comas, y para indicar un nuevo
rengln se utiliza el punto y coma. Los elementos deben especificarse dentro de corchetes.
Algunos tipos especiales de matrices que vienen predefinidos en SCILAB son:
9
donde rand(3,4) genera una matriz de de tamao 3x4 conformada por nmeros aleatorios entre 0 y 1.
Se pueden extraer elementos de una matriz. Para la matriz A definida anteriormente:
2.1 OPERACIONES BSICAS CON MATRICES
Sean las matrices
(
(
(
=
1 6 5
1 0 4
1 2 3
A y
(
(
(
=
3 1 0
4 2 7
2 5 1
B
10
SCILAB contiene una gran cantidad de funciones para manejar matrices. A continuacin se presentan
algunos ejemplos utilizando las matrices A y B definidas anteriormente:
11
s es una matriz diagonal que contiene los valores propios de B y v es una matriz cuyas columnas
contienen los vectores propios de B
P es una matriz de permutacin, U es una matriz triangular superior y L es una matriz triangular
inferior con unos en la diagonal principal.
12
2.2 SOLUCIN DE SISTEMAS LINEALES
La solucin del sistema
3 10 2 3
16 8 5
18 6 2
3 2 1
3 1
3 2 1
= +
= + +
= + +
x x x
x x
x x x
puede obtenerse de diversas formas.
Un procedimiento ms eficiente de Scilab para hallar la solucin si la matriz A es de n x n y el vector b
es de 1 x n es el siguiente:
Tambin puede obtenerse la solucin hallando la matriz escalonada reducida a partir de la matriz
aumentada:
La ltima columna contiene la solucin del sistema.
13
3. FUNCIONES DEFINIDAS POR EL USUARIO
SCILAB tiene una gran capacidad para construir funciones. Esto permite el desarrollo de rutinas que
pueden ser incluidos dentro del entorno del programa.
La sintaxis general de una funcin es la siguiente:
function[y1,y2,.]=fn(x1,x2,.)
endfunction
function es el comando que indica que se est definiendo una funcin.
y1, y2,.. son los parmetros de salida de la funcin
fn es el nombre particular de la funcin
x1,x2,..son los parmetros de entrada de la funcin
SCILAB tiene un editor de texto llamado SciNotes que permite escribir los programas. SciNotes se
abre mediante la opcin Applications.
A manera de ejemplo se escribe una funcin que recibe como parmetros de entrada las dimensiones
de un rectngulo y devuelve el permetro y el rea:
Los archivos en SCILAB tienen extensin .sce o .sci. Se guarda el archivo con el nombre rectngulo:
File-----Save as-----rectangulo
14
Se ejecuta el archivo para que sea cargado en SCILAB mediante: Execute----File with no echo.
Ahora se puede utilizar la funcin:
En algunos programas conviene que los parmetros de salida de la funcin sean los componentes de
un vector. Es muy sencillo modificar la funcin rectngulo:
15
Devuelve un vector columna con los valores del permetro y del rea.
Ejemplo: Utilizar la regla del trapecio para calcular
}
1
0
2
dx e
x
. El valor exacto de la integral es
0.74682.
El valor de la integral de acuerdo a la Regla Trapezoidal est dado por la expresin
(
+ + =
=
1
1
0
) ( ) ( 2 ) (
2
n
i
n i
x f x f x f
h
I
Donde
n a b h / ) ( =
, siendo
1 0 = = b y a
, es decir, los extremos del intervalo. Adems
n es el nmero de segmentos o subintervalos de igual amplitud en los que se divide la regin.
Primero se define la funcin que se desea integrar f y despus se escribe una funcin z que calcula
la aproximacin dada por la Regla Trapezoidal.
La funcin linspace(a,b,n+1) crea un vector con n+1 valores igualmente espaciados entre a y b es
decir, divide el intervalo en n subintervalos iguales. Al escribir la funcin z se debe partir de y(1)
porque SCILAB no reconoce la posicin cero.
16
Se guarda el archivo y se carga en SCILAB. Se procede a calcular el valor de la integral utilizando
diferentes valores de n:
17
3.1 PROGRAMACIN
En SCILAB se pueden utilizar ciclos, estructuras condicionales y otras ayudas de programacin que
permiten generar funciones.
OPERADORES LGICOS
IGUAL ==
DIFERENTE <>
MAYOR >
MAYOR O IGUAL >=
MENOR <
MENOR O IGUAL <=
3.1.1 COMANDOS FOR Y WHILE
El comando for realiza una serie de iteraciones un nmero determinado de veces y ejecuta una accin
indicada en el ciclo:
Cuando se desea mostrar en pantalla un resultado intermedio se utiliza el comando printf o disp. En
este ejemplo se utiliza printf; \n permite escribir cada uno de los valores de y en renglones distintos.
El comando while cumple la misma funcin de for siempre y cuando se cumpla una
condicin:
18
3.1.2 COMANDO IF
La estructura condicional es if-then-else. Una expresin es evaluada, si es verdadera se realiza la
operacin entre if y then; en caso contrario ejecuta lo indicado entre then y else.
19
4. GRFICAS
4.1 GRFICAS EN DOS DIMENSIONES
Se construyen dos vectores de igual tamao en el intervalo deseado.
Ejemplo: Graficar la funcin coseno en el intervalo
| | t t,
Tambin es vlido el comando plot (x,y).
Observe que se ha utilizado un espaciado de 0.01 para crear el vector x. Esto permite obtener una
curva continua suave. No se recomienda usar un espaciado grande porque se obtiene una curva
poligonal. La primera grfica se construye por defecto en la ventana nmero cero. Para realizar una
grfica adicional se debe crear otra ventana mediante File----New figure.
Grfica de
) cos(x y =
en el intervalo
| | t t,
20
Se puede agregar ttulo a los ejes y a la grfica con la orden xtitle:
xtitle(FUNCION COSENO, EJE X, EJE Y)
Se puede agregar al grfico una malla mediante la orden xgrid(). El argumento es un entero que
define el color del enmallado:
21
En un mismo grfico pueden aparecer varias curvas; para esto deben crearse los correspondientes
vectores columna que sern los argumentos de plot2d.
Ejemplo: Crear un grfico para apreciar las funciones seno y coseno en
| | t t,
:
Para identificar las curvas se utiliza el argumento leg separando los nombres con el smbolo @:
22
El comando plot2d dispone de otros argumentos que permiten mejorar notablemente las grficas.
El argumento style utiliza enteros positivos para modificar el color y enteros negativos para modificar
el estilo del grfico.
23
El argumento rect=[xmin,ymin,xmax,ymax] permite visualizar una zona especfica de la ventana del
grfico:
El comando gca permite modificar grficos ya construidos. Es necesario asignar el comando a una
variable.
Ejemplo:
24
Delante de grid=[y,x] crea una malla con colores para las lneas verticales y horizontales:
25
Delante de x_location, y_location modifica la posicin de los ejes coordenados:
Middle= centrado, left=izquierda, rigth=derecha, top=arriba, bottom=abajo.
4.2 GRFICAS EN TRES DIMENSIONES
Se crea la funcin en el editor de SCILAB y se carga el archivo en el programa de la forma
acostumbrada:
26
En la ventana grfica mediante Edit------Figure properties se pueden modificar los ejes y los colores de
la superficie y de la malla.
Otra alternativa para graficar una superficie consiste en definir la funcin directamente en la consola
de SCILAB mediante el comando deff:
27
Recomendaciones:
Antes de realizar un nuevo grfico limpiar la ventana con el comando clf() o crear una nueva
ventana grfica mediante File-----New figure
Al generar los vectores x, y utilizar un espaciado entre 0.1 y 0.3 esto permite apreciar de una mejor
manera el enmallado de la superficie
CURVAS DE NIVEL
Utilizando el comando fcontour se puede apreciar el mapa de contorno de la superficie:
28
5. MTODOS NUMRICOS
5.1 RACES DE ECUACIONES NO LINEALES
La funcin fsolve permite encontrar las races de una ecuacin no lineal, es decir, resuelve
0 ) ( = x f , siendo f una funcin de variable real.
Ejemplo: Encontrar las races de ) ln( ) exp( ) ( x x x f = .
Un anlisis grfico preliminar es muy conveniente para estimar el valor aproximado de las races de la
funcin. Se crea un vector de valores de x en el intervalo arbitrario ] 5 , 0 ( :
29
Se observa que la raz se encuentra en el intervalo ] 5 . 1 , 0 . 1 [ .
Se introduce la funcin en el editor de SCILAB y se carga al programa:
Tambin fsolve permite encontrar la solucin de un sistema no lineal ingresando un vector que
contiene la aproximacin inicial.
Ejemplo: Resolver el sistema
0 8 10
0 8 10
2
2 2
= + +
= + +
y x xy
y x x
La funcin que contiene el sistema no lineal se programa en el editor, utilizando un vector V para los
parmetros de entrada y un vector F de salida para las funciones evaluadas:
Se ejecuta el archivo y se encuentra la solucin partiendo del origen como aproximacin inicial:
30
La salida es el vector solucin del sistema.
Utilizar el jacobiano del sistema hace ms eficiente el uso de la funcin fsolve. Se modifica el
programa que contiene el sistema no lineal:
Se ejecuta el archivo y se encuentra la solucin partiendo del origen como aproximacin inicial:
31
5.2 INTEGRACIN NUMRICA
La funcin intg permite calcular integrales definidas.
Ejemplo: Calcular
}
3
1
2
sin
dx
x
x
Primero se define la funcin utilizando el comando deff y despus se calcula el valor de la
integral con la funcin intg:
Nota: Recuerde que tambin se puede ingresar la funcin utilizando el editor de SCILAB
SCILAB dispone de la funcin inttrap que aplica la Regla del Trapezoide a una serie de datos
experimentales:
Se requiere que los valores de x estn ordenados en forma creciente:
n
x x x < < < .....
2 1
5.3 INTERPOLACIN LINEAL
Sean ) , ( ),......, , ( ), , (
2 2 1 1 n n
y x y x y x n puntos que representan una funcin desconocida. La funcin
interpln permite estimar el valor de la funcin desconocida para valores intermedios de la
variable independiente x .
x 1.0 1.1 1.2 1.3 1.4
) (x f
0.010 0.252 0.586 1.024 1.578
32
Se generan dos vectores fila para los valores de x y de y . El vector de valores de x debe estar
ordenado en forma creciente.
Ejemplo: Para los valores siguientes
E 40 60 80 100 120 140 160
P 0.63 1.36 2.18 3.00 3.93 6.22 8.59
Donde E son los voltios y P los kilowatts en una curva de prdida en el ncleo para un motor
elctrico, aproxime el valor de P correspondiente a 90 voltios.
La funcin interpln utiliza dos parmetros: la matriz [x;y] y el valor de x para el cual se desea estimar
la funcin.
Se puede obtener la grfica de la curva de interpolacin creando un vector linealmente espaciado paa
el rango de valores de x:
33
5.4 ECUACIONES DIFERENCIALES ORDINARIAS
Aproximaciones al problema de valor inicial indicado por
0 0
) (
) , ( '
y x y
y x f y
=
=
se obtienen mediante el uso de la funcin ode.
Ejemplo: Resolver
0 ) 0 (
) ( cos ) ( '
=
+ =
y
y x sen y
La funcin y x f , ( ) se escribe en el editor de SCILAB y se carga al programa.
34
Ejemplo: Resolver el sistema de ecuaciones diferenciales ordinarias
5 ) 0 ( , 3 2
6 ) 0 ( , 3 2 '
2 2 1
2
1 2 1
1
= + + =
= + =
x x x
dt
dx
x t x x
dt
dx
En este sistema aparecen dos funciones desconocidas ) ( , ) (
2 1
t x t x y la variable independiente t .
Se escribe la funcin en el editor y se carga al programa:
35
La primera fila de la matriz contiene los valores de ) (
1
t x y la segunda los valores de ) (
2
t x .
6. BIBLIOGRAFA
El presente documento fue preparado consultando los siguientes tutoriales disponibles en internet:
1. LABORATORIO DE COMPUTACIN DE ALTO DESEMPEO (LCAD). Introduccin a SCILAB.
Facultad de Ingeniera. Universidad de Asuncin. 2005. Disponible en la pgina web:
http://www.ing.una.py/DIREC_PPAL/ACADEMICO/APOYO/calculo%20numerico/Scilab/CURS
O%20DE%20SCILAB.pdf
2. CARO, VALERO. Fundamentos de SCILAB y aplicaciones. Licencia de documentacin libre GNU.
Disponible para descarga en la pgina web:
http://www.scilab.org/contrib/index_contrib.php?page=displayContribution&fileID=262
3. MORA. Introduccin a SCILAB. Departamento de Matemticas. Universidad Nacional de
Colombia. Bogot. 2005. Disponible en la pgina web:
http://www.matematicas.unal.edu.co/~hmora/sci.pdf