Sunteți pe pagina 1din 18

Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática

Facultad Regional Mendoza Unidad Temática 3


Ingeniería Química Título: Modo Consola

MODO CONSOLA

ASPECTOS GENERALES

Modo consola

En el modo básico de funcionamiento de Scilab, se lo puede utilizar como si se tratara de una calculadora
científica, escribiendo las expresiones matemáticas y obteniendo los resultados de las mismas en forma
inmediata. Este es el llamado modo consola.

El modo consola de Scilab está soportado a través de un editor de línea, esto significa que el usuario no se
puede desplazar libremente por la pantalla, como por ejemplo, cuando se utiliza un procesador de textos. Sólo se
puede escribir a continuación del denominado “prompt” que está compuesto por los caracteres “-->”. Las teclas
de cursor derecha e izquierda permite el desplazamiento sobre la línea que está siendo escrita para poder hacer
correcciones, mientras que las teclas arriba y abajo permiten acceder a las líneas previamente escritas, ya sea
para utilizarlas nuevamente tal cual están o previa modificación.

Nombre de variables

En Scilab los nombres de las variables deben responder a las siguientes reglas:

1- Pueden estar formados por caracteres alfanuméricos (letras y números), pero las letras deben ser las
correspondientes al alfabeto inglés (no se pueden utilizar ñ, acentos, etc.).
2- Los nombres debe comenzar con un carácter alfabético, es decir, debe comenzar con una letra.
3- Scilab hacer diferencia entre mayúsculas y minúsculas, por lo que las variables radio y Radio son
distintas.
4- No se pueden utilizar espacios, pero sí es posible usar el guión bajo _. Así por ejemplo, no es válido el
nombre radio 1, pero sí se puede usar radio_1.

Se recomienda no utilizar la diferencia entre mayúsculas y minúsculas para representar dos variables distintas,
de esta manera es preferible trabajar con las variables r_menor y r_mayor, que con las variables llamadas radio
y Radio. Esto se debe a que un error de escritura; por ejemplo, escribir radio en lugar de Radio, va a producir
resultados incorrectos de muy difícil localización.

Operaciones y precedencia

Las operaciones matemáticas que se pueden realizar con Scilab son las siguientes:

Operación Simbología Ejemplo


Potenciación ^ 2^3 = 8
1
Radicación ^ 16^(1/4)=2
Multiplicación * 3*4 = 12
División / 12/6 = 2
Adición + 4+6=10
Sustracción - 8-5=3

Las expresiones matemáticas se resuelven con las mismas prioridades utilizadas en una calculadora científica.
Primero se calculan los paréntesis, luego las potencias y raíces, luego los productos y cocientes, y finalmente las
sumas y restas. Si hay operaciones de igual prioridad se resuelven de izquierda a derecha.

Los paréntesis son utilizados para cambiar las prioridades de cálculo, ya que los mismos son los primeros en ser
evaluados.

1
Como se explicará más adelante, el exponente debe estar entre paréntesis, ya que la potenciación tiene prioridad sobre el cociente.

Ing. Juan E. Núñez Mc Leod Página 1 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Así por ejemplo, la expresión 10/2+3 da como resultado 8, mientras que 10/(2+3) da como resultado 2.
Debido a que la radicación se resuelve como potencia de exponente fraccionario, el exponente debe ser colocado
entre paréntesis, de esta manera es calculado antes que la potencia. Por ejemplo: 9^(1/2), se calcula primero
el exponente, que resulta igual a 0.5, y luego se evalúa la potencia 9^0.5 que resulta igual a 3. Si no fuera por la
presencia del paréntesis, quedaría 9^1/2, y en tal caso se calcula primero la potencia 9^1 y luego el resultado
se dividiría por 2 dando finalmente 4.5.

En un cálculo como -1^2 Scilab interpreta el signo “-“ como símbolo de sustracción, por lo tanto tiene menor
prioridad que la potencia, dando como resultado final el valor -1. Para evitar este problema se deben usar
paréntesis, escribiendo (-1)^2, en cuyo caso se obtiene el valor 1 como respuesta.

Como se verá más adelante, Scilab maneja tanto el álgebra como el análisis complejo, por lo que es posible
calcular raíces de índice par y radicandos negativos. Así por ejemplo, si se desea calcular la raíz cuadrada de -1,
y teniendo en cuenta la discusión previa, se puede escribir (-1)^(1/2), dando como resultado el valor
6.123D-17 + i. Se observa que el resultado obtenido no es el esperado, pero analizándolo se aprecia que la
parte real es prácticamente nula, comparada con la parte imaginaria, por lo que se puede considerar como una
aproximación del valor correcto.

Estos errores de cálculo, que dan resultados aproximados y no los correctos, son comunes en cualquier
computadora y en general no constituyen un problema. Sí se debe tener en cuenta que Scilab ofrece funciones
que permiten realizar ciertos cálculos de manera más precisa; así por ejemplo, para calcular raíces cuadradas se
tiene la función llamada sqrt, por lo que para obtener la raíz cuadrada de -1 se puede escribir sqrt(-1),
obteniendo como resultado el valor correcto i.

Como conclusión se puede decir que si Scilab tiene una función de cálculo específico, ésta debe ser utilizada ya
que no solo se obtiene una mejor precisión de los resultados, sino también el se insume menos tiempo de
procesador.

Constantes predefinidas

Scilab define las siguientes constantes matemáticas:

Nombre Significado
%pi Valor de la contante .
%e Valor del número e, base de los logaritmos naturales.
%i Valor de la unidad imaginaria = √−1.
%inf Representa el infinito matemático ∞.
%t Representa el valor lógico verdadero (true).
%f Representa el valor lógico false (false).
%nan Indica que el dato no es un número (not a number)

Así por ejemplo si se escribe %pi y se presiona la tecla Enter, Scilab responde con la siguiente información:

-->%pi
%pi =
3.1415927

La primera línea está compuesta por el prompt -->, el cual no debe ser escrito, solamente se debe ingresar el
texto %pi para luego presionar la tecla Enter, momento en el cual Scilab responde mostrando las dos líneas
siguientes, que constituyen el resultado de la operación.

Ing. Juan E. Núñez Mc Leod Página 2 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Tipos de datos

Los tipos de datos básicos que maneja Scilab son los siguientes:
2
- Datos numéricos: que pueden ser tanto valores reales como complejos .
- Cadenas de caracteres: que corresponden a todo tipo de textos, los cuales deben estar encerrados entre
3
comillas dobles o simples (apóstrofes) , para que Scilab no las confunda con nombres de variables.
- Datos booleanos: son todos aquellos datos que se pueden expresar en términos de verdadero o falso.
Por ejemplo: ¿la variable x es igual a 5?

Notación científica

La representación de valores en notación científica, también llamada notación de punto flotante, es muy común
en ingeniería. Es de gran utilidad tanto para representar números muy grandes como muy pequeños, en un
formato muy reducido. Así por ejemplo:

Descripción Notación científica Notación de punto fijo


-31
Masa del electrón 9.11 x 10 kg 0.000000000000000000000000000000911 kg
24
Masa de la Tierra 5.9722 x 10 kg 5972200000000000000000000 kg

Las partes constitutivas de la notación científica son: la mantisa, la base y el exponente. Así por ejemplo, si se
-5
tiene el valor 1.58 x 10 sus distintas partes son:

- Mantisa: 1.58
- Base: 10
- Exponente: -5

Tal como se observa a continuación:

Para representar esta notación en una computadora, se escribe primero la mantisa, luego la letra d o la letra e (la
cual representa la base y se puede escribir en mayúscula o minúscula) y finalmente el exponente, todo lo dicho
sin dejar espacios intermedios.

De esta manera en el ejemplo anterior se debe escribir: 1.58d-5. De la misma manera, la masa del electrón se
representa como 9.11d-31 y la masa de la Tierra es 5.9722d24.

En lugar de utilizar notación científica, se puede caer en la tentación de escribir el valor correspondiente de la
siguiente manera:

2
Scilab no solo maneja el álgebra de número complejos, sino también el análisis matemático con dicho números. De esta manera se pueden
calcular funciones con argumento complejo.
3
El apóstrofe no se debe confundir con los acentos graves y agudos. El apóstrofe o comilla simple se ubica generalmente en la tecla
inmediatamente a la derecha del 0 (cero) junto con el signo de cierre de interrogación “?”.

Ing. Juan E. Núñez Mc Leod Página 3 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

-->5.9722*10^24
ans =

5.972D+24

Si bien el resultado es el correcto, no es conveniente utilizar este método ya que Scilab debe resolver la
expresión matemática para obtener el resultado, desperdiciando tiempo de cómputo del microprocesador.

Especificación del formato numérico en pantalla

La función format permite indicarle a Scilab el formato con el cual debe mostrar los valores numéricos en
pantalla.
Esta función tiene dos argumentos: el primero indica si se debe utilizar notación de punto fijo (representado por
“v”) o punto flotante (notación científica, representado por “e”) y el segundo indica la cantidad máxima de
4
dígitos a escribir . En la siguiente tabla se pueden analizar distintos ejemplos:

Instrucción Cálculo Resultado en pantalla


format(“v”,8) 1/3 0.33333
format(“v”,5) -1/8 -0.12
format(“e”,10) 4^10 1.049D+06
format(“e”,15) -5.2^10 -1.44555106D+07

Se debe tener presente que la función format afecta a la representación de los valores numéricos en pantalla,
no a la precisión con que dicho valores son almacenados, ya que Scilab los calcula y almacena con la máxima
precisión disponible.

Precisión numérica de una computadora

En la matemática formal existen valores numéricos que tienen infinitos dígitos, tal es el caso de √2, , que
constituyen clásicos ejemplos de números irracionales y otros como 1/3 que si bien son número racionales, pero
no tienen una representación decimal finita, son los llamados números periódicos.

La memoria de una computadora es finita, por lo que es imposible almacenar este tipo de números, por lo tanto
las computadoras almacenan una cantidad finita de dígitos, que por lo general son entre 14 y 16. Esto se puede
comprobar fácilmente en Scilab mediante la instrucción format(“v”,25), la cual solicita 25 dígitos de
representación decimal (es el máximo valor admitido por esta función).

Si a continuación se escribe 1/3, el resultado que se verá en pantalla será:

-->1/3
ans =
0.3333333333333333148296

Como se observa, los primero 16 dígitos son correctos y después aparecen valores que responden a un
resultado artificial, al exigirle a la computadora que muestre una cantidad de dígitos que exceden su precisión
intrínseca (la precisión del procesador numérico del microprocesador).
-16
Si se desea sumar 1 + 10 el resultado obtenido será el siguiente:

-->1+1d-16
ans =
1.

4
Un lugar se reserva para el signo del número y otro para el punto decimal.

Ing. Juan E. Núñez Mc Leod Página 4 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Analizando el resultado se observa que el cálculo está por fuera de la precisión numérica de la computadora. Por
-15
otro lado, si se hace el cálculo 1 + 10 , el resultado será:

-->1+1d-15
ans =

1.000000000000001110223

Se observa que si bien el resultado es correcto hasta el decimal 15, luego sigue una serie de valores residuales
provenientes de las limitaciones numéricas del microprocesador.

Si bien, en este texto, se ha hecho una discusión muy somera sobre la precisión numérica en una computadora,
se advierte al lector que este tema es mucho más amplio, y es algo que el ingeniero debe conocer, ya que en
determinadas circunstancias puede provocar problemas de precisión numérica graves; es decir, se tienen los
modelos matemáticos correctos, pero los resultados son incorrectos debido a las limitaciones tecnológicas de las
computadoras.

VECTORES Y MATRICES

Declaración

Toda la información que Scilab maneja es en formato matricial (los vectores, fila o columna, son un caso
particular de una matriz). En el caso de números de tipo escalar, Scilab los trata como si fueran matrices de 1 x 1.

La primera operación que se debe aprender es cómo definir o ingresar matrices. Sea por ejemplo, un sistema de
ecuaciones lineales como el que se da a continuación:

2 − 3 + 2 = −4
−2 + 6 − 2 = 10
− − = −11

Desde el punto de vista matricial, este sistema está definido por la matriz de los coeficientes (A), la matriz de los
términos independientes (B) y la matriz de las incógnitas (X), tal cual se observa a continuación:

. =

En donde cada matriz está definida de la siguiente manera:



2 −3 2 −4
= −2 6 −2 ; = 10 ; = ;
1 −1 −1 −11

La matriz A se puede definir de las siguientes maneras:

1- Escribir
A=[2 -3 2;-2 6 -2;1 -1 -1] y presionar la tecla Enter.

2- Escribir
A=[2,-3,2;-2,6,-2;1,-1,-1] y presionar la tecla Enter.

3- Escribir
A=[2 -3 2, presionar la tecla Enter y luego escribir,
-2 6 -2, presionar Enter y terminar escribiendo,
1 -1 -1] y presionar Enter nuevamente.

En todos los casos la matriz comienza con un corchete izquierdo y termina con un corchete derecho. En los dos
primeros casos se observa como una matriz se puede ingresar en una sola línea, separando los elementos de
cada fila por espacios (primer caso) o con comas (segundo caso). El punto y coma sirve para separar las distintas

Ing. Juan E. Núñez Mc Leod Página 5 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

filas de la matriz. En el tercer caso, cada fila de la matriz se escribe en una nueva línea, acá no es necesario
escribir el punto y coma. En este último caso cuando se escribe el corchete derecho, Scilab interpreta que
terminó el ingreso de la matriz.

Sin importar cuál de los métodos se utilice, en el momento de terminar el ingreso y presionar la tecla Enter, Scilab
muestra el resultado para poder revisar que todo esté en orden, tal como se muestra a continuación:

A =
2. - 3. 2.
- 2. 6. - 2.
1. - 1. - 1.

Si el resultado no se corresponde con el esperado, se debe proceder a ingresar nuevamente la matriz, ya sea
escribiendo todo de nuevo o utilizando las flechas del cursor arriba y abajo para corregir el error cometido.

Siguiendo el primer método, para ingresar la matriz B se escribe B=[-4;10;-11]. Obsérvese que de esta
manera queda definido un vector columna (tres filas y una columna), pero si se escribiera B=[-4 10 -11] se
define un vector fila (una fila y tres columnas). Desde el punto de vista del álgebra de matrices una es la
traspuesta de la otra y se debe utilizar la que corresponda en cada caso; es decir, no son intercambiables.

Para resolver el sistema de ecuaciones se debe hacer el cálculo = . , que significa multiplicar la matriz
inversa de A por la matriz B. Para hacer esto en Scilab se escribe X=inv(A)*B, donde la función inv() calcula
la matriz inversa del argumento, el cual debe ser una matriz cuadrada. El resultado obtenido es el siguiente:

X =
-4.
2.
5.

Además de lo visto, hay dos formas adicionales para definir vectores fila:

1- Indicando el valor inicial, el incremento y el valor final. Así si se desea definir un vector cuyos valores
vayan de 0 a 10, yendo de 0.5 en 0.5, se puede escribir x=[0:0.5:10] y presionar la tecla Enter. El
resultado que se obtiene es el siguiente:

x =
column 1 to 11
0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5.
column 12 to 21
5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5 10.

La forma particular en que se muestra la información en este caso se debe a la falta de espacio en la
pantalla del monitor para mostrar la fila completa, por lo que se observa primero desde la columna 1 a la
11 y a continuación de la 12 a la 21.

2- La otra posibilidad es indicar el valor inicial, el valor final y la cantidad de valores deseados, pero en este
caso se debe utilizar una función específica. Por ejemplo, se desea un vector que comience en 0 y
termine en 15, pero que contenga 21 valores, para lo cual se debe escribir x=linspace(0,15,21), y
es resultado es el siguiente:

x =
column 1 to 10
0. 0.75 1.5 2.25 3. 3.75 4.5 5.25 6. 6.75
column 11 to 19
7.5 8.25 9. 9.75 10.5 11.25 12. 12.75 13.5
column 20 to 21
14.25 15.

Ing. Juan E. Núñez Mc Leod Página 6 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Si se quiere tener una tabla de 10 valores de la función = 3 − 5 + 1 que abarquen los valores de x desde -5
a 5, se puede escribir lo siguiente: x=linspace(-5,5,10) y luego y=3*x^2-5*x+1, obteniendo por resultado
lo que se expresa a continuación:

x =
column 1 to 6
- 5. - 3.8888889 - 2.7777778 - 1.6666667 - 0.5555556 0.5555556
column 7 to 10
1.6666667 2.7777778 3.8888889 5.

y =
column 1 to 6
101. 65.814815 38.037037 17.666667 4.7037037 - 0.8518519
column 7 to 10
1. 10.259259 26.925926 51.

En este ejemplo se observa la ventaja que ofrece Scilab al trabajar en modo matricial, ya que no es necesario
realizar el cálculo de la expresión matemática diez veces, como lo deberíamos hacer con una calculadora, sino
que Scilab evalúa la función para cada uno de los elementos de la matriz que representa a la variable
independiente. De esta manera, fácilmente se pueden generar grandes tablas de datos con muy pocas
instrucciones.

Evitar el eco a pantalla

Como se ha visto, cada vez que se escribe alguna instrucción y se presiona la tecla Enter, Scilab muestra en
pantalla el resultado correspondiente, esto es lo que se llama un eco. Este fenómeno es muy útil para conocer los
resultados a medida que se va calculando; sin embargo, en otros casos puede resultar innecesario o incluso
tedioso: imagínese el caso de generar un vector con la función linspace de 1000 elementos.

En caso que no se desee que se produzca un eco en pantalla, se debe escribir un punto y coma al final de la
instrucción correspondiente, como se ve a continuación, donde una vez que se presiona Enter Scilab ejecuta la
instrucción, no envía información a la pantalla y muestra nuevamente el prompt para la siguiente instrucción.

-->x=linspace(1,50,1000);
-->

Si aparece el prompt únicamente, sin ninguna información adicional, significa que la operación fue realizada con
éxito, ya que de lo contrario Scilab mostrará un mensaje de error, como se observa en la siguiente secuencia de
cálculos.

-->x=0;

-->y=1/x;
!--error 27
División por cero...
-->

Espaciado lineal y logarítmico

Como se discutió anteriormente, la función linspace permite obtener un conjunto de valores espaciados
linealmente; sin embargo, en ingeniería es muy común la necesidad de utilizar espaciados logarítmicos, por
ejemplo para trabajar con concentraciones de hidrogeniones, números de Reynolds, etc. En este último caso se
tiene un rango muy amplio de valores; así por ejemplo, en el caso de hidrogeniones se puede ir de
-14
concentraciones de 10 hasta 1 mol/litro.

Si se utiliza un espaciado lineal el resultado es el siguiente (nótese que Scilab selecciona automáticamente la
notación científica al tratarse de números muy pequeños o muy grandes):

Ing. Juan E. Núñez Mc Leod Página 7 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

-->x=linspace(1e-14,1,15)
x =
column 1 to 5
1.000D-14 0.0714286 0.1428571 0.2142857 0.2857143

column 6 to 11
0.3571429 0.4285714 0.5 0.5714286 0.6428571 0.7142857

column 12 to 15
0.7857143 0.8571429 0.9285714 1.
-14
Como se observa el resultado no representa lo que se busca, una distribución homogénea desde 10 hasta 1,
en su lugar, la mayoría de los valores (en términos relativos) se aproximan a 1.

Para lograr un resultado adecuado se utiliza el espaciado logarítmico, haciendo uso de la función logspace, tal
cual se observa a continuación:

-->x=logspace(-14,0,15)
x =
column 1 to 5
1.000D-14 1.000D-13 1.000D-12 1.000D-11 1.000D-10

column 6 to 11
1.000D-09 1.000D-08 1.000D-07 0.000001 0.00001 0.0001

column 12 to 15
0.001 0.01 0.1 1.

Analizando el resultado es clara la distribución pareja de valores. Para lograr esto se debe tener en cuenta que
5
los argumentos de logspace son la potencia inicial, la potencia final y la cantidad de valores.

Acceso a elementos individuales de una matriz

Sean las matrices A y B declaradas anteriormente, en donde A es una matriz cuadrada de 3 x 3 y B es un vector
columna de 3 x 1, tal cual se reproduce a continuación:

2 −3 2 −4
= −2 6 −2 ; = 10
1 −1 −1 −11

Para acceder a los elementos individuales de una matriz se escribe por ejemplo A(i,j) o B(i,1), donde i es la
fila y j la columna del elemento deseado, obsérvese que en el caso de la matriz B, como columna sólo es posible
colocar el número uno.

Así por ejemplo, para conocer el elemento de la primera fila y la primera columna, se escribe:

-->A(1,1)
ans =
2.

Mientras que si se desean trabajar con el elemento de la segunda fila de la matriz B, se escribe:

-->B(2,1)
ans =
10.

5
Teniendo en cuenta que se representan dichos valores en notación científica.

Ing. Juan E. Núñez Mc Leod Página 8 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

En el caso particular de vectores fila o columna, al ser una de las dimensiones fija, Scilab nos permite obviarla y
escribir únicamente la dimensión que cambia, en el caso anterior se podría escribir:

-->B(2)
ans =
10.

Acceso a submatrices

Se verá a continuación la forma de acceder a varios elementos a la vez. Sea la matriz A definida anteriormente:

2 −3 2
= −2 6 −2
1 −1 −1

Se puede acceder a una columna completa de la misma mediante una instrucción como la siguiente, obteniendo
como resultado la segunda columna completa:

-->A(:,2)
ans =

- 3.
6.
- 1.

De la misma manera se puede obtener la tercera fila completa escribiendo la siguiente instrucción:

-->A(3,:)
ans =

1. - 1. - 1.

Finalmente se podría escribir la siguiente instrucción, que nos devuelve la submatriz compuesta por los
elementos ubicados en la primera y segunda filas, y en la segunda y tercera columnas.

-->A(1:2,2:3)
ans =

- 3. 2.
6. - 2.

Matrices características

Existe una serie de matrices que son características, que si bien se pueden definir con las técnicas vistas
anteriormente, se dispone de funciones específicas para facilitar esta tarea.

Si se desea obtener una matriz unitaria de 4 x 4 se puede escribir A=eye(4,4), obteniendo como resultado lo
siguiente:

A =
1. 0. 0. 0.
0. 1. 0. 0.
0. 0. 1. 0.
0. 0. 0. 1.

Si se desea obtener una matriz nula de 4 x 4 se puede escribir A=zeros(4,4), obteniendo como resultado lo
siguiente:

Ing. Juan E. Núñez Mc Leod Página 9 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

A =
0. 0. 0. 0.
0. 0. 0. 0.
0. 0. 0. 0.
0. 0. 0. 0.

Si se desea obtener una matriz cuyos elementos sean todos uno, de 4 x 4, se puede escribir A=ones(4,4),
obteniendo como resultado lo siguiente:

A =
1. 1. 1. 1.
1. 1. 1. 1.
1. 1. 1. 1.
1. 1. 1. 1.

Existen otras funciones para realizar operaciones con matrices que se detallan en la siguiente tabla.

Función Descripción
A’6 Devuelve la matriz traspuesta de A.
diag(A) Devuelve un vector con la diagonal principal de la matriz A.
tril(A) Devuelve la matriz triangular inferior de A.
triu(A) Devuelve la matriz triangular superior de A.
prod(A) Devuelve un valor escalar que equivale al producto de todos los
elementos de la matriz A.
sum(A) Devuelve un valor escalar que equivale a la suma de todos los
elementos de la matriz A.
det(A) Calcula el valor del determinante de la matriz A.
inv(A) Calcula la matriz inversa de A.
norm(x) Calcula el módulo del vector x (norma euclideana).
size(A) Devuelve un vector con la cantidad de filas y columnas de la matriz A.
length(A) Devuelve la cantidad total de elementos de la matriz A.

FUNCIONES MATEMÁTICAS

En la siguiente tabla se presenta una lista de las funciones matemáticas más comunes, haciéndose mención de
las características de cada una de ellas. Se aclara que no es una lista exhaustiva y se debe recordar que los
argumentos de las funciones pueden ser matrices, no solo escalares. También siempre se debe recordar que
Scilab diferencia entre mayúsculas y minúsculas, por lo que si se desea calcular el seno de un ángulo la
expresión correcta es sin(x), por el contrario Sin(x) o SIN(x), dará el error “Variable indefinida”.

Función Descripción
sin(x) Seno del ángulo x expresado en radianes.
sind(x) Seno del ángulo x expresado en grados sexagesimales.
sinh(x) Seno hiperbólico de x.
asin(x) Arcoseno de x, el resultado estará en radianes.
asind(x) Arcoseno de x, el resultado estará en grados sexagesimales.

6
El símbolo a utilizar es el apóstrofe, no se debe confundir con los acentos graves o agudos.

Ing. Juan E. Núñez Mc Leod Página 10 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Función Descripción
asinh(x) Función inversa del seno hiperbólico de x.
cos(x) Coseno del ángulo x expresado en radianes.
cosd(x) Coseno del ángulo x expresado en grados sexagesimales.
cosh(x) Coseno hiperbólico de x.
acos(x) Arcocoseno de x, el resultado estará en radianes.
acosd(x) Arcocoseno de x, el resultado estará en grados sexagesimales.
acosh(x) Función inversa del coseno hiperbólico de x.
tan(x) Tangente del ángulo x expresado en radianes.
tand(x) Tangente del ángulo x expresado en grados sexagesimales.
tanh(x) Tangente hiperbólica de x.
atan(x) Arcotangente de x, el resultado estará en radianes.
atand(x) Arcotangente de x, el resultado estará en grados sexagesimales.
atanh(x) Función inversa de la tangente hiperbólica de x.
sec(x) Secante del ángulo x expresado en radianes.
secd(x) Secante del ángulo x expresado en grados sexagesimales.
sech(x) Secante hiperbólica de x.
asec(x) Arcosecante de x, el resultado estará en radianes.
asecd(x) Arcosecante de x, el resultado estará en grados sexagesimales.
asech(x) Función inversa de la secante hiperbólica de x.
csc(x) Cosecante del ángulo x expresado en radianes.
cscd(x) Cosecante del ángulo x expresado en grados sexagesimales.
csch(x) Cosecante hiperbólica de x.
acsc(x) Arcocosecante de x, el resultado estará en radianes.
acscd(x) Arcocosecante de x, el resultado estará en grados sexagesimales.
acsch(x) Función inversa de la cosecante hiperbólica de x.
cotg(x) Cotangente del ángulo x expresado en radianes.
cotd(x) Cotangente del ángulo x expresado en grados sexagesimales.
coth(x) Cotangente hiperbólica de x.
acot(x) Arcocotangente de x, el resultado estará en radianes.
acotd(x) Arcocotangente de x, el resultado estará en grados sexagesimales.
acoth(x) Función inversa de la cotangente hiperbólica de x.
log(x) Logaritmo natural de x.
log10(x) Logaritmo en base 10 de x.
exp(x) Calcula el antilogaritmo natural de x.
sqrt(x) Calcula la raíz cuadrada de x.
abs(x) Calcula el valor absoluto de x.

FUNCIONES DE MANEJO DE NÚMEROS COMPLEJOS

Se detallan a continuación un conjunto de funciones específicas para aplicar a números complejos. Si bien en el
actual curso no se estima utilizar este conjunto numérico; sin embargo, es necesario indicar que el conjunto de
los números complejos, junto con sus funciones, tienen gran aplicación en el campo de la ingeniería.

Ing. Juan E. Núñez Mc Leod Página 11 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Función Descripción
Crea el número complejo x + i y, donde los argumentos x e y, de
complex(x,y) ser matrices, tienen que tener las mismas dimensiones y ser
números reales.
real(z) Devuelve la parte real del número complejo z.
imag(z) Devuelve la parte imaginaria del número complejo z.
isreal(z) Devuelve verdadero (%t) si el argumento z es un número real, de
lo contrario devuelve falso (%f).
conj(z) Devuelve el complejo conjugado de z

Es importante mencionar que todas las funciones matemáticas mencionadas anteriormente trabajan en el campo
de los números complejos. De esta manera se pueden calcular raíces de índices pares y radicandos negativos,
logaritmos negativos, etc. Por otro lado estas funciones también admiten argumentos complejos. A modo de
ejemplo se pueden ver los siguientes cálculos:

-->sqrt(-4)
ans =
2.i

-->log(-1)
ans =
3.1415927i

-->z=1+%i
z =
1. + i

-->sin(z)
ans =
1.2984576 + 0.6349639i

POLINOMIOS

Declaración

Desde el punto de vista algebraico, un polinomio puede ser expresado ya sea a través de sus coeficientes o a
través de sus raíces, de esta manera un polinomio de tercer grado tiene las dos representaciones que se dan a
continuación:

!" "
+! + ! + !# = !" $ − % &$ − % &$ − %" &7

Siendo ai los coeficientes del polinomio y ri las raíces del mismo. Sea por ejemplo el siguiente polinomio:

($ & = "
− 4 + + 6 = $ + 1&$ − 2&$ − 3&

Para definir este polinomio en Scilab, se puede recurrir a cualquiera de los métodos siguientes:

1- Haciendo uso de los coeficientes se puede escribir la instrucción p=poly([6 1 -4 1],”x”,”coef”)8


Nótese que los coeficientes se escriben como un vector (los valores están encerrados entre corchetes)
comenzando por el coeficiente independiente y avanzando en orden creciente hasta el coeficiente de
tercer orden, se escribe la letra que representará a la variable del polinomio, encerrada entre comillas, y
finalmente la expresión “coef”, indicando que los datos ingresados corresponden a los coeficientes del
polinomio. Una vez presionada la tecla Enter, Scilab responde con la siguiente información, para
comprobar que el resultado concuerde con el polinomio original:

7
Obsérvese que el primer coeficiente corresponde siempre al coeficiente del término de mayor orden, en este caso a3.
8
Se puede utilizar el apóstrofe en lugar de las comillas, en este caso se podría escribir también p=poly([6 1 -4 1],'x','coef')

Ing. Juan E. Núñez Mc Leod Página 12 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

p =
2 3
6 + x - 4x + x

2- Haciendo uso de las raíces se puede escribir la instrucción p=poly([-1 2 3],”x”,”roots”). En


este caso se indica con la expresión “roots” que la información dada en el vector corresponde a las
raíces del polinomio. Scilab responde con el siguiente polinomio:

p =
2 3
6 + x - 4x + x

Como se observa en ambos casos se obtiene el mismo polinomio. De esta manera se pueden declarar todos los
polinomios que sean necesarios, y a cada uno se le asigna un nombre para poder diferenciarlos.

Operaciones con polinomios

Una vez declarados los polinomios, se pueden realizar las operaciones básicas como suma, resta, multiplicación,
división y potenciación.

Sean por ejemplo los polinomios ($ & = "


− 4 + + 6 y )$ & = −2 + − 4, definidos en Scilab mediante
las siguientes instrucciones:

p=poly([6 1 -4 1],”x”,”coef”)
q=poly([-4 1 -2],”x”,”coef”)

En la siguiente tabla se muestran las distintas operaciones matemáticas anteriormente mencionadas y los
resultados devueltos por Scilab:

Operación Resultado
2 3
p+q
2 + 2x - 6x + x
2 3
p-q
10 - 2x + x
2 3 4 5
p*q
- 24 + 2x + 5x - 10x + 9x - 2x
2 3 4
q^2
16 - 8x + 17x - 4x + 4x

Para el caso especial de la división de polinomios, se debe recurrir a una función específica, la cual devuelve dos
valores, el cociente y el resto de la operación. Si lo que se desea hacer es dividir el polinomio p por el polinomio
q, se puede escribir la siguiente instrucción:

[r,c]=pdiv(p,q)

En donde la expresión [r,c] hace referencia a un vector de dos dimensiones, en la primera de las cuales se
obtendrá el resto y en la segunda el cociente de la división. De esta manera Scilab devuelve los siguientes
resultados:

c =
1.75 - 0.5x
r =
13 - 2.75x

Ing. Juan E. Núñez Mc Leod Página 13 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Para verificar que estos resultados son correctos, se puede multiplicar el cociente por el divisor y sumar el resto,
como resultado tiene que dar el dividendo, tal como se observa a continuación:

-->c*q+r
ans =
2 3
6 + x - 4x + x

Evaluación de un polinomio para un valor determinado de la variable

Para obtener el valor de un polinomio, cuando la variable adopta valores específicos, se utiliza la función horner.

Por ejemplo, si se desea obtener el valor del polinomio p anteriormente visto, cuando la variable x toma el valor 5,
se hace uso de la instrucción horner(p,5), la cual devuelve el valor 36.

Derivadas de un polinomio

Supóngase que el polinomio p(x), anteriormente declarado, indica la posición de un móvil respecto de un
9
determinado sistema de referencia , entonces la derivada primera de este polinomio representa la velocidad del
móvil y la derivada segunda representa la aceleración. Para obtener estas expresiones, se hace uso de la función
derivat que permite obtener la derivada de un polinomio, según las siguientes instrucciones:

v=derivat(p)
a=derivat(v)

Scilab devuelve los siguientes resultados:

v =
2
1 - 8x + 3x

a =
- 8 + 6x

Si se desea conocer el valor de la posición, velocidad y aceleración del móvil en el momento inicial y a las 10
unidades de tiempo, se puede escribir lo siguiente:

Dato a calcular Instrucción Resultado


Inicial horner(p,0) 6.
Posición horner(p,10) 616.
Final
Inicial horner(v,0) 1.
Velocidad
Final horner(v,10) 221.
Inicial horner(a,0) -8.
Aceleración
Final horner(a,10) 52.

Otra forma más rápida de hacer lo mismo es recordando que Scilab tiene una base matricial de manejo
matemático, por lo que se puede definir un vector con los dos valores a calcular, de la siguiente manera:

x=[0 10]

Para posteriormente obtener los resultados buscados según la siguiente tabla:

9
En este caso la variable x representa el tiempo.

Ing. Juan E. Núñez Mc Leod Página 14 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Cálculo Instrucción Resultado


Posición inicial y final horner(p,x) 6. 616.
Velocidad inicial y final horner(v,x) 1. 221.
Aceleración inicial y final horner(a,x) -8. 52.

Determinación de las raíces de un polinomio

Dado un polinomio se pueden obtener las raíces del mismo mediante la instrucción roots, como se observa en
los siguientes ejemplos, que se basan en los polinomios p(x) y q(x) vistos anteriormente:

rp=roots(p)
rq=roots(q)

Obteniendo como resultado en cada caso:

rp =
3.
2.
- 1.

rq =
0.25 + 1.3919411i
0.25 - 1.3919411i

Se observa que en este último caso, las dos raíces del polinomio q(x) son complejas conjugadas.

ASIGNACIÓN DE RESULTADOS

Todas las instrucciones de cálculo que se han visto se pueden realizar de dos maneras:

1- Escribiendo solamente el cálculo y presionando la tecla Enter, como se ve a continuación:

sin(%pi/5)
ans =
0.5877853

Se observa que Scilab responde con la información ans = 0.5877853 lo que significa que el resultado
ha sido almacenado en una variable genérica denominada ans, de una manera similar a como lo hacen
las calculadoras científicas modernas. Dicha variable ans puede ser utilizada en el cálculo siguiente.

2- Se puede realizar el mismo cálculo, pero asignando el resultado a una variable especificada por el
usuario, tal como se ve en el siguiente ejemplo:

alfa=sin(%pi/5)
alfa =
0.5877853

A diferencia del primer caso, ahora el resultado queda almacenado en la variable denominada alfa, la
cual va a mantener este valor hasta que el usuario no lo cambie por otro en forma explícita.

Como se explicó con anterioridad, si por algún motivo no se desea ver el resultado, sino simplemente
calcularlo y que quede almacenado en la variable, se debe escribir punto y coma al final de la instrucción,
10
según se observa a continuación :

alfa=sin(%pi/5);

10
Esto es válido para cualquier instrucción que muestre resultados en pantalla.

Ing. Juan E. Núñez Mc Leod Página 15 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Los nombres de las variables son creadas por el usuario, de acuerdo a sus necesidades, sólo se deben recordar
las reglas para nombrarlas, dadas al principio. Por otro lado, es recomendable que el nombre de la variable haga
mención al contenido de la misma. De esta forma es más claro tener variables llamadas temp, presión y
altura que otras llamadas, t, p y a.

PRECAUCIONES AL ESCRIBIR EXPRESIONES MATEMÁTICAS

Siempre se debe recordar que Scilab tiene una estructura matricial, aún cuando se trabaje con números
individuales; en este último caso, ya se mencionó que Scilab los interpreta como matrices de 1 x 1. Olvidar esto
11
puede ocasionar situaciones que, en el peor de los casos, originen resultados erróneos , y en el mejor de los
casos, mensajes de error que confundan al usuario.

Funciones con matrices como argumentos

Cualquier función matemática admite matrices como argumentos, en tales casos Scilab aplica la función
elemento a elemento, devolviendo una matriz de las mismas dimensiones con los distintos valores funcionales.
Así se pueden realizar los siguientes cálculos:

-->x=[2 4 3;1 0 9]
x =
2. 4. 3.
1. 0. 9.

-->sin(x)
ans =
0.9092974 - 0.7568025 0.1411200
0.8414710 0. 0.4121185

-->sqrt(x)
ans =
1.4142136 2. 1.7320508
1. 0. 3.

De esta manera se puede decir que al aplicar una función matemática a una matriz, se obtendrá como resultado
una matriz del mismo tamaño, en la cual cada elemento será igual a la aplicación de la función al elemento
original.

Problemas con los argumentos matriciales

A continuación se verán dos casos de estas situaciones. Aunque el lector debe estar prevenido que estos son
solo ejemplos, y debe recordarlos cada vez que escriba expresiones matemáticas con Scilab, y evaluar si debe
tomar o no precauciones adicionales.

Multiplicación y división

Si se desea evaluar la expresión = * +$ & para x=2, entonces se pueden escribir en Scilab las siguientes
instrucciones:

-->x=2
x =
2.

-->y=x*sin(x)
y =
1.8185949

11
Nunca se debe olvidar que el responsable de los resultados, sobre los que se toman decisiones, es el ingeniero, quien debe verificar que la
computadora está entregando resultados válidos.

Ing. Juan E. Núñez Mc Leod Página 16 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

Siendo este último un resultado correcto (suponiendo que x esté expresado en radianes).

Difícilmente se utilice Scilab para realizar un cálculo de esta naturaleza, ya que seguramente se usaría una
calculadora científica. Un caso más razonable sería tener que armar una tabla de valores para hacer un gráfico.
De esta manera se piensa en generar un vector con una serie de valores de x, y evaluar la expresión anterior,
como Scilab trabaja en forma matricial debería devolver otro vector con todos los resultados.

Para calcular diez valores de la función entre 0 y 2π, se podrían escribir las siguientes instrucciones:

-->x=linspace(0,2*%pi,10)
x =
column 1 to 6
0. 0.6981317 1.3962634 2.0943951 2.7925268 3.4906585

column 7 to 10
4.1887902 4.8869219 5.5850536 6.2831853

-->y=x*sin(x)
!--error 10
Multiplicación inconsistente.

Sorprendentemente, en lugar de obtener los diez resultados esperados, sólo aparece un mensaje de error
indicando que la multiplicación es inconsistente. Esto sucede justamente porque Scilab es un procesador
matemático matricial, por lo que todas la operaciones las interpreta en este contexto.

El operador * es, por lo tanto, representativo del producto matricial, en el cual se debe cumplir la regla de
multiplicación de matrices, tal que si se desea multiplicar una matriz n x m, sólo es posible hacerlo por otra matriz
m x s y el resultado será una matriz n x s. En otras palabras, la cantidad de columnas de la primera matriz debe
ser igual a la cantidad de filas de la segunda.

En el caso visto anteriormente, se ha multiplicado una matriz x de 1 x 10 por otra sin(x), también de 1 x 10. La
primera tiene diez columnas mientras que la segunda tiene una única fila. Claramente la multiplicación es
inconsistente, no se puede realizar.

Si se piensa en qué es lo que se pretende hacer con el cálculo, es claro que no se trata de una operación
matricial, sino de una lista de valores a la cual se debe aplicar la función de manera independiente, esto es lo que
se denomina cálculo elemento a elemento; es decir, tomar el primer elemento de x y multiplicarlo por el primer
elemento de sin(x), luego hacer los mismo con los segundos elementos y así sucesivamente hasta terminar.
12
Para realizar multiplicaciones de matrices, pero elemento a elemento , se utiliza el operador .* (es un punto
seguido inmediatamente del asterisco, sin dejar espacio intermedios). De esta manera, al utilizar este operador el
resultado obtenido es el deseado, el cual se muestra a continuación:

-->y=x.*sin(x)
y =
column 1 to 6
0. 0.4487504 1.375051 1.8137994 0.9551004 - 1.1938755

column 7 to 10
- 3.6275987 - 4.8126786 - 3.5900033 - 1.539D-1513

12
Para que esta multiplicación se pueda realizar las dos matrices deben tener las mismas dimensiones.
13
Este valor debería ser 0 (cero), sin embargo por problemas de precisión numérica, discutidos anteriormente, el valor no es nulo aunque se
trata de un valor muy pequeño.

Ing. Juan E. Núñez Mc Leod Página 17 de 18


Universidad Tecnológica Nacional Asignatura: Fundamentos de Informática
Facultad Regional Mendoza Unidad Temática 3
Ingeniería Química Título: Modo Consola

El mismo problema se tiene con el operador /, utilizado para realizar divisiones matriciales. Si se desea realizar
una división elemento a elemento, se debe utilizar el operador ./ (un punto seguido de la barra, sin espacios
intermedios).

AYUDA

En modo consola se puede solicitar ayuda sobre cualquier función de Scilab, escribiendo help seguido de la
función requerida. Así si se desea leer información sobre la función seno, se debe escribir:

-->help sin

Y se abrirá una nueva ventana denominada Navegador de Ayuda, donde se desplegará la información relativa a
la función.

Ing. Juan E. Núñez Mc Leod Página 18 de 18

S-ar putea să vă placă și