0% encontró este documento útil (0 votos)
600 vistas10 páginas

Formatos Numéricos en Octave

El documento describe los diferentes formatos numéricos disponibles en Octave para mostrar el resultado de cálculos y valores de variables. Se pueden usar format short para notación decimal con 5 cifras significativas, format long para 15 cifras significativas, y format short e y format long e para notación exponencial con diferentes cifras significativas en la mantisa. El formato elegido se mantiene hasta cambiarlo con otra llamada a format. También se explica cómo usar printf para mostrar números con un formato personalizado.

Cargado por

juanarcos_778612
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
600 vistas10 páginas

Formatos Numéricos en Octave

El documento describe los diferentes formatos numéricos disponibles en Octave para mostrar el resultado de cálculos y valores de variables. Se pueden usar format short para notación decimal con 5 cifras significativas, format long para 15 cifras significativas, y format short e y format long e para notación exponencial con diferentes cifras significativas en la mantisa. El formato elegido se mantiene hasta cambiarlo con otra llamada a format. También se explica cómo usar printf para mostrar números con un formato personalizado.

Cargado por

juanarcos_778612
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

FORMATO NUMÉRICO EN OCTAVE

En la consola, al mostrar el resultado de una cuenta o el valor de una variable (ya sea una
variable simple, un vector o una matriz), los números serán impresos en el formato
especificado en Octave. Para determinar ese formato de visualización se utiliza el
comando format. A continuación, se listan las distintas opciones de formato, que se
deben escribir al lado de format para ser escogido. El formato elegido se mantiene hasta
la próxima llamada al comando.

format short: Notación decimal con 5 cifras significativas, usando hasta diez caracteres
para el número. En caso de no alcanzar la cantidad de caracteres para mostrar el número,
se mostrará en notación exponencial.
format long: Notación decimal con 15 cifras significativas, usando hasta veinte caracteres
para el número. En caso de no alcanzar la cantidad de caracteres para mostrar el número,
se mostrará en notación exponencial.
format short e: Notación exponencial con 5 cifras significativas en la mantisa.
format long e: Notación exponencial con 15 cifras significativas en la mantisa.
format short g: Elige el formato más adecuado entre format short y format short e para
informar un número
format long g: Elige el formato más adecuado entre format long y format long e para
informar un número

format puede ser llamada tanto en la consola como en una instrucción en un archivo .m.

Ejemplos de formatos:

>> format short


>> pi
ans = 3.1416
>> 36621617
ans = 36621617
>> 727288432425
ans = 7.2729e+11
>> 3662161723
ans = 3.6622e+09
>> 366216172
ans = 366216172
>> 366216172.3
ans = 3.6622e+08
>> 36621617.3
ans = 3.6622e+07
>> 3662161.3
ans = 3.6622e+06
>> 366216.3
ans = 3.6622e+05
>> 36621.3
ans = 3.6621e+04
>> 3661.3
ans = 3661.3
>> 3661.3
>> format long
>> pi
ans = 3.14159265358979
>> format short e
>> pi
ans = 3.1416e+00
>> format long e
>> pi
ans = 3.14159265358979e+00
>> format short g
>> pi
ans = 3.1416
>> format long g
>> pi
ans = 3.14159265358979
>> 253262447474474
ans = 253262447474474
>> 0.008946496496322233
ans = 0.00894649649632223
>> format short g
>> 0.008946496496322233
ans = 0.0089465
>> 253262447474474
ans = 2.5326e+14

Si se desea informar un número en notación decimal con una cantidad determinada de


decimales o en notación exponencial con una cierta cantidad de decimales en la mantisa,
se debe llamar a la función printf. El prototipo de esta función es:

printf(formato,número);

formato: cadena de caracteres donde se indica notación y cantidad de decimales a


mostrar.
número: es el número que se desea mostrar.

>> printf("%.8f\n",sqrt(2));
1.41421356

%.8f indica mostrar en notación decimal (f) con 8 decimales (el número al lado del punto
indica los decimales). El ‘\n’ simula un enter de teclado.

>> printf("%.8e\n",sqrt(130));
1.14017543e+01

%.8e indica mostrar en notación científica (e) con 8 decimales (el número al lado del
punto indica los decimales de la mantisa). Si se requiere mostrar un número con 6 cifras
significativas en notación científica, se debe escribir como formato “%.5e\n”, ya que serán
5 decimales en la mantisa más el dígito en la parte entera (5+1=6).
GRÁFICOS DE FUNCIONES EN OCTAVE

Existen distintas funciones para realizar gráficos de funciones en el Scilab. Las mas
utilizadas son plot para gráficos bidimensionales y surf para gráficos tridimensionales.
Ambas pueden ser llamadas tanto en consola como en una instrucción en un archivo .sce.

surf(x,y,z,<opciones>)

x: Vector fila de n componentes con los datos del eje x


y: Vector fila de m componentes con los datos del eje y
z: Matriz de nxm con los datos del eje z. z(i,j) es el valor de la superficie en el punto
(x(i),y(j))
<opciones>: Argumento opcional para definir visualización del gráfico (por ejemplo,
rotación de los ejes, nombre de los ejes, color del gráfico, perspectiva, etc.)

plot(x1,y1,<opciones1>,x2,y2,<opciones2>,…,xn,yn,<opcionesn>)

x1,x2,xn: Datos sobre el eje de abscisas para los gráficos 1, 2 y n respectivamente.


Preferentemente deben ser vectores fila o columna.
y1,y2,yn: Datos sobre el eje de ordenadas para los gráficos 1, 2 y n respectivamente. Si xi
es un vector fila, yi preferentemente debe ser un vector fila. Si xi es un vector columna, yi
debería ser también un vector columna. xi e yi deben tener la misma cantidad de
componentes.
<opciones1>,<opciones2>,<opcionesn>: Argumentos opcionales que definen la forma de
dibujar los gráficos 1, 2 y n respectivamente. Son cadenas de caracteres que se separan
en tres secciones, en la que cada una representa una característica distinta del gráfico:

2° sección – Color de linea y 3° sección – Marcador de


1° sección – Tipo de linea
marcadores puntos dato (xi,yi)
Linea
- r Rojo + Signo mas
continua
Linea
-- g Verde o Circulo
discontinua
Linea
: b Azul * Asterisco
puntuada
Linea
-. discontinua c Cian . Punto
(raya y punto)
(sin No dibuja
m Magenta x Cruz
especificar) linea
y Amarillo s Cuadrado
k Negro d Rombo
Triangulo con
w Blanco ^ vértice hacia
arriba
Triangulo con
(sin Color por
v vértice hacia
especificar) defecto
abajo
2° sección – Color de linea y 3° sección – Marcador de
1° sección – Tipo de linea
marcadores puntos dato (xi,yi)
Triangulo con
> vértice hacia
la derecha
Triangulo con
< vértice hacia
la izquierda
Estrella de
p
cinco puntos
(sin No marca
especificar) puntos dato
Si no se especifica ninguna opción, se dibujara una linea continua de un color por defecto,
sin marcar los puntos dato.
Ejemplos de opciones:
‘-g’: Linea continua color verde
‘--mo’: Linea discontinua color magenta marcando los puntos dato con un circulo
‘b+’: Marca los puntos dato con un signo mas color azul, pero no traza la linea.

Los gráficos se abren en una ventana nueva.

Ejemplo: Programa para graficar una paraboloide elípitico (z=x 2+y2)

%Con el simbolo porciento se identifica un comentario


%(esto no se interpreta como instrucción)
%Los comentarios sirven para mostrarle a quien ve el archivo
%que hace cada instrucción
%Creo un vector fila cuyo primer elemento es -10, el último es 10,
%con saltos de 1 y lo guardo en x
x=-10:10;
%El resultado es el vector
%[-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10]
%Creo un vector fila cuyo primer elemento es -10, el último es 10,
%con saltos de 2 y lo guardo en y
y=-10:2:10;
%El resultado es el vector [-10,-8,-6,-4,-2,0,2,4,6,8,10]
%Inicializo una matriz z que debe tener una cantidad de filas igual a la
%cantidad de componentes de x %y una cantidad de columnas igual a la cantidad
%de componentes de y
%Para ello, primero obtengo el tamaño de x e y con length, funcion que
%devuelve el tamaño de un vector fila o vector columna
tamx=length(x);
%tamx será igual a 21 ya que x tiene una fila y 21 columnas
tamy=length(y);
%tamy será igual a 11 ya que y tiene una fila y 11 columnas
%La cantidad de componentes de x se encuentra en tamx
%La cantidad de componentes de y se encuentra en tamy
%Para que surf funcione correctamente, la matriz de los resultados (z) debe
%tener tantas filas como componentes de y, y tantas columnas como
%componentes de x
z=zeros(tamy,tamx);
%z pasa a ser una matriz de 11x21, en la que todos sus componentes son 0.
%z(i,j) debe ser el valor de una función en el punto (x(i),y(i))
for i=1:tamy
for j=1:tamx
z(i,j)=x(j)^2+y(i)^2;
end
end
surf(x,y,z);
clear;
Al guardar el programa en un archivo .m y ejecutarlo, se abre una nueva ventana con el
gráfico.

Para pegar el gráfico a un informe en Word, hacer clic en Edit (Edicción) en la barra de
menú de la ventana del gráfico, y luego clic en Copy (Copiar). Por último, Ctrl+v en el
lugar donde se quiera colocar la imagen.
También se puede guardar el gráfico en un archivo .png, .jpg, etc.. Para ello, hacer clic en
File, luego clic en Save as (Guardar como). Se abrirá otra ventana en la que
especificaremos el nombre del archivo, la extensión (.png, .jpg, .bmp; en algunas
versiones, la extensión debe escribirse en la opción Nombre del fichero) y en que carpeta
se guardará.

Ejemplo: Graficar tres ecuaciones parabólicas en una ventana y tres cubicas en otra
distinta.

x1=-6:6;
x2=(-4:0.1:6)';
%x2 es un vector columna, ya que primero se esta creando un vector fila
%cuyo primer componente es -4 y el ultimo es 6. Al encerrar el paréntesis y
%añadir al final el apostrofe, este vector fila se traspone, convirtiéndose en
%un vector columna. Ese vector columna se guarda en x2
x3=[0,1,2,6,11];
%Función cuadrática 1: y=x^2 (se usan los datos de x1)
yc1=x1.^2;
%Función cuadrática 2: y=-2x^2+3x-4 (se usan los datos de x2)
yc2=-2*x2.^2+3*x2-4;
%Función cuadrática 3: y=x^2-3x (se usan los datos de x3)
yc3=x3.^2-3*x3;
figure;%Fuerza a crear otra ventana para los gráficos a mostrar
%Si no se incluyera, el proximo plot se mostrara en la ultima ventana de
%grafico abierta
plot(x1,yc1,'--b',x2,yc2,'-m',x3,yc3,'-k+');
%Función cúbica 1: y=-x^3+4x^2-7 (se usan los datos de x3)
ycub1=-x3.^3+4*x3.^2-7;
%Función cúbica 2: y=x^3+8x (se usan los datos de x1)
ycub2=x1.^3+8*x1;
figure;
plot(x3,ycub1,'md',x1,ycub2);
clear;
Luego de ejecutar el programa, tendremos dos ventanas de gráficos: una con las
cuadráticas y otra con las cúbicas.

Primera ventana:
 Gráfico azul: Corresponde a x1,yc1. Las características son ‘--b’ que significa
graficar sólo la curva como una línea discontinua (–) de color azul (b).
 Gráfico rojo: Corresponde a x2,yc2. Las características son ‘-m’ que significa
graficar sólo la curva como una línea continua (-) de color magenta (m).
 Gráfico negro: Corresponde a x3,yc3. Las características son ‘-k+’ que significa
graficar una línea continua (-) de color negro (k) marcando los puntos dato con un
signo más (+). Este gráfico nos hace notar que Scilab no dibuja una parábola, sino
que lo que hace es ubicar todos los puntos dato en el espacio cartesiano y, si se
especificó graficar la curva, une dos puntos contiguos con una línea recta (en otras
palabras, realiza una interpolación lineal entre cada punto dato).
Segunda ventana:
 Serie de puntos magentas: Corresponde a x3,ycub1. Las características del gráfico
son ‘md’ que significa que solamente se marcarán los puntos datos (debido a que
no se especificó la primear sección del string) con rombos (d) de color magenta
(m).
 Gráfico azul: Corresponde a x1,ycub2. Nótese que no se especificó ninguna
característica de ploteo (no se escribió el string que determine la forma de
dibujarlo), por lo que toma valores por defecto (línea continua de color azul y sin
marcar puntos).

El primer llamado al comando figure se utilizó para graficar las parábolas en una ventana
distinta que podamos tener abierta de otra ejecución. El segundo figure sí es obligatorio
para este programa, ya que de no haberlo puesto, las cúbicas se habrían dibujado en la
misma ventana que las cuadráticas, cuando el ejercicio pedía que estuvieran en ventanas
separadas.

En Octave es posible realizar gráficos estadísticos. Los más comunes son el gráfico de
barras y el de torta o circular.
Para realizar un gráfico de barras se utiliza la función bar, cuyo prototipo es:

bar(x,y);

x: vector fila con los datos del eje de abscisas.


y: vector fila con los datos del eje de ordenadas, en caso de corresponder una barra para
cada dato de abscisas, o matriz con los datos del eje de ordenadas, en la que los mismos
se clasifican por algún criterio.
Por ejemplo, para mostrar en un gráfico de barras la cantidad de alumnos que obtuvo
cierta nota en un examen, puede ejecutarse el siguiente archivo .m:

%Grafico de barras
notas=1:10;
alumnos=[1,3,0,4,0,8,6,10,9,11];
bar(notas,alumnos);
%Se agrega un titulo al grafico de barras
title('Notas obtenidas');
%Se agrega una etiqueta en el eje de abscisas que corresponde a las notas
xlabel('notas');
%Se agrega una etiqueta en el eje de abscisas que corresponde a
%la cantidad de alumnos
ylabel('alumnos');

Luego de la ejecución, se obtiene el siguiente esquema:

El título “Notas obtenidas” y las etiquetas “notas” y “alumnos” se incorporan para una
mejor comprensión del gráfico. Éstos se generan con las funciones title (para el título),
xlabel (etiqueta del eje de abscisas) e ylabel (etiqueta del eje de ordenadas), que reciben
una cadena de caracteres que corresponderá al título, etiqueta de abscisas y etiqueta de
ordenadas, respectivamente. Estas funciones, en caso de querer utilizarlas, deben ser
llamadas inmediatamente después de bar, plot, surf o pie, según el gráfico que se
desee hacer.

También se podría realizar un esquema de la misma información, pero dividiendo a los


alumnos hombres de las alumnas, graficando por cada nota una barra para alumnos y
otra para alumnas.
%Grafico de barras
notas=1:10;
hombres=[1,1,0,2,0,5,2,6,3,6];
mujeres=[0,2,0,2,0,3,4,4,6,5];
combinar=[hombres(:),mujeres(:)];
%combinar pasa a ser una matriz cuya primer columna posee la cantidad de
%hombres para cada nota, y en la segunda columna la cantidad de mujeres.
%Al escribir hombres(:), el operador : crea un vector columna con todos los
%elementos del vector/matriz hombres
bar(notas,combinar);
%Se agrega un titulo al grafico de barras
title('Notas obtenidas');
%Se agrega una etiqueta en el eje de abscisas que corresponde a las notas
xlabel('notas');
%Se agrega una etiqueta en el eje de abscisas que corresponde a
%la cantidad de alumnos
ylabel('alumnos');
%Se agrega un cartel que indique que color de barras le corresponde a los
%hombres y cual a las mujeres
legend('hombres','mujeres');

El código devuelve el siguiente gráfico:

Puede observarse un cartel adicional indicando que las barras violetas le corresponden a
los hombres y las amarillas a las mujeres. Esto se logra llamando a la función legend
luego de bar, pie, surf o plot (según el gráfico que se haga). Esta función recibe tantas
cadenas de caracteres como barras (para un gráfico de barras) sectores (para un gráfico
de tortas) o funciones 2D/3D que hayan en una ventana de gráfico.

Para realizar un gráfico de torta se utiliza la función pie, cuyo prototipo es:

bar(datos);

datos: vector de datos numéricos.


Se puede utilizar por ejemplo para expresar el porcentaje de votos obtenidos por cada
lista en una elección, como es el caso de este programa:

%Grafico de torta
votos=[320,460,280];
pie(votos);
%Se agrega un cartel que indica que color le corresponde a cada lista
legend('Lista azul','Lista blanca','Lista roja');

Al ejecutarlo, se genera el siguiente esquema:

Con la función legend se aclara que color de la torta le pertenece a cada lista. Cada valor
en porcentaje que aparece en los distintos sectores se calcula dividiendo el dato de dicho
sector (por ejemplo, 320 para la Lista azul, que está representada en el sector violeta) por
la suma de los elementos del vector de datos que se envía a la función pie (en este caso,
es la suma de los componentes del vector votos).

También podría gustarte