Octave Tutorial

29
MATLAB / OCTAVE MANUAL INTRODUCTORIO DE MANEJO DE LA APLICACION JUNIO 2013 DEPARTAMENTO DE MATEMATICAS Versión 1.0   

Transcript of Octave Tutorial

Page 1: Octave Tutorial

MATLAB / OCTAVE

MANUAL INTRODUCTORIO DE MANEJO DE LA APLICACION

JUNIO 2013

DEPARTAMENTO DE MATEMATICAS

Versión 1.0 

  

Page 2: Octave Tutorial

MOTIVACION

El   presente   tutorial   se   escribe   para   facilitar   el   manejo   de   una herramienta   matemática   para   ayuda   en   la   compresión   y   desarrollo   de actividades de la materias del departamento de matemáticas con enfoque a las  áreas  de Ingeniería.  En nuestros  tiempos el  uso de computadoras  y software   nos   ofrece   una   gran   ventaja   sobre   nuestras   generaciones anteriores,  al  permitirnos emplear  herramienta  que permite  visualizar  y hacer cálculos con un gran número de datos en cuestión de segundos, es por eso que este tipo de herramientas los consideramos una parte escencial para la mejor compresión y desarrollo de actividades en el área.

RESUMEN

Este  tutorial  abarca  las partes  más escenciales  comenzando por  la parte gráfica, ya que sabemos es la que más llama la atención al momento de llevar a cabo análisis matemáticos tanto sencillos como complejos. Se hace siempre una referencia y descripción del comando, así como mención de algunos de los parámetros más escenciales de uso y un breve ejemplo del   manejo   del   mismo.   A   pesar   de   que   MATLAB/OCTAVE   están orientados a la programación orientada a objetos, este tutorial no trata en detalle los temas relacionados a la POO. 

Page 3: Octave Tutorial

INTRODUCCION

MATLAB/OCTAVE  son herramientas desarrolladas para el análisis matemático por computadora, la idea de mencionar estos dos programas, es que ambos están extremamente relacionados con su sintáxis, y una gran parte   de   los   comandos   son   válidos   en   ambos.   Además   se   brinda   una introducción   a   una   herramienta   bajo   licencia   (MATLAB)   y   a   otra herramienta bajo los parámetros del Código Abierto con licencia GPL – General Public License – (OCTAVE). De está manera el lector tiene la oportunidad de probar los conocimientos adquiridos en este tutorial, tanto si cuenta con una versión bajo licencia, como si cuenta con una versión amparada  por  el   software   libre.  Los   requerimientos  para  OCTAVE son mínimos , de forma que sistemas con poca memoria puedan llevar a cabo las operaciones de una manera rápida, en el caso de MATLAB, se deberá proceder a contar con la versión correspondiente de JRE­JAVA, para su buen   funcionamiento.   Una   herramienta   de   este   tipo   es   simplemente imprescindible para nuestros días, a la vez si te gusta programar podrás ahondar   en   otros   materiales   acerca   de   la   programación   OO   e   incluso adaptar   programar   para   trabajar   en   modo   conjunto   con MATLAB/OCTAVE. Su espectro de aplicación es amplio, se puede usar tanto  para  ciencias  sociales,   ingeniería  ambiental,  procesos  estadísticos, ingeniería electrónica, administración financiera, y muchas más. El grado de conocimiento por parte del lector sobre programación es mínimo, pero es de gran ayuda el conocer lo básico para su perfecta comprensión. A lo largo   del   tutorial   manejaremos   el   concepto   de   “prompt”,   también usaremos el  concepto de “CLI  – Command Line Interpreter”,  con esto hacemos referencia a la ventana de entrada de comandos, nuestra área de trabajo en la cual estaremos introduciendo todos los comandos de trabajo. Así que cuando mencionemos el CLI o prompt, haz uso de la ventana de comandos   de   tu   computadora.   Puedes   usar   el   sistema   operativo   de   tu preferencia   para   esto   (windows­xp,   MAC,   FreeBSD,   Linux,   etc...),   los ejemplos vistos en este tutorial son llevados a cabo con DEBIAN­Linux. Pero   su   funcionamiento   es   el   mismo   en   cualquier   otro   sistema.   Los ejemplos llevados a cabo, se irán acumulando y conformando en ocasiones un ejemplo más completo,  en ocasiones  cada línea de código que veas deberás escribirla para poder llevar a cabo el siguiente ejemplo.

Page 4: Octave Tutorial

PARTE I

USO DE HERRAMIENTAS GRAFICAS

Graficando mediante definición de puntos sobre el eje del dominio

Lo primero que debemos tener cuando hablamos de gráficar es un plano   cartesiano,   y   una   función   (claro,   si   vamos   a   graficiar   en   dos dimensiones una función real). Así que recuerda que un plano cartesiano se compone de ordenadas y abscisas. 

Hay 2 formas de llevar a cabo una gráfica, la primera que veremos, define el rango de visión. Para esto se fija el rango de las abscisas sobre el cual se graficará la función.

linspace .­Define el rango de valores sobre una variable independiente (eje del dominio), con un inicio y un fin de rango, así como el total de subdivisiones dentro de ese rango. No define un rango continuo, entre más grande sea el total de subdivisiones la definición y detalle de la función será mejor.

Page 5: Octave Tutorial

SINTAXIS:    “  linspace ( inicio, fin, numero_de_subdivisiones)  “

Ejemplo:

$> t = linspace( 0 , 7.854, 200);      % t variable independiente

Esto nos dará un rango de 0 a 7.854, con 200 subdivisiones en medio.Hay dos puntos que debemos observar del ejempo anterior, el uso del 

carácter “ % ” el cual sirve para agregar comentarios, cualquier cosa que escribamos después de él el intérprete no lo tomará en cuenta. El segundo punto es la variable “ t ” , a esta se le asignan nuestros 200 puntos del eje de las abscisas en forma de un vector con 200 elementos. También el uso 

del carácter “ ; ” se usa para denotar el fin de estatuto o línea de comando.

La siguiente parte con la que debemos de contar es una función, es la que dará el valor para la ordena en el plano cartesiano, y asignará un valor a cada valor de los  200  puntos de las abscisas,  es decir tendremos  200 valores de ordenas. Para llevar a cabo esto debemos definir  funciones.

Funciones  .­  Las   funciones   se   definen   asignándoles   un   nombre   y definiendo o construyendo la expresión a asignarle.

SINTAXIS:

“ NombreDeLaFuncion = expresión_Matemática;  ”

Ejemplo:

$> v = 2*cos( t );

Page 6: Octave Tutorial

El uso de operadores artméticos , así como uso de paréntesis, es muy similar a los que usamos en una calculadora convencional. El signo de “ *” lo usamos para representar una multiplicación, y el uso de los paréntesis para asociar o definir un parámetro de entrega a otra función. En este caso se   cuentan   ya   con   funciones   predefinidas,   en   este   caso   la   función trogonométrica  coseno, se representa con la abreviación “  cos  “, y entre paréntesis se les especifíca el argumento que evaluará.

El siguiente paso que debemos llevar a cabo es la graficación de la función   en   el   rango   de  200  puntos   que   ya   hemos   definido.   Para   ello usaremos   el   siguiente   comando.   A   los   valores   del   eje   de   las   abscisas también se les llama dominio, nombre que se usará de ahora en adelante.

plot .­ Se usa para graficar una función en pantalla.

SINTAXIS:“ plot ( dominio , función , opciones ) ”

Las   opciones   son   muy   variadas   dependiendo   del   comando,   de momento usaremos la opción color. Primero veamos la tabla de colores predefinidos y después haremos un ejemplo.

Símbolo Color

y amarillo

m magenta

c cyan

r rojo

g verde

b azul

w blanco

k negro

Page 7: Octave Tutorial

Ejemplo:

$> plot ( t , v, “m”);

Tener una gráfica ayuda a comprender mejor las cosas,  pero si no hemos asignado un título para decir de que es esa gráfica o no describimos que estamos colocando como dominio, o que valor representa la función, no nos es de mucha utilidad tenerla, simplemente sería como un dibujo más para guardar en nuestra carpeta de imagenes.

Así que los siguientes comandos tienen como función etiquetar cada una de las partes que hemos mencionado.

title .­ Se usa para asignar un título a una gráfica.

SINTAXIS:  “ title (' EL TITULO QUE QUEREMOS PONER ')  “

Ejemplo:

$> title( ' FUNCION TRIGONOMETRICA COSENO ' );

Page 8: Octave Tutorial

A continuación, colocaremos las etiquetas para los ejes del dominio y contradominio.

xlabel .­ Sirve para etiquetar el eje del dominio de la gráfica.

SINTAXIS:“ xlabel ( ' AQUI VA LA ETIQUETA DEL DOMINIO ' ) ”

Ejemplo:

$> xlabel( ' EJE DEL TIEMPO ' );

ylabel .­ Sirve para etiquetar el eje del contradominio de la gráfica.

SINTAXIS:“ ylabel ( ' AQUI VA LA ETIQUETA DEL CONTRADOMINIO ' ) ”

Ejemplo:

$> ylabel( ' VALOR DE LA FUNCION  ' );

Page 9: Octave Tutorial

El siguiente punto interesantesobre graficar funciones , es referente a como se pueden cambiar los rangos del dominio y contradominio. Puede ser que lo que hallamos gráficado no muestre lo que queríamos, o que se muestre parte de la gráfica que no deseabamos mostrar. Para eso usamos el siguiente comando:

axis .­ Ajusta el rango de visibilidad de la gráfica.

SINTAXIS:“ axis ( [ x_inicio, x_fin, y_inicio, y_fin ] ) ”

Ejemplo:

$> axis ( [ 3, 6, ­3, 3 ] );

Otra   funcionalidad   especial   es   el   cuadriculado,   en   ocasiones   nos interesan zonas especiales sobre el plano, en vez de tener un fondo blanco sobre el  cual  no podemos distinguir  algun valor  del  eje  del  dominio  o contradominio según lo ocupemos, para esto se usan los cuadriculados, o enrejados, que dan una visibilidad con la que se puede ver más a detalle cierto cortes o puntos de interés de la gŕafica.

Page 10: Octave Tutorial

grid .­ Activa el enrejado (cuadriculado) sobre la gráfica. 

SINTAXIS:

“ grid acción ”

La acción puede ser activado – on, ó                                                               desactivado – off .Ejemplo:

activa enrejado desactiva enrejado

$> grid on $> grid off

Finalmente   podemos   decir   ,   que   ya   tenemos   las   partes   más importantes hechas, pero te has puesto a pensar en algo, ¿ cómo lo vas a grabar?,   es   decir,   ¿   cómo   haces   para   guardar   la   imagen   a   un   archivo directamente y luego poder usarla para una tarea, proyecto o documento?. Es aquí donde usamos una última función básica.

Page 11: Octave Tutorial

print  .­ Se usa para mandar imprimir a impresora ó en su defecto dependiendo del parámetro que se le de, puede ser almacenada en un tipo de archivo gráfico, con el nombre con el que se quiere guardar esa imagen.

Algunos Formatos para guardar archivos imagen 

dxf AutoCAD

png Portable Network Graphics

jpg , jpeg JPEG image

gif GIF image

svg Scalable Vector Graphics

pdf Portable Document Format

pbm PBMplus

corel CorelDraw

ps Postcript

SINTAXIS:“ print ( “ nombreDeArchivo.Extensión ” ) ”

Ejemplo:

$> print ( “imagen.png” );

Nota:  Se puede también escribir junto con el nombre de archivo,  la ruta de directorios donde quiere guardarse la imagen.

Con esto terminamos el primer punto de gráficos mediante definción de un vector de punto, como ha sido el caso de usar el método linspace, que   se   encarga  de  definir   un  vector   de  puntos   sobre   el   cual   podemos graficar una función determinada.

Page 12: Octave Tutorial

Graficando mediante definición de funciones simbólicas 

Existe también manera de no tener que definir primero un rango de dominio para poder llevar a cabo la gráfica de una función, se puede de manera alternativa, definir simbólicamente una función y especificarle el rango para el cual se quiere graficar.

fplot  .­  Se usa para graficar  funciones simbólicas,  es  decir  no hay necesidad de definir un dominio, se usa la variable predefinida “ x ” y se puede graficar una función sobre el rango deseado.

SINTAXIS:

“ fplot ( funcion , rango ) ”Ejemplo:

$> fplot(“ sin(x) / x ” , [ 0 , 2*pi ] , “b” );

Este ejemplo, hace uso de la opción color, además maneja también una de las constantes predefinidas , que representa el valor de 3.1416 – pi .

Si en algún momento es necesario que cierres una gráfica desde el prompt, basta con escribir “close”.

Page 13: Octave Tutorial

Ejemplo: $> close ;

Todas   las   funciones  vistas  para  etiquetas  en el  punto  anterior  son válidas. Es también posible, como se vio anteriormente, definir la función, y después usar fplot para mandar graficar, ejemplo:

$> fx = '2*exp(­x)*sin(x)';$> fplot( fx , [ 0, 8 ] );

Como   se   ha   podido   obsevar   se   hace   uso   de   muchas   funciones matemáticas básicas , por mencionar algunas de ellas y distinguirlas mejor durante este tutorial, se exponen en la siguiente tabla.

Funciones Matemáticas Elementales

acos(x) coseno inverso

asin(x) seno inverso

atan(x) tangente inversa

cos(x) coseno 

sin(x) seno

tan(x) tangente

exp(x) exponencial

log(x) logaritmo natural

log10(x) logaritmo base diez

sqrt(x) raíz cuadrada

round(x) redondeo al numero superior

conj(x) complejo conjugado

abs(x) valor absoluto

sinh(x) seno hiperbólico

Page 14: Octave Tutorial

Podemos también colocar aparte de las etiquetas, texto adicional a nuestra  gráfica,   sólo   tenemos  que  indicar   la  posición,  para  esto  con el mouse si lo movemos sobre la gráfica nos indica el posicionamiento en coordenadas en la parte inferior izquierda de la pantalla.

text.­  Se   usa  para   colocar   texto   en   la   gráfica   en  una   coordenada específica.

SINTAXIS:

“ text ( x , y , ' texto_a_colocar ' )”

Ejemplo:$> text ( 3.4 , 0.5 , 'FUNCION A ' );

Puede   ser   algo   incomodo   andar   buscando   coordenadas   ,   ¿no?, afortunadamente   existe  otro   comando,  que  permite   escribas   el   texto,  y después con el puntero del mouse, selecciones en que área quieres poner el texto y con un click dejas el texto donde quieres.

gtext  .­     Permite   colocar   texto   en   una   gráfica   sin   necesidad   de especificarle las coordenadas de ubicación, śolo se requiere hacer uso del apuntador del mouse y con un click indicar donde se quiere dejar el texto.

Page 15: Octave Tutorial

SINTAXIS:“ gtext ( 'texto que deseas colocar en la gráfica' ) ”

Ejemplo:

$> gtext ( ' Texto opcional ' );

Existen   muchas   funcionalidades   al   graficar,   conforme   vayamos viendo más ejemplos, presentaremos las más posibles (es recomendable visitar las páginas en línea que contienen las librerías de comandos con todas las especificaciones,recuerda que el propósito de este tutorial es darte las herramientas básicas para las tareas de uso común en la universidad).

Finalmente   para   terminar   esta   sección,   presentaremos   un   último ejemplo,   que   muestra   algunas   de   las   bondades   de   estos   programas   de aplicación para hacer trazos o figuras llamativas, que pueden usarse para otros casos.

Page 16: Octave Tutorial

$> t = (1/8:2/8:15/8)'*pi;  %vector columna$> x = sin(t);$> y = cos(t);$> fill( x , y , 'r' ) % círculo relleno de rojo de 8 puntos$> axis('square')$> text(­.11 , 0, 'ALTO')$> title( ' LETRERO DE ALTO ' )

Como se puede observar , con el comando axis  , se hace uso de la propiedad “ square ”. La cual se encarga de dar la misma dimensión en el eje de las ordenas y las abcisas, de forma que quede como un cuadrado.

El siguiente comando es  fill  , este se encarga de rellenar una figura cerrada o polígono con un color en especial, en este caso rojo.

Nos   falta   por   cubrir   un   tema   más   de   graficación   ,   que   es   la graficación   de   datos   a   partir   de   un   archivo,   y   observar   los   tipos   de interpolación respectiva para emplearse. Pero antes de continuar, veremos otros tipos de gráficas que pueden hacerse,  tanto en dominio complejo, como en 3 dimensiones, y otros gráficos especiales, así como opciones de comando más empleadas (al menos de las que uso a diario en los proyectos o trabajos que hago).

Page 17: Octave Tutorial

GRAFICOS DE FUNCIONES VECTORIALES Y GRAFICACIÓN 3D

El graficar funciones complejas, es también un aspecto importante en algunos casos, la representación polar, se encuentra ya implementada y nos permite graficar funciones de una manera rápida.

polar .­ Grafica en coordenadas polares, estás se crean usando el comando polar( t , r , S ) , donde:t: Es el ángulo vector en radianes,r: Es el vector en radianes, y S: Es un carácter opcional que describe el color de la gráfica.

Ejemplo:

$> t = 0:0.01:2*pi;$> r = sin( 2 * t ).*cos( 2 * t );$> polar( t , r )$> title( ' GRAFICA POLAR DE sen(2t)cos(2t) ' )

Algo a observar en este ejemplo, es el uso del punto ( '  .  ' ), este se 

usa  en multiplicaciones entre  vectores,  hay que recordar  que ”t” es  un vector y por lo tanto las funciones “sen(2t)” y “cos(2t)” son vectores.

Page 18: Octave Tutorial

Otra   forma de  graficar  datos  de  números  complejos  es  usando  la función “compass”, este dibuja un vector, recordemos que un vector tiene un magnitud y un ángulo, justo lo que denota un punto complejo, es decir se descompone según el número de ejes(Ej.: Dos componetes en R2).

En el siguiente ejemplo se hace uso de la función “eig” y la función “randn” , eig regresa eigenvalores asociados a una matriz, en un vector. La función randn se encarga sólo de generar esos valores de manera aleatoria, en este caso una matriz cuadrada de 20x20.

Ejemplo:

$> z = eig( randn ( 20 , 20 ) );$> compass( z );$> title(  ' GRAFICA DE EIGENVALORES DE UN MATRIZ ALEATORIA ');

Ahora podemos pasar a hacer un ejemplo en 3­D y observar algunos comandos nuevos para este tipo de gráficos. Aprovecharé y cambiaré mi prompt conforme lo usa mi máquina para pasar los ejemplos tal cual se están haciendo en la computadora.

Page 19: Octave Tutorial

Ejemplo:

octave:38> x = ­7.5:0.5:7.5;octave:39> y=x;octave:40> [X,Y]=meshgrid(x,y);octave:41> R=sqrt(X.^2+Y.^2)+eps;octave:42> Z=sin(R)./R;octave:43> mesh(peaks);octave:44> title('GRAFICA DE LOS PICOS DE UNA FUNCION');

Algunos puntos a observar aquí son:

meshgrid.­ Crea una matriz X cuyos renglones son copias de un vector x, y una matriz Y cuyas columnas son copias del vector y.

mesh.­ Grafica en 3­D.

eps.­  Denota el más pequeño número cuando añade un 1 para crear un numero de punto flotante más grande que 1 en la computadora. 

peaks.­Los puntos más altos o valores cresta de una función.

Page 20: Octave Tutorial

Aquí  se han observado varios comandos, sin embargo una manera sencilla de llevar esto a cabo es con el comando plot3( ) .

Este comando permite unir puntos en 3 dimensiones mediante una línea, por ejemplo suponga que se quiere dibujar una T en 3 dimensiones.

Primero debemos fijar un punto fijo en x, supongamos que para todas las combinaciones de punto en (y,z)   sea x=0. Tomemos  y  como el eje horizontal y z como el eje vertical. Empezando con y=8 y z=1 en sentido de las manecillas del reloj, tenemos los siguientes arreglos:

y = [ 8   8   4    4  16   16  12  12  8 ]

z = [ 1  10  10  13  13  10  10   1   1 ] 

Como x mantiene su valor fijo, x = [ 0   0   0    0    0    0    0    0    0 ]

Si se ve como un arreglo matricial,   las columnas identifican cada vértice de la letra T. Observe que el primer punto se repite al inico y al final, esto debido a que el comando plot3() debe recorrer cada arista para 

Page 21: Octave Tutorial

poderla graficar, sino lo hiciera la base de la letra T no tendría línea de unión para los vértices de la base de la letra.

Vértices por columna de la letra Ty 8 8 4 4 16 16 12 12 8

z 1 10 10 13 13 10 10 1 1

x 9 0 0 0 0 0 0 0 0

Para llevar a cabo esto en Octave haría lo siguiente:

octave:38> x = [ 0 0 0 0 0 0 0 0 0];octave:39> y = [ 8 8 4 4 16 16 12 12 8 ];octave:40> z = [ 1 10 10 13 13 10 10 1 1 ];octave:41> plot3(x,y,z);octave:42> grid on;octave:44> title('GRAFICA DE LA LETRA T');

Para darle profundidad a la letra, debería de hacer lo mismo con otra capa sobrepuesta de la letra T y unida con aristas entre cada vértice, puede 

Page 22: Octave Tutorial

hacerlo usando la función hold, o si lo prefiere haga un recorrido viendo cada vértice como nodo en un grafo, pero recuerde que debe pasar por cada arista   hasta   completar   todo   el   recorrido   llegando  nuevamente   al   punto inicial.

octave:38> x = [ 0 0 0 0 0 0 0 0 0 ­4 ­4 ];octave:39> y = [ 8 8 4 4 16 16 12 12 8 8 4 ];octave:40> z = [ 1 10 10 13 13 10 10 1 1 10 10  ];octave:41> plot3(x,y,z);octave:42> grid on;octave:44> title('GRAFICA DE LA LETRA T');

Para graficar las aristas restantes de la otra cara, se haría lo siguiente:

octave:38> x = [ 0   0   0   0   0   0   0   0   0  ­4  ­4   0  ­4  ­4   0  ­4 ­4   0  ­4  ­4   0  ­4  ­4   0  ­4  ­4  0  ­4  ­4   0  ­4  ­4];octave:39> y = [ 8    8    4    4   16   16   12   12    8    8    8    8    8 4    4    4    4    4    4   16   16  16   16   16   16   12   12   12   12   12  12    8];octave:40> z = [ 1   10   10   13   13   10   10    1    1    1   10   10   10  10   10   10   13   13   13   13   13  13   10   10   10   10   10   10    1  1    1    1 ];octave:41> plot3(x,y,z);octave:42> grid on;octave:44> title('GRAFICA DE LA LETRA T');

Page 23: Octave Tutorial

De esta forma, puede proceder a graficar objetos en 3D uniendo los vértices de la figura que desee dibujar.

Otra manera es ver las funciones en términos de las otras variables, es decir si tiene la ecuación del plano siguiente:

                     3x  + 2y ­z = 15

Lo primero que se debe hacer es dejar z en función de sus variables. Es decir una función z(x,y).

z = 3x + 2y ­15

Teniendo esto,  sólo necesita definir  el  entrerrejado para dibujar  la función.

Page 24: Octave Tutorial

octave:38> x = y = ­10:0.2:10;octave:39> [ X , Y ] = meshgrid(x,y);octave:40> % finalmente la ecuación del planooctave:41> Z = 3.*X + 2.*Y ­15;octave:42> mesh(X,Y,Z);octave:44> title('GRAFICA DEL PLANO');

Para graficar cualquier otra función es el mismo procedimiento.

Page 25: Octave Tutorial

PARTE II

VECTORES Y MATRICES

DEFINIENDO VECTORES Y SUS OPERACIONES

Cuando hablamos de vectores,  pensamos en un segmento de recta definido por 2 puntos, es decir un segmento de recta con magnitud y una dirección. En la parte I se vio como graficar un vector por medio de la función   compass,   en   esta   parte   veremos   como   definirlo   mediante   un arreglo y además como realizar las operaciones básicas con vectores.

Para definir un vector, puede hacerlo de la siguiente manera:

  u = [ 3 4 8]

Este vector tiene valor en la componente i de 3, en j de 4 y en k de 8.                                  ū = 3i + 4j + 8k

Las operaciones más básicas son suma y resta, si tiene otro vector por ejemplo:      ē =  ­2i + 7j  ­ 3k

Se puede proceder ha hacer la suma y resta de la siguiente forma:

SUMA Y RESTA DE VECTORESoctave:38> u = [ 3  4  8];octave:39> e = [ ­2  7  ­3]octave:40> s = u + eoctave:41> s = 1  11  5octave:42> r = u – eoctave:44> r = 5  ­3  11

Page 26: Octave Tutorial

Los   vectores   también   tienen   longitud,   además   de   poder   realizar operaciones   como   producto   punto   y   producto   cruz   con   los   siguientes comandos:

LONGITUD DE UN VECTOR, PRODUCTO PUNTO Y CRUZ

octave:38> u = [ 3  4  8];octave:39> norm(u)octave:40> ans = 9.4340octave:41> dot(u,e)octave:42> ans = ­2octave:44> cross(u,e)octave:45> ans = ­68  ­7  29

MATRICES Y SUS OPERACIONES

Cuando hablamos de matrices, pensamos en arreglos de vectores con la misma cantidad de elementos. Su orden sabemos que está definido por su número de renglones y su número de columnas. Si por ejemplo quiere definir una matriz con varios renglones el separador para saltar renglón es el punto y coma ' ; '. 

Las  operaciones  de   suma y   resta   son  similares,   sólo  que   se  debe cumplir con la condición que las matrices sean del mismo orden para llevar a cabo estas operaciones básicas.

Vea como se definen las siguientes 2 matrices:

Page 27: Octave Tutorial

DEFINICIÓN DE MATRICESoctave:100> A = [1  2  3 ; 5  7  8; 2  3  ­1]A =

   1   2   3   5   7   8   2   3  ­1

octave:101> B = [ 1 3 ­1 ; 4 6 0 ;1 ­2  1]B =

   1   3  ­1   4   6   0   1  ­2   1

octave:102>

SUMA Y RESTA DE MATRICESoctave:105> A+Bans =

    2    5    2    9   13    8    3    1    0

octave:106> A ­Bans =

   0  ­1   4   1   1   8   1   5  ­2

octave:107>

Page 28: Octave Tutorial

Otra operación importante es la multiplicación. Recuerde que para poder realizar está operación el número de renglones de la primer matriz debe ser igual al número de renglones de la segunda matriz. En el caso de las   matrices   anteriores   que   son   de   orden   3x3   la   multiplicación   puede llevarse a cabo. Vea el siguiente ejemplo:

MULTIPLICACIÓN DE MATRICESoctave:107> A*Bans =

   12    9    2   41   41    3   13   26   ­3

octave:108> 

Octave cuenta con una herramienta que le permite obtener ciertos renglones   o   columnas   en   rango,   o   simplemente   llamar   a   un   elemento determinado. Por ejemplo observe las siguientes funcionalidades:

SELECCIÓN DE ELEMENTOS DE UNA MATRIZoctave:108> AA =

   1   2   3   5   7   8   2   3  ­1

octave:109> % Obtener el elemento de segundo renglon, tercer columna, el 8octave:109> A(2,3)ans =  8octave:110> %Obtener el renglón 3 [2  3  ­1]

Page 29: Octave Tutorial

octave:110> A(3,:)ans =

   2   3  ­1

octave:111> %Obtener columna 1 [1  5  2]octave:111> A(:,1)ans =

   1   5   2

octave:112>

Como puede observar el comando  ':'  se emplea como un comodín, significa todo. Por ejemplo en la obtención de columna, se le dice obten todos los renglones de la columna 1, empleando el comando A(:,1) .