Manual de iniciación a GNU Octave

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Manual de iniciación a GNU Octave"

Transcripción

1 Manual de iniciación a GNU Octave Autor: José María Valiente Cifuentes Trabajo realizado dentro de un Proyecto Fin de Carrera dirigido por Carlos Medrano Sánchez en la E.U. Politécnica de Teruel Año 2006

2 Licencia Copyright (c) 2006 José María Valiente Cifuentes Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License", at the end of the document.

3 Manual De GNU Octave Pág -1-

4 1. Operaciones Básicas 1.1. Operaciones con matrices y vectores Introducción de matrices desde el teclado Operaciones con matrices Tipos de datos Números reales de doble precisión Números Complejos Cadenas de caracteres Otras formas de definir matrices Tipos de matrices predefinidos Formación de una matriz a partir de otras Direccionamiento de vectores y matrices a partir de vectores Operador <<Dos Puntos>> (:) Definición de matrices y vectores desde fichero Operadores Relacionales Operadores Lógicos 1.2. Funciones de Librería Características Generales de las funciones de librería Funciones matemáticas elementales que operan de modo escalar Funciones que actúan sobre matrices Funciones elementales Funciones Especiales Funciones de Factorización y/o Descomposición Matricial 1.3. Más sobre operadores relacionales con vectores y matrices 1.4. Otras funciones que actúan sobre vectores y matrices 2. Otros tipos de datos de GNU Octave 2.1. Cadenas de caracteres 2.2 Hipermatrices (arrays de más de dos dimensiones) Definición de Hipermatrices Pág -2-

5 2.3 Estructuras Creación de Estructuras Funciones para operar con Estructuras 2.4 Vectores o matrices de celdas (Cell Array) Creación de vectores y matrices de Celdas Funciones para trabajar con vectores y matrices de celda 3. Programación en GNU Octave 3.1. Bifurcaciones y bucles Sentencia IF Sentencia SWITCH Sentencia FOR Sentencia DO-UNTIL Sentencia WHILE Sentencia BREAK y CONTINUE 3.2 Ficheros *.m Ficheros de Comandos (SCRIPTS) Definición de Funciones HELP para las funciones de usuario 4. Gráficos bidimensionales 4.1 Funciones gráficas 2D elementales Función PLOT Estilos de Línea y Marcadores para PLOT Añadir Líneas a un gráfico ya existente Comando SUBPLOT Control de los Ejes 4.2 Control de ventanas gráficas: Función Figure 4.3 Otras funciones gráficas 2-D 5. Gráficos tridimensionales 5.1 Tipos de funciones gráficas tridimensionales Dibujo de líneas: Función PLOT Dibujo de mallados: Funciones MESHGRID, MESH Y SURF Dibujo de líneas de contorno: Función CONTOUR 5.2. Elementos Generales: Ejes, Puntos de vista, líneas ocultas, Pág -3-

6 6. Otros aspectos de GNU Octave 6.1 Guardar variables y estados de una sesión: Comandos save y load 6.2 Guardar sesión: Comando diary 6.3 Medida de tiempos y de esfuerzo de cálculo 6.4. Funciones de función Integración numérica de funciones Integración Numérica de Ecuaciones Diferenciales Ordinarias Pág -4-

7 1. Operaciones Básicas 1.1. Operaciones con matrices y vectores Como se comentó en la introducción que hemos visto en el punto anterior, GNU Octave es un programa creado para trabajar con matrices, por lo tanto, este punto es probablemente el más importante y en el que mejor tenemos que aclararnos para empezar a trabajar. Tenemos muchas opciones para trabajar con ellas, podemos intercambiar matrices, permutarlas, invertirlas; GNU Octave es una herramienta de cálculo muy potente en lo que a matrices se refiere Introducción de matrices desde el teclado Las matrices y vectores son variables del programa cuyos nombres podemos definir, siempre y cuando no utilicemos los caracteres que el programa tiene como caracteres prohibidos. Para definir una matriz en GNU Octave se determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Tomemos como ejemplo: octave:31> a=[1 1; 2 5] Cuya salida será: a = A partir de este momento la matriz a está disponible para hacer cualquier tipo de operación con ella (además de valores numéricos, en la definición de una matriz o vector se pueden utilizar expresiones y funciones matemáticas). Por ejemplo, una Pág -5-

8 sencilla operación con a es hallar su matriz traspuesta. En GNU Octave, el apóstrofo (') es el símbolo de trasposición matricial. Para calcular a (traspuesta de a) basta teclear lo siguiente (se añade a continuación la respuesta del programa): octave:32> a ans = Como el resultado de la operación no ha sido asignado a ninguna otra matriz, GNU Octave utiliza un nombre de variable por defecto (ans, de answer), que contiene el resultado de la última operación. La variable ans puede ser utilizada como operando en la siguiente expresión que se introduzca. También podría haberse asignado el resultado a otra matriz llamada b. Ahora vamos a definir una matriz b diferente para hacer operaciones básicas con estas 2 matrices: octave:32> b=[7 6; 8 3] b = Comenzamos con las operaciones más básicas que podemos encontrar, la suma y la resta de matrices: octave:33> a + b ans = octave:34> a -b ans = Si realizamos la multiplicación de matrices con el operando * tendremos que tener cuidado con que el número de columnas de la primera matriz debe coincidir con el número de filas de la segunda: Pág -6-

9 octave:35> a * b ans = Manual de Iniciación a GNU Octave También podemos utilizar una multiplicación elemento a elemento, que aunque no tiene demasiado sentido como multiplicación de matrices, si que es muy utilizable en el caso de que la matriz no sea más que un conjunto ordenado de valores. octave:36> a.* b ans = A continuación vamos a definir una nueva matriz a a partir de una función que genera valores aleatorios entre 0 y 1. octave:4> a=rand(3); #generar una matriz aleatoria de 3x3 octave:5> a a = Vamos ahora a crear una matriz 3x3 para realizar nuevos cálculos a partir de una matriz más manejable si queremos comprobar a mano los datos que creamos. octave:6> a=[1 2 1;1 2 3; ] a = A partir de esta matriz a calculamos su inversa con el comando inv(a): octave:7> b=inv(a) b = Pág -7-

10 Podemos comprobar multiplicando una por la otra que el cálculo es correcto: octave:9> c=a*b c = Si los valores no son exactos podemos utilizar el comando round() ya que debido a los errores de aproximación en los cálculos podemos encontrar valores como 2.3e-109 que representa un valor extremadamente pequeño. Si queremos comentar las líneas de código que ejecutamos, a continuación de la operación podemos poner un comentario anteponiendo el carácter # o % octave:10> c=a*b #podemos ver que la matriz c es la matriz identidad De igual manera que se define una matriz podemos definir un vector: octave:49> b=[2 0 0] b = octave:50> b=[2 0 0] b = Como podemos observar, podemos definir vectores fila y vectores columna, con sólo hacer la traspuesta del vector en la definición. También podemos definir un vector columna como si hicieramos una matriz de 1xn octave:46> b=[1;0]; Como podemos ver, no hemos obtenido resultado tras realizar la operación; esto es debido a que hemos puesto un ; al final de la línea de comando, esto hace que no salga por pantalla lo que hemos ejecutado, cosa que resulta muy útil cuando las Pág -8-

11 matrices/vectores son de un número muy grande (100, 1000, ) y por lo tanto, difíciles de manejar visualmente. En GNU Octave se accede a los elementos de un vector poniendo el índice entre paréntesis (por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden poniendo los dos índices entre paréntesis, separados por una coma (por ejemplo A(1,2) ó A(i,j)). Las matrices se almacenan por columnas (aunque se introduzcan por filas, como se ha dicho antes), y teniendo en cuenta esto puede accederse a cualquier elemento de una matriz con un sólo subíndice. Por ejemplo, si A es una matriz (3x3) se obtiene el mismo valor escribiendo A(1,2) que escribiendo A(4). Pág -9-

12 Operaciones con matrices GNU Octave puede operar con matrices por medio de operadores y por medio de funciones. Se han visto ya los operadores suma (+), producto (*) y traspuesta ('), así como la función invertir inv( ). Los operadores matriciales de GNU OCTAVE son los siguientes: + adición o suma sustracción o resta * multiplicación ' traspuesta ^ potenciación \ división-izquierda / división-derecha.* producto elemento a elemento./ y.\ división elemento a elemento.^ elevar a una potencia elemento a elemento Estos operadores se aplican también a las variables o valores escalares, aunque con algunas diferencias. Todos estos operadores son coherentes con las correspondientes operaciones matriciales: no se puede por ejemplo sumar matrices que no sean del mismo tamaño. Si los operadores no se usan de modo correcto se obtiene un mensaje de error. Veamos un ejemplo del uso del divisor: octave:45> #vamos a resolver un sistema de ecuaciones octave:45> #x+y=1 octave:45> #2x+5y=0 octave:45> a=[1 1;2 5]; octave:46> b=[1;0]; octave:47> x=inv(a)*b x = Pág -10-

13 octave:48> #por tanto x= e y= octave:48> a\b ans = Véase el siguiente ejemplo de tres ecuaciones formadas por una recta que no pasa por el origen y los dos ejes de coordenadas: octave:49> A=[1 2; 1 0; 0 1], b=[2 0 0]' A = b = octave:50> x=a\b, resto=a*x-b x = resto = Pág -11-

14 Vamos a ver como funcionan una serie de operadores: octave:37> a/b octave:38> a\b ans = Si los operadores «/» y «\» van precedidos de un. La operación se realiza elemento a elemento: octave:39> a./b ans = octave:40> a.\b ans = Podemos comprobar que premultiplicar con «/» es lo mismo que postmultiplicar con «\». octave:41> b./a ans = Pág -12-

15 Tipos de datos GNU Octave trabaja siempre con el tipo Real de doble precisión, sobre el que se implementan el resto de tipos, avanzados o no. Este tipo de dato se guarda con un tamaño de 8 bytes, que tiene un tamaño de 15 cifras exactas. Además del tipo Real, podremos trabajar con strings, matrices, hipermatrices y estructuras más avanzadas Números reales de doble precisión Los elementos constitutivos de vectores y matrices son números reales almacenados en 8 bytes (53 bits para la mantisa y 11 para el exponente de 2; entre 15 y 16 cifras decimales equivalentes). Es importante saber cómo trabaja GNU Octave con estos números y los casos especiales que presentan. GNU Octave mantiene una forma especial para los números muy grandes (más grandes que los que es capaz de representar), que son considerados como infinito. Por ejemplo, obsérvese cómo responde el programa al ejecutar el siguiente comando: octave:52> 1/0 warning: division by zero ans = Inf Así pues, para GNU Octave el infinito se representa como inf ó Inf. GNU Octave tiene también una representación especial para los resultados que no están definidos como números. Por ejemplo, ejecútense los siguientes comandos y obsérvense las respuestas obtenidas: octave:51> 0/0 warning: division by zero ans = NaN La respuesta es NaN, que es la abreviatura de Not a Number. Este tipo de respuesta, así como la de Inf, son enormemente importantes en GNU Octave, pues permiten controlar la fiabilidad de los resultados de los cálculos matriciales. Los NaN se propagan al realizar con ellos cualquier operación aritmética, por ejemplo, cualquier Pág -13-

16 número sumado a un NaN da otro NaN. GNU Octave tiene esto en cuenta. Algo parecido sucede con los Inf. Podemos encontrar 3 variables predefinidas por GNU Octave que nos dan los valores máximos y mínimos de este tipo de datos: eps devuelve la diferencia entre 1.0 y el número de coma flotante inmediatamente superior. Da una idea de la precisión o número de cifras almacenadas. En un computador, eps vale e-016. realmin devuelve el número más pequeño con que se puede trabajar (2.2251e-308) realmax devuelve el número más grande con que se puede trabajar (1.7977e+308) Números complejos (complex) Muchas veces nos vamos a encontrar que el cálculo que necesitamos ejecutar nos lleva a tener que definir el cuerpo de los números complejos, dado que el cuerpo de los números reales no es suficiente, por ejemplo, para realizar transformadas de Fourier o Laplace. Para ello se define la variable compleja i o j: octave:61> i i = 0 + 1i octave:62> j j = 0 + 1i octave:63> I I = 0 + 1i octave:64> 2J J = 0 + 2i Como podemos ver, se pueden definir tanto en mayúscula como en minúscula, y que no es necesario el uso del operador * para multiplicarlo por un escalar. Debemos tener la precaución de no redefinir la variable i o j, ya que nos podría llevar a equívocos. octave:63> i=2 i = 2 Podemos definir a su vez un número complejo con la función complex: octave:77> complex(7,6) ans = 7 + 6i Es importante advertir que el operador de matriz transpuesta ( ), aplicado a matrices complejas, produce la matriz transpuesta conjugada. Existe una función que Pág -14-

17 permite hallar simplemente la matriz conjugada (conj()) y el operador punto y apóstrofo (. ) que calcula simplemente la matriz transpuesta. octave:78> conj(a) ans = 1-1i Esta función conj() puede ser empleada con escalares debido a que podemos entender dicho escalar como una matriz de 1x Cadenas de caracteres Para crear una cadena de caracteres (string) en GNU Octave podemos hacerlo de estos dos modos: octave:79> s='cadena de caracteres' s = cadena de caracteres octave:80> s="cadena de caracteres" s = cadena de caracteres Debido a que para su uso es necesario un conocimiento previo de las funciones orientadas a matrices, postpondré otras explicaciones hasta que se hayan explicado éstas, al igual que con los strings, se postpone la explicación de hipermatrices, structs y cell arrays. Ya han aparecido algunos ejemplos de variables y expresiones matriciales. Ahora se va a tratar de generalizar un poco lo visto hasta ahora. Una variable es un nombre que se da a una entidad numérica, que puede ser una matriz, un vector o un escalar. El valor de esa variable, e incluso el tipo de entidad numérica que representa, puede cambiar a lo largo de una sesión de GNU OCTAVE o a lo largo de la ejecución de un programa. La forma más normal de cambiar el valor de una variable es colocándola a la izquierda del operador de asignación (=). Una expresión de GNU OCTAVE puede tener las dos formas siguientes: primero, asignando su resultado a una variable, variable = expresión y segundo evaluando simplemente el resultado del siguiente modo, expresión en cuyo caso el resultado se asigna automáticamente a una variable interna de GNU OCTAVE llamada ans (de answer) que almacena el último resultado obtenido. Se considera por defecto que una expresión termina cuando se pulsa intro. Si se desea que una expresión continúe en la línea siguiente, hay que introducir tres puntos (...) antes de Pág -15-

18 pulsar intro. También se pueden incluir varias expresiones en una misma línea separándolas por comas (,) o puntos y comas (;). Si una expresión termina en punto y coma (;) su resultado se calcula, pero no se escribe en pantalla. Esta posibilidad es muy interesante, tanto para evitar la escritura de resultados intermedios, como para evitar la impresión de grandes cantidades de números cuando se trabaja con matrices de gran tamaño. A semejanza de C, GNU OCTAVE distingue entre mayúsculas y minúsculas en los nombres de variables. A diferencia del lenguaje C, no hace falta declarar las variables que se vayan a utilizar. Esto hace que se deba tener especial cuidado con no utilizar nombres erróneos en las variables, porque no se recibirá ningún aviso del ordenador. Cuando se quiere tener una relación de las variables que se han utilizado en una sesión de trabajo se puede utilizar el comando who. Existe otro comando llamado whos que proporciona además información sobre el tamaño, la cantidad de memoria ocupada y el carácter real o complejo de cada variable. El comando clear tiene varias formas posibles: clear sin argumentos, clear elimina todas las variables creadas previamente (excepto las variables globales). clear A, b borra las variables indicadas. clear global borra las variables globales Otras formas de definir matrices GNU OCTAVE dispone de varias formas de definir matrices. El introducirlas por teclado sólo es práctico en casos de pequeño tamaño y cuando no hay que repetir esa operación muchas veces. Recuérdese que en GNU OCTAVE no hace falta definir el tamaño de una matriz. Las matrices toman tamaño al ser definidas y este tamaño puede ser modificado por el usuario mediante adición y/o borrado de filas y columnas. A continuación se van a ver otras formas más potentes y generales de definir y/o modificar matrices. Pág -16-

19 Tipos de matrices predefinidos Existen en GNU OCTAVE varias funciones orientadas a definir con gran facilidad matrices de tipos particulares. Algunas de estas funciones son las siguientes: eye(2) forma la matriz unidad de tamaño (2x2) octave:84> eye(2) ans = zeros(3,5) forma una matriz de ceros de tamaño (3x5) octave:83> zeros(3,5) ans = zeros(2) ídem de tamaño (2x2) octave:85> zeros(2) ans = ones(3) forma una matriz de unos de tamaño (3x3) ones(3,4) idem de tamaño (3x4) octave:87> ones(3,4) ans = linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2 octave:88> linspace(1,10,9) ans = Pág -17-

20 Columns 1 through 8: Column 9: octave:89> #semejante a la definicion 1:1.125:10 logspace(d1,d2,n) genera un vector con n valores espaciados logarítmicamente entre 10^d1 y 10^d2. rand(3) forma una matriz de números aleatorios entre 0 y 1, con distribución uniforme, de tamaño (3x3) rand(2,5) idem de tamaño (2x5) randn(4) forma una matriz de números aleatorios de tamaño (4x4), con distribución normal, de valor medio 0 y varianza 1. magic(3) crea una matriz (3x3) con los números 1, 2,... 3*3, con la propiedad de que todas las filas y columnas suman lo mismo. octave:92> magic(3) ans = compan(pol) construye una matriz cuyo polinomio característico tiene como coeficientes los elementos del vector pol (ordenados de mayor grado a menor). octave:100> compan([1 2 1]) ans = Hay más tipos predefinidos de matrices, podemos encontrar en la ayuda todos estos tipos y otros muchos más con solo hacer help i matrix. Pág -18-

21 Formación de una matriz a partir de otras GNU Octave ofrece también la posibilidad de crear una matriz a partir de matrices previas ya definidas, por varios posibles caminos: recibiendo alguna de sus propiedades (como por ejemplo el tamaño), por composición de varias submatrices más pequeñas, modificándola de alguna forma. A continuación se describen algunas de las funciones que crean una nueva matriz a partir de otra o de otras, comenzando por dos funciones auxiliares: [m,n]=size(a) devuelve el número de filas y de columnas de la matriz A. Si la matriz es cuadrada basta recoger el primer valor de retorno octave:103> a=[1 2 1;3 2 5;6 7 5]; octave:104> [m,n]=size(a) m = 3 n = 3 n=length(x) calcula el número de elementos de un vector x octave:105> x=1: :2; octave:106> longitud_vector=length(x) longitud_vector = zeros(size(a)) forma una matriz de ceros del mismo tamaño que una matriz A previamente creada. octave:107> zeros(size(a)) ans = ones(size(a)) ídem con unos A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos de un vector ya existente x. x=diag(a) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A. Pág -19-

22 octave:111> diag(a) ans = Manual de Iniciación a GNU Octave diag(diag(a)) crea una matriz diagonal a partir de la diagonal de la matriz A. octave:112> diag(diag(a)) ans = triu(a) forma una matriz triangular superior a partir de una matriz A (no tiene por qué ser cuadrada). octave:110> triu(a) ans = tril(a) ídem con una matriz triangular inferior. octave:109> tril(a) ans = Pág -20-

23 rot90(a,k) Gira k*90 grados la matriz rectangular A en sentido antihorario. k es un entero que puede ser negativo. Si se omite, se supone k=1 octave:113> rot90(a,1) ans = flipud(a) halla la matriz simétrica de A respecto de un eje horizontal octave:114> flipud(a) ans = Un caso especialmente interesante es el de crear una nueva matriz componiendo como submatrices otras matrices definidas previamente. A modo de ejemplo, vamos a realizar la matriz generadora de un código ortogonal con M=2: octave:124> a=[0 0;0 1]; octave:125> h2=[a a;a not(a)] h2 = Pág -21-

24 Direccionamiento de vectores y matrices a partir de vectores Los elementos de una matriz a pueden direccionarse a partir de los elementos de vectores: octave:127> a=rand(2,5) a = octave:128> b=[1 2 5]; octave:129> a(b) ans = Podemos ver que hemos obtenido las posiciones 1, 2 y 5 de la matriz a, que debemos contar teniendo en cuenta que la matriz se recorre por columnas y no por filas. Si queremos ver un elemento concreto de la matriz, podemos ejecutar lo siguiente: octave:132> a(2,1) ans = Creamos esta nueva matriz a para que sea más fácil seguir los valores: octave:133> a=randn(4)*10 a = octave:134> a(2,3) ans = Pág -22-

25 Ahora podemos ver las columnas 1, 2 y 3 de la 4ª fila octave:135> a(4,1:3) ans = octave:136> #tercera fila octave:136> a(3,:) ans = octave:137> #tercera columna octave:137> a(:,3) ans = Para ver el último elemento de una matriz podemos usar el direccionamiento end: octave:139> a(end,end) ans = Operador <<Dos Puntos>> (:) Se trata de una de las formas de definir vectores y matrices más usada y más fácil de utilizar, dada la rápida visualización de la salida sin necesidad de ver el resultado: octave:140> x=1:1:10; octave:141> x x = Pág -23-

26 En cierta forma se podría decir que el operador (:) representa un rango: en este caso, los números enteros entre el 1 y el 10. Por defecto el incremento es 1, pero este operador puede también utilizarse con otros valores enteros y reales, positivos o negativos. En este caso el incremento va entre el valor inferior y el superior, pero podemos hacer que el incremento sea negativo, o que se haga con un incremento mayor o menor: octave:142> x=10:-1:1 x = Definición de matrices y vectores desde fichero GNU Octave acepta el uso de scripts desde los que crear matrices, vectores, variables, etc; como si estuviéramos ejecutándolo desde la propia línea de comandos. Por ejemplo, si creamos el fichero matriz_a.m donde creamos una matriz a cualquiera, al ejecutarla en GNU Octave podremos ver que se crea como si estuvieramos generándola en el propio programa: #primer script a=randn(4)*10 #fin del script octave:133> matriz_a a = Nota: Tenemos que estar dentro del directorio de trabajo o incluir el directorio donde encontrar la función dentro del path Pág -24-

27 Operadores Relacionales El lenguaje de programación de GNU Octave dispone de los siguientes operadores relacionales: < menor que > mayor que <= menor o igual que >= mayor o igual que == igual que ~= distinto que Obsérvese que, salvo el último de ellos, coinciden con los correspondientes operadores relacionales de C. Sin embargo, ésta es una coincidencia más bien formal. En GNU Octave los operadores relacionales pueden aplicarse a vectores y matrices, y eso hace que tengan un significado especial. Al igual que en C, si una comparación se cumple el resultado es 1 (true), mientras que si no se cumple es 0 (false). Recíprocamente, cualquier valor distinto de cero es considerado como true y el cero equivale a false. La diferencia con C está en que cuando los operadores relacionales de GNU Octave se aplican a dos matrices o vectores del mismo tamaño, la comparación se realiza elemento a elemento, y el resultado es otra matriz de unos y ceros del mismo tamaño, que recoge el resultado de cada comparación entre elementos. octave:147> a=7; octave:148> b=8; octave:149> a<b ans = 1 octave:155> a==b ans = 0 Pág -25-

28 Operadores Lógicos Los operadores lógicos de GNU Octave son los siguientes: & and or ~ negación lógica Obsérvese que estos operadores lógicos tienen distinta notación que los correspondientes operadores de C (&&, y!). Los operadores lógicos se combinan con los relacionales para poder comprobar el cumplimiento de condiciones múltiples. octave:165> a=true a = 1 octave:166> b=not(a) b = 0 octave:167> c=a&b c = 0 octave:168> c=a b c = 1 Pág -26-

29 1.2. Funciones de Librería GNU Octave posee un gran número de funciones integradas y de funciones definidas por el usuario, las primeras son funciones optimizadas para Octave, las segundas, con extensión *.m son funciones definidas en ficheros, que pueden ser: o Definidas por GNU Octave o Definidas por grupos/usuarios desinteresados que ofrecen su código a los demás usuarios de GNU Octave o Definidas por el propio usuario, para su uso y/o compartición con otros usuarios Características Generales de las funciones de librería El concepto de función en GNU OCTAVE es semejante al de C y al de otros lenguajes de programación, aunque con algunas diferencias importantes. Al igual que en C, una función tiene nombre, valor de retorno y argumentos. Una función se llama utilizando su nombre en una expresión o utilizándolo como un comando más. #funcion de prueba para evaluar function y=prueba(x) y=x+3; endfunction Podemos ver que esta función es solamente la función de una recta, cuya pendiente es de 45º y desplazada 3 unidades. y : es el valor de retorno. prueba : es el nombre de la función. x : es el argumento de entrada. Una característica de GNU OCTAVE es que las funciones que no tienen argumentos no llevan paréntesis, por lo que a simple vista no siempre son fáciles de distinguir de las simples variables. Ejemplo: #! hello -qf printf("hello, world \n") Pág -27-

30 octave:1> hello hello, word Los nombres de las funciones de GNU Octave no son palabras reservadas del lenguaje. Es posible crear una variable llamada sin o cos, que ocultan las funciones correspondientes. Para poder acceder a las funciones hay que eliminar (clear) las variables del mismo nombre que las ocultan. Podemos encontrar gran variedad de tipos de función según lo que resuelvan: 1.- Funciones matemáticas elementales. 2.- Funciones especiales. 3.- Funciones matriciales elementales. 4.- Funciones matriciales específicas. 5.- Funciones para la descomposición y/o factorización de matrices. 6.- Funciones para análisis estadístico de datos. 7.- Funciones para análisis de polinomios. 8.- Funciones para integración de ecuaciones diferenciales ordinarias. 9.- Resolución de ecuaciones no-lineales y optimización Integración numérica Funciones para procesamiento de señal. Las características principales de estas funciones son: o Los argumentos actuales de estas funciones pueden ser expresiones y también llamadas a otra función. o Admite valores de retorno matriciales múltiples. Por ejemplo, en el comando: octave:177> a=[1 2;2 3]; octave:179> [vector_propio, valor_propio]=eig(a) vector_propio = Pág -28-

31 valor_propio = Manual de Iniciación a GNU Octave la función eig() calcula los valores y vectores propios de la matriz cuadrada A. Los vectores propios se devuelven como columnas de la matriz vector_propio, mientras que los valores propios son los elementos de la matriz diagonal valor_propio. o Las operaciones de suma y/o resta de una matriz con un escalar consisten en sumar y/o restar el escalar a todos los elementos de la matriz. o Recuérdese que tecleando help nombre_funcion se obtiene de inmediato información sobre la función de ese nombre Funciones matemáticas elementales que operan de modo escalar. Estas funciones, que comprenden las funciones matemáticas trascendentales y otras funciones básicas, actúan sobre cada elemento de la matriz como si se tratase de un escalar. Se aplican de la misma forma a escalares, vectores y matrices. Algunas de las funciones de este grupo son las siguientes: o sin(x) : seno o cos(x) : coseno o tan(x) : tangente o asin(x) : arco seno o acos(x) : arco coseno o atan(x) : arco tangente (devuelve un ángulo entre -90º y 90º) o sinh(x) : seno hiperbólico o cosh(x) : coseno hiperbólico o tanh(x) : tangente hiperbólica o asinh(x) : arco seno hiperbólico o acosh(x) : arco coseno hiperbólico o atanh(x) : arco tangente hiperbólica o log(x) : logaritmo natural o log10(x) : logaritmo decimal o exp(x) : función exponencial Pág -29-

32 o sqrt(x) : raíz cuadrada o round(x) : redondeo hacia el entero más próximo o fix(x) : redondea hacia el entero más próximo a 0 o floor(x) : valor entero más próximo hacia - o ceil(x) : valor entero más próximo hacia + o gcd(x) : máximo común divisor o lcm(x) : mínimo común múltiplo o real(x) : partes reales o imag(x) : partes imaginarias o abs(x) : valores absolutos o angle(x) : ángulos de fase En realidad estas funciones se pueden aplicar también a matrices, pero en ese caso se aplican por separado a cada columna de la matriz, dando como valor de retorno un vector resultado de aplicar la función a cada columna de la matriz considerada como vector. Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta. Pág -30-

33 Funciones que actúan sobre matrices Las siguientes funciones exigen que el/los argumento/s sean matrices. En este grupo aparecen algunas de las funciones más útiles y potentes de GNU OCTAVE. Se clasificarán en varios subgrupos Funciones elementales o B = A' calcula la traspuesta (conjugada) de la matriz A octave:29> a=[1+i,2+3i;1+2i,2+i]; octave:30> b=a' b = 1-1i 1-2i 2-3i 2-1i octave:31> b=a.' b = o B = A.' calcula la traspuesta (sin conjugar) de la matriz A 1 + 1i 1 + 2i 2 + 3i 2 + 1i o v = poly(a) devuelve un vector v con los coeficientes del polinomio característico de la matriz cuadrada A octave:35> x=[1 2 1]; octave:36> v=poly(x) v = o t = trace(a) devuelve la traza t (suma de los elementos de la diagonal) de una matriz cuadrada A octave:37> t=trace(c) t = 2 Pág -31-

34 o [m,n] = size(a) devuelve el número de filas m y de columnas n de una matriz rectangular A octave:38> [m,n]=size(c) m = 2 n = 2 o n = size(a) devuelve el tamaño de una matriz cuadrada A octave:39> n=size(c) n = Funciones Especiales Las funciones exp(), sqrt() y log() se aplican elemento a elemento a las matrices y/o vectores que se les pasan como argumentos. Existen otras funciones similares que tienen también sentido cuando se aplican a una matriz como una única entidad. Estas funciones son las siguientes (se distinguen porque llevan una "m" adicional en el nombre): o expm(a) : si A=XDX, expm(a) = X*diag(exp(diag(D)))*X o sqrtm(a) : devuelve una matriz que multiplicada por sí misma da la matriz A o logm(a) : es la función inversa de expm(a) octave:39> logm(c) ans = i i i i Pág -32-

35 Funciones de Factorización y/o Descomposición Matricial A su vez este grupo de funciones se puede subdividir en 4 subgrupos: Funciones basadas en la factorización triangular (eliminación de Gauss): o [L,U] = lu(a) descomposición de Crout (A = LU) de una matriz. La matriz L es una permutación de una matriz triangular inferior (dicha permutación es consecuencia del pivotamiento por columnas utilizado en la factorización). octave:42> a=rand(3) a = octave:43> [L,U]=lu(a) L = U = Pág -33-

36 o B = inv(a) calcula la inversa de A. Equivale a B=inv(U)*inv(L) octave:63> a=[1 1;2 2]; octave:65> inv(a) warning: inverse: matrix singular to machine precision, rcond = 0 ans = o d = det(a) devuelve el determinante d de la matriz cuadrada A. Equivale a d=det(l)*det(u) o E = rref(a) reducción a forma de escalón (mediante la eliminación de Gauss con pivotamiento por columnas) de una matriz rectangular A. Sólo se utiliza la diagonal y la parte triangular superior de A. El resultado es una matriz triangular superior tal que A = U'*U. octave:46> a=[ ; ; ]; octave:47> e=rref(a) e = o c = rcond(a) devuelve una estimación del recíproco de la condición numérica de la matriz A basada en la norma sub-1. Si el resultado es próximo a 1 la matriz A está bien condicionada; si es próximo a 0 no lo está. Funciones basadas en el cálculo de valores y vectores propios: o [X,D] = eig(a) valores propios (diagonal de D) y vectores propios (columnas de X) de una matriz cuadrada A. Con frecuencia el resultado es complejo (si A no es simétrica). o [X,D] = eig(a,b) valores propios (diagonal de D) y vectores propios (columnas de X) de dos matrices cuadradas A y B (Ax = λbx). Funciones basadas en la descomposición QR: Pág -34-

37 o [Q,R] = qr() descomposición QR de una matriz rectangular. Se utiliza para sistemas con más ecuaciones que incógnitas. octave:51> a=[ ; ; ; ]; octave:52> [q,r]=qr(a); octave:53> q q = octave:54> r r = o B = null(a) devuelve una base ortonormal del subespacio nulo (kernel, o conjunto de vectores x tales que Ax = 0) de la matriz rectangular A. octave:56> a=[1 1; 2 1]; octave:57> null(a) ans = [](2x0) Pág -35-

38 o Q = orth(a) las columnas de Q son una base ortonormal del espacio vectorial de las columnas de A, y el número de columnas de Q es el rango de A. octave:62> q=orth(a) q = Funciones basadas en la descomposición de valor singular o B = pinv(a) calcula la pseudo-inversa de una matriz rectangular A octave:63> a=[1 1;2 2]; octave:64> pinv(a) ans = o r = rank(a) calcula el rango r de una matriz rectangular A o nor = norm(a) calcula la norma sub-2 de una matriz (el mayor valor singular) o nor = norm(a,2) lo mismo que la anterior octave:67> x=rand(1,4) x = octave:68> norm(x,2) ans = Pág -36-

39 Cálculo del rango, normas y condición numérica: Existen varias formas de realizar estos cálculos, con distintos niveles de esfuerzo de cálculo y de precisión en el resultado. El rango se calcula implícitamente (sin que el usuario lo pida) al ejecutar las funciones rref(a), orth(a), null(a) y pinv(a). Normas de vectores: norm(x,p) norma sub-p, es decir sum(abs(x)^p)^(1/p). norm(x) norma euclídea; equivale al módulo o norm(x,2). norm(x,inf) norma sub-, es decir max(abs(x)). norm(x,1) norma sub-1, es decir sum(abs(x)). octave:67> x=rand(1,4) x = octave:68> norm(x,2) ans = octave:69> norm(x,3) ans = Pág -37-

40 1.3. Más sobre operadores relacionales con vectores y matrices Cuando alguno de los operadores relacionales vistos previamente (<, >, <=, >=, == y =) actúa entre dos matrices (vectores) del mismo tamaño, el resultado es otra matriz (vector) de ese mismo tamaño conteniendo unos y ceros, según los resultados de cada comparación entre elementos hayan sido true o false, respectivamente. De ordinario, las matrices "binarias" que se obtienen de la aplicación de los operadores relacionales no se almacenan en memoria ni se asignan a variables, sino que se procesan sobre la marcha. GNU OCTAVE dispone de varias funciones para ello. Recuérdese que cualquier valor distinto de cero equivale a true, mientras que un valor cero equivale a false. Algunas de estas funciones son: any(x) función vectorial; chequea si alguno de los elementos del vector x cumple una determinada condición (en este caso ser distinto de cero). Devuelve un uno ó un cero octave:70> any(x) ans = 1 any(a) se aplica por separado a cada columna de la matriz A. El resultado es un vector de unos y ceros all(x) función vectorial; chequea si todos los elementos del vector x cumplen una condición. Devuelve un uno ó un cero. octave:71> any(a) ans = 1 1 Pág -38-

41 all(a) se aplica por separado a cada columna de la matriz A. El resultado es un vector de unos y ceros. octave:74> all(a) ans = 1 1 find(x) busca índices correspondientes a elementos de vectores que cumplen una determinada condición. El resultado es un vector con los índices de los elementos que cumplen la condición. octave:82> x x = octave:83> find(x>0) ans = find(a) cuando esta función se aplica a una matriz la considera como un vector con una columna detrás de otra, de la 1ª a la última. Pág -39-

42 1.4. Otras funciones que actúan sobre vectores y matrices Las siguientes funciones pueden actuar sobre vectores y matrices, y sirven para chequear ciertas condiciones: exist(var) comprueba si la variable var existe isnan() chequea si hay valores NaN, devolviendo una matriz de unos y ceros octave:89> x=[ /0 6] warning: division by zero x = NaN 6 octave:90> isnan(x) ans = isinf() chequea si hay valores Inf, devolviendo una matriz de unos y ceros octave:91> isinf(x) ans = isfinite() chequea si los valores son finitos octave:94> isfinite(x) ans = isempty() chequea si un vector o matriz está vacío ischar() chequea si una variable es una cadena de caracteres (string) octave:95> ischar(x) ans = 0 isglobal() chequea si una variable es global octave:97> isglobal(y) ans = 0 Pág -40-

43 issparse() chequea si una matriz es dispersa (sparse, es decir, con un gran número de elementos cero) 2. Otros tipos de datos de GNU OCTAVE En los Capítulos precedentes se ha visto la especialidad de GNU OCTAVE: trabajar con vectores y matrices. En este Capítulo se va a ver que GNU OCTAVE puede también trabajar con otros tipos de datos: 1. Conjuntos o cadenas de caracteres, fundamentales en cualquier lenguaje de programación. 2. Hipermatrices, o matrices de más de dos dimensiones. 3. Estructuras, o agrupaciones bajo un mismo nombre de datos de naturaleza diferente. 4. Vectores o matrices de celdas (cell arrays), que son vectores o matrices cuyos elementos pueden ser cualquier otro tipo de dato Cadenas de caracteres GNU OCTAVE trabaja también con cadenas de caracteres, con ciertas semejanzas y también diferencias respecto a C/C++. A continuación se explica lo más importante del manejo de cadenas de caracteres en GNU OCTAVE. Los caracteres de una cadena se almacenan en un vector, con un carácter por elemento. Cada carácter ocupa dos bytes. Las cadenas de caracteres van entre apóstrofos o comillas simples, como por ejemplo: 'cadena'. Si la cadena debe contener comillas, éstas se representan por un doble carácter comilla, de modo que se pueden distinguir fácilmente del principio y final de la cadena. Por ejemplo, para escribir la cadena ni idea se escribiría ni idea. Una matriz de caracteres es una matriz cuyos elementos son caracteres, o bien una matriz cuyas filas son cadenas de caracteres. Todas las filas de una matriz de caracteres deben tener el mismo número de elementos. Si es preciso, las cadenas (filas) más cortas se completan con blancos. Las funciones más importantes para manejo de cadenas de caracteres son las siguientes: Pág -41-

44 double(c) convierte en números ASCII cada carácter char(v) convierte un vector de números v en una cadena de caracteres char(c1,c2) crea una matriz de caracteres, completando con blancos las cadenas más cortas deblank(c) elimina los blancos al final de una cadena de caracteres disp(c) imprime el texto contenido en la variable c ischar(c) detecta si una variable es una cadena de caracteres isletter() detecta si un carácter es una letra del alfabeto. Si se le pasa un vector o matriz de caracteres devuelve un vector o matriz de unos y ceros isspace() detecta si un carácter es un espacio en blanco. Si se le pasa un vector o matriz de caracteres devuelve un vector o matriz de unos y ceros strcmp(c1,c2) comparación de cadenas. Si las cadenas son iguales devuelve un uno, y si no lo son, devuelve un cero (funciona de modo diferente que la correspondiente función de C) strcmpi(c1,c2) igual que strcmp(c1,c2), pero ignorando la diferencia entre mayúsculas y minúsculas strncmp(c1,c2,n) compara los n primeros caracteres de dos cadenas c1==c2 compara dos cadenas carácter a carácter. Devuelve un vector o matriz de unos y ceros s=[s,' y más'] concatena cadenas, añadiendo la segunda a continuación de la primera findstr(c1,c2) devuelve un vector con las posiciones iniciales de todas las veces en que la cadena más corta aparece en la más larga num2str(x,n) convierte un número real x en su expresión por medio de una cadena de caracteres, con cuatro cifras decimales por defecto (pueden especificarse más cifras, con un argumento opcional n) str2double(str) convierte una cadena de caracteres representando un número real en el número real correspondiente vc=cellstr(cc) convierte una matriz de caracteres strrep(c1,c2,c3) sustituye la cadena c2 por c3, cada vez que c2 es encontrada en c1 Pág -42-

45 octave:3> c=char('mas','madera') c = mas madera octave:4> a=[11,112,121,23]; #podemos crear los caracteres con su numero en ascii octave:5> b=char(a) b= py_ octave:6> char(11) ans= octave:7> char(112) ans = p octave:8> char(121) ans = y octave:9> char(23) ans = _ octave:10> double(b) ans = octave:11> c='espacios c = espacios octave:12> size(c) ans = ' 1 12 octave:13> deblank(c) #de este modo podemos eliminar los espacios existentes en el string ans = espacios octave:14> size(ans) ans = 1 8 Pág -43-

46 octave:15> strcmp(a,b) ans = 0 octave:16> strcmp(b,b) ans = 1 octave:17> a='en un lugar de la mancha de cuyo nombre no puedo acordarme' a = en un lugar de la mancha de cuyo nombre no puedo acordarme octave:18> b='n'; octave:19> findstr(a,b) ans = octave:20> strmatch(a,b) ans = [](0x0) octave:21> strrep(a,b,'t') ans = et ut lugar de la matcha de cuyo Tombre To puedo acordarme Pág -44-

47 2.2. Hipermatrices (arrays de más de dos dimensiones) GNU OCTAVE permite trabajar con hipermatrices, es decir con matrices de más de dos dimensiones. Una posible aplicación es almacenar con un único nombre distintas matrices del mismo tamaño (resulta una hipermatriz de 3 dimensiones). Los elementos de una hipermatriz pueden ser números, caracteres, estructuras, y vectores o matrices de celdas. El tercer subíndice representa la tercera dimensión la profundidad de la hipermatriz Definición de Hipermatrices Las funciones que operan con matrices de más de dos dimensiones son análogas a las funciones vistas previamente, aunque con algunas diferencias. Por ejemplo, las siguientes sentencias generan, en dos pasos, una matriz de 2x2x2: octave:25> rand(2,2,2) ans = ans(:,:,1) = ans(:,:,2) = Pág -45-

48 2.3. Estructuras Una estructura (struct) es una agrupación de datos de tipo diferente bajo un mismo nombre. Estos datos se llaman miembros (members) o campos (fields). Una estructura es un nuevo tipo de dato, del que luego se pueden crear muchas variables (objetos o instances). Por ejemplo, la estructura alumno puede contener los campos nombre (una cadena de caracteres) y carnet (un número) Creación de Estructuras En GNU OCTAVE la estructura alumno se crea creando un objeto de dicha estructura. A diferencia de otros lenguajes de programación, no hace falta definir previamente el modelo o patrón de la estructura. Una posible forma de hacerlo es crear uno a uno los distintos campos, como en el ejemplo siguiente: octave:35> alumno.nombre='jose'; octave:36> alumno.apellido='escriche'; octave:37> alumno alumno = { apellido = escriche nombre = jose } También puede crearse la estructura por medio de la función struct(), como por ejemplo, octave:38> alumno=struct('nombre','jose maria','dni', ) alumno = { dni = nombre = jose maria } GNU Octave permite, además, añadir un nuevo campo a una estructura en cualquier momento. La siguiente sentencia añade el campo edad a todos los elementos del vector alumno. Pág -46-

49 octave:39> alumno.edad=23 alumno = { dni = edad = 23 nombre = jose maria } Como hemos visto desde un inicio, GNU Octave trabaja con matrices, por lo tanto, todo lo que veamos para un elemento es extrapolable a una matriz, vector o conjunto de estos, por lo tanto, podemos hacer matrices de structs al igual que hemos hecho structs de vectores/matrices Funciones para operar con Estructuras Las estructuras de GNU OCTAVE disponen de funciones que facilitan su uso. Algunas de estas funciones son las siguientes: isstruct(st) permite saber si ST es o no una estructura fieldnames(struct) devuelve un array de celdas con el numero y nombre de los elementos de la estructura isfield (expr, nombre) nos dice si la structura posee un campo con el nombre indicado. Pág -47-

50 2.4. Vectores y matrices de Celda Un vector (matriz o hipermatriz) de celdas es un vector (matriz o hipermatriz) cuyos elementos son cada uno de ellos una variable de tipo cualquiera. En un array ordinario todos sus elementos son números o cadenas de caracteres. Sin embargo, en un array de celdas, el primer elemento puede ser un número; el segundo una matriz; el tercero una cadena de caracteres; el cuarto una estructura, etc Creación de vectores y matrices de Celdas Obsérvese por ejemplo cómo se crea, utilizando llaves {}, el siguiente vector de celdas, octave:42> vc(1)={[1 1 2]} vc = { [1,1] = } octave:43> vc(2)={'jose maria'} vc = { [1,1] = [1,2] = jose maria } Pág -48-

51 octave:44> vc(3)={rand(2,2)} vc = { [1,1] = [1,2] = jose maria [1,3] = } Otra nomenclatura alternativa y similar, que también utiliza llaves, es la que podemos ver a continuación. octave:45> v{1}=[1 2 1] v = { [1,1] = } Pág -49-

52 octave:46> v{2}='escriche' v = { [1,1] = } [1,2] = escriche Funciones para trabajar con vectores y matrices de celdas GNU OCTAVE dispone de las siguientes funciones para trabajar con cell arrays: cell(m,n) crea un cell array vacío de m filas y n columnas celldisp(ca) muestra el contenido de todas las celdas de ca cellplot(ca) muestra una representación gráfica de las distintas celdas iscell(ca) indica si ca es un vector de celdas num2cell() convierte un array numérico en un cell array octave:48> c=cell(2,2) c = { [1,1] = [](0x0) [2,1] = [](0x0) [1,2] = [](0x0) [2,2] = [](0x0) } Pág -50-

53 octave:49> c{1,1}='jose maria' c = { } [1,1] = jose maria [2,1] = [](0x0) [1,2] = [](0x0) [2,2] = [](0x0) octave:50> c{2,2}='azucar' c = { [1,1] = jose maria [2,1] = [](0x0) [1,2] = [](0x0) [2,2] = azucar } Pág -51-

54 3. Programación en GNU Octave Este es uno de los puntos flojos de todo este tipo de herramientas de cálculo numérico, ya que no existen grandes posibilidades de programación, aunque sí las formas de programación básicas Bifurcaciones y bucles Como todo lenguaje de programación, podemos encontrar bifurcaciones y bucles. Las bifurcaciones sirven para realizar una u otra operación: Los bucles nos permiten realizar varias iteraciones de un mismo proceso, o sea, realizar una misma operación sobre distintos elementos. Podemos encontrar varios tipos de bucles: while do-until for Además de las sentencias break y continue utilizadas dentro de los bucles para salir del proceso. Pág -52-

55 Sentencia IF Esta sentencia nos sirve para hacer bifurcaciones, podemos hacer 3 usos diferentes de ella: Una sola sentencia que utilizamos si es verdadera y sino no hacemos nada: if (condition) then-body endif Utilizando la expresión else con la que conseguiremos hacer uso de una expresión u otra si es consecuentemente true o false. if (condition) then-body else else-body endif Utilizando la expression elseif con la que se pueden anidar bifurcaciones (aunque es mejor usar la sentencia switch) if (condition) then-body elseif (condition) elseif-body else #es la opción por defecto cuando no se cumple ninguna condición else-body endif Pág -53-

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos Herramientas computacionales para la matemática MATLAB: Otros tipos de datos Verónica Borja Macías Mayo 2012 1 Otros tipos de datos La especialidad de MATLAB es trabajar con vectores y matrices, pero MATLAB

Más detalles

>> 10.5 + 3.1 % suma de dos números reales, el resultado se asigna a ans

>> 10.5 + 3.1 % suma de dos números reales, el resultado se asigna a ans Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Matemática Cálculo Numérico (521230) Laboratorio 1: Introducción al Matlab Matlab es una abreviatura para

Más detalles

Clase 2: Operaciones con matrices en Matlab

Clase 2: Operaciones con matrices en Matlab Clase 2: Operaciones con matrices en Matlab Hamilton Galindo UP Hamilton Galindo (UP) Clase 2: Operaciones con matrices en Matlab Marzo 2014 1 / 37 Outline 1 Definición de matrices desde teclado 2 Operaciones

Más detalles

Tema 4: Empezando a trabajar con ficheros.m

Tema 4: Empezando a trabajar con ficheros.m Tema 4: Empezando a trabajar con ficheros.m 1. Introducción Como ya se comentó en el punto 3 del tema1, en Matlab tienen especial importancia los ficheros M de extensión.m. Contienen conjuntos de comandos

Más detalles

Manual de Iniciación de Scilab. Manual de Scilab. Pág -1-

Manual de Iniciación de Scilab. Manual de Scilab. Pág -1- Manual de Scilab Pág -1- 1. Operaciones Básicas 1.1. Operaciones con matrices y vectores 1.1.1. Introducción de matrices desde el teclado 1.1.2. Operaciones con matrices 1.1.3. Tipos de datos 1.1.3.1.

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control 1er curso de Ingeniería Industrial: Ingeniería de Control Práctica 1ª: Introducción a Matlab Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

Tema 3: Vectores y matrices. Conceptos básicos

Tema 3: Vectores y matrices. Conceptos básicos Tema : Vectores matrices. Conceptos básicos 1. Definición Matlab está fundamentalmente orientado al trabajo el cálculo matricial. Veremos que las operaciones están definidas para el trabajo con este tipo

Más detalles

Formatos y Operadores

Formatos y Operadores Formatos y Operadores Formatos numéricos format short long hex bank short e short g long e long g rational coma fija con 4 decimales (defecto) coma fija con 15 decimales cifras hexadecimales números con

Más detalles

Comenzando con MATLAB

Comenzando con MATLAB ÁLGEBRA LINEAL INGENIERÍA INFORMÁTICA Curso 08/09 PRÁCTICA 1 Comenzando con MATLAB 1 Funcionamiento de Matlab MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería.

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

Fundamentos de Informática Parte II Análisis y Visualización de Datos mediante Matlab

Fundamentos de Informática Parte II Análisis y Visualización de Datos mediante Matlab Fundamentos de Informática Parte II Análisis y Visualización de Datos mediante Matlab Titulación: Ingeniería Técnica Industrial Química Industrial Profesor: José Luis Esteban Escuela Superior de Ciencias

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Definición de vectores

Definición de vectores Definición de vectores Un vector es todo segmento de recta dirigido en el espacio. Cada vector posee unas características que son: Origen: O también denominado Punto de aplicación. Es el punto exacto sobre

Más detalles

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Verónica Borja Macías Mayo 2012 1 La línea H1 y las líneas de texto de ayuda La línea H1 y las líneas

Más detalles

Introducción a Matlab.

Introducción a Matlab. Introducción a Matlab. Ejercicios básicos de manipulación de imágenes. Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática OBJETIVOS: Iniciación

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

MATLAB en 30 minutos

MATLAB en 30 minutos MATLAB en 30 minutos Rafael Collantes. Octubre 200. Introducción MATLAB nació como un programa para cálculo matricial, pero en la actualidad MATLAB es un sistema que permite no solamente realizar todo

Más detalles

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico. 1 Primeros pasos en R. Al iniciarse R (ver Figura 16), R espera la entrada de órdenes y presenta un símbolo para indicarlo. El símbolo asignado, como puede observarse al final, es > Figura 16. Pantalla

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 1 E 2 E 2 E 3 E 4 E 5 2E 4 Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Subespacios vectoriales en R n

Subespacios vectoriales en R n Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Complemento Microsoft Mathematics

Complemento Microsoft Mathematics Complemento Microsoft Mathematics El complemento Microsoft Mathematics es un conjunto de herramientas que se pueden usar para realizar operaciones matemáticas y trazado de gráficas con expresiones o ecuaciones

Más detalles

Departamento de Matemática Aplicada FUNDAMENTOS DE MATEMATICAS. Ingeniería Química (Curso 2005-06) Álgebra Lineal Práctica 3

Departamento de Matemática Aplicada FUNDAMENTOS DE MATEMATICAS. Ingeniería Química (Curso 2005-06) Álgebra Lineal Práctica 3 1. Matrices en Matlab Departamento de Matemática Aplicada FUNDAMENTOS DE MATEMATICAS. Ingeniería Química (Curso 2005-06) Álgebra Lineal Práctica 3 Para introducir una matriz en Matlab se procede de la

Más detalles

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

ELEMENTOS BÁSICOS DE MATHEMATICA

ELEMENTOS BÁSICOS DE MATHEMATICA CAPÍTULO 1 ELEMENTOS BÁSICOS DE MATHEMATICA 1.- COMENZANDO A TRABAJAR 2.- OPERADORES MATEMÁTICOS 3.- REPRESTACIÓN DE VALORES NUMÉRICOS 4.- VARIABLES CAPÍTULO 1 7 8 1.- COMENZANDO A TRABAJAR Una vez iniciado

Más detalles

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010 Detalles de Matlab MATLAB utiliza la aritmética del punto flotante, la cual involucra un conjunto finito de números con precisión finita. Esta limitación conlleva dos dificultades: los números representados

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

Prácticas de Análisis Matricial con MATLAB

Prácticas de Análisis Matricial con MATLAB Prácticas de Análisis Matricial con MATLAB Ion Zaballa. Trabajando con matrices y vectores Ejercicio.- Dados los vectores a = 3 4 a) Calcula el vector 3a a + 4a 3., a = 3, a 3 = b) Si A = [a a a 3 ] es

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Cálculo Simbólico también es posible con GeoGebra

Cálculo Simbólico también es posible con GeoGebra www.fisem.org/web/union ISSN: 1815-0640 Número 34. Junio de 2013 páginas 151-167 Coordinado por Agustín Carrillo de Albornoz Cálculo Simbólico también es posible con GeoGebra Antes de exponer las posibilidades

Más detalles

PRACTICA 6. VECTORES Y MATRICES.

PRACTICA 6. VECTORES Y MATRICES. PRACTICA 6. VECTORES Y MATRICES. 1. Introducción. Los vectores y matrices son uno de los medios principales para el almacenamiento de los datos en un programa. En esta práctica veremos todos los conceptos

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

Álgebra y Matemática Discreta Sesión de Prácticas 1

Álgebra y Matemática Discreta Sesión de Prácticas 1 Álgebra y Matemática Discreta Sesión de Prácticas 1 (c) 2013 Leandro Marín, Francisco J. Vera, Gema M. Díaz 16 Sep 2013-22 Sep 2013 Estructuras Algebraicas La Estructura como Variable Tenemos una gran

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

Programación con Octave/Octave-UPM (I)

Programación con Octave/Octave-UPM (I) Programación con Octave/Octave-UPM (I) Mario Bermejo CLUB DE INFORMÁTICA CAMINOS 11 y 13 marzo 2015 Índice 1 Características Octave/Matlab 2 Interfaz gráfica y consola de comandos 3 Tipos y estructuras

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Práctica 3 Cálculo Matricial

Práctica 3 Cálculo Matricial Matrices.nb 1 Práctica 3 Cálculo Matricial Práctica de ÁlgebraLineal,E.U.A.T.,Grupos 1ºA y 1ºC,Curso 2005 2006 En esta práctica describiremos cómo definir matrices con Mathematica y cómo realizar algunas

Más detalles

PROGRAMA DE CONTROL DE CALIDAD

PROGRAMA DE CONTROL DE CALIDAD WORK PAPER # 1 PROGRAMA DE CONTROL DE CALIDAD Nro. DE PROCEDIMIENTO: AC - PRO 01 Nro. DE HOJAS: 6 ELABORÓ: Ing. Víctor A. Laredo Antezana CÓDIGO: TÍTULO WORK PAPER: LO BÁSICO DE MATLAB DPTO: UDABOL LA

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL 2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL PRÁCTICA 2: INTRODUCCIÓN A MATLAB. CARACTERÍSTICAS BÁSICAS DE MATLAB Funcionalidades

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

Capitán de fragata ingeniero AGUSTÍN E. GONZÁLEZ MORALES. ÁLGEBRA PARA INGENIEROS (Solucionario)

Capitán de fragata ingeniero AGUSTÍN E. GONZÁLEZ MORALES. ÁLGEBRA PARA INGENIEROS (Solucionario) Capitán de fragata ingeniero AGUSTÍN E. GONZÁLEZ MORALES ÁLGEBRA PARA INGENIEROS (Solucionario) 2 Í N D I C E CAPÍTULO : MATRICES, DETERMINANTES Y SISTEMAS DE ECUACIONES LINEALES CAPÍTULO 2: ESPACIOS VECTORIALES

Más detalles

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

Más detalles

1. INVERSA DE UNA MATRIZ REGULAR

1. INVERSA DE UNA MATRIZ REGULAR . INVERSA DE UNA MATRIZ REGULAR Calcular la inversa de una matriz regular es un trabajo bastante tedioso. A través de ejemplos se expondrán diferentes técnicas para calcular la matriz inversa de una matriz

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

Diagonalización de matrices

Diagonalización de matrices diagonalizacion.nb Diagonalización de matrices Práctica de Álgebra Lineal, E.U.A.T., Grupos ºA y ºB, 2005 Algo de teoría Qué es diagonalizar una matriz? Para estudiar una matriz suele ser conveniente expresarla

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Actividades con GeoGebra

Actividades con GeoGebra Conectar Igualdad - "Netbooks Uno a Uno" Actividades con GeoGebra Nociones básicas, rectas Silvina Ponce Dawson Introducción. El GeoGeobra es un programa que permite explorar nociones matemáticas desde

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Tema 1. VECTORES (EN EL PLANO Y EN EL ESPACIO)

Tema 1. VECTORES (EN EL PLANO Y EN EL ESPACIO) Vectores Tema. VECTORES (EN EL PLANO Y EN EL ESPACIO Definición de espacio vectorial Un conjunto E es un espacio vectorial si en él se definen dos operaciones, una interna (suma y otra externa (producto

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Operación de Microsoft Excel

Operación de Microsoft Excel Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,

Más detalles

facilidades para cálculo matemático y Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc.

facilidades para cálculo matemático y Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc. MATLAB Introducción al MATLAB MATLAB = MATrix LABoratory Es un entorno de computación que presenta facilidades para cálculo matemático y visualización gráfica Dispone de toolboxes especializados: Control

Más detalles

Roberto Quejido Cañamero

Roberto Quejido Cañamero Crear un documento de texto con todas las preguntas y respuestas del tema. Tiene que aparecer en él todos los contenidos del tema. 1. Explica qué son los modos de presentación en Writer, cuáles hay y cómo

Más detalles

Un Banner es un gráfico, generalmente elaborado en un formato de archivo.gif o JPG, de aproximadamente 400 x 40 pixeles, el cual se coloca como un encabezado o una representación de una "Página en un Website".

Más detalles

Anexo 1: Demostraciones

Anexo 1: Demostraciones 75 Matemáticas I : Álgebra Lineal Anexo 1: Demostraciones Espacios vectoriales Demostración de: Propiedades 89 de la página 41 Propiedades 89- Algunas propiedades que se deducen de las anteriores son:

Más detalles

Matrices equivalentes. El método de Gauss

Matrices equivalentes. El método de Gauss Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar

Más detalles

Introducción al Cálculo Simbólico a través de Maple

Introducción al Cálculo Simbólico a través de Maple 1 inn-edu.com ricardo.villafana@gmail.com Introducción al Cálculo Simbólico a través de Maple A manera de introducción, podemos decir que los lenguajes computacionales de cálculo simbólico son aquellos

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES CÁRDENAS ESPINOSA CÉSAR OCTAVIO racsec_05@hotmail.com Boleta: 2009350122 CASTILLO GUTIÉRREZ

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

5.4. Manual de usuario

5.4. Manual de usuario 5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin

Más detalles

Tema 2. La Información y su representación

Tema 2. La Información y su representación Tema 2. La Información y su representación 2.1 Introducción. Un ordenador es una máquina que procesa información. La ejecución de un programa implica la realización de unos tratamientos, según especifica

Más detalles

Introducción a la Estadística con Excel

Introducción a la Estadística con Excel Introducción a la Estadística con Excel En el siguiente guión vamos a introducir el software Excel 2007 y la manera de trabajar con Estadística Descriptiva. Cargar o importar datos En Excel 2007 podemos

Más detalles

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014 Tecnologías en la Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada

Más detalles

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión... Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación

Más detalles

Herramientas computacionales para la matemática MATLAB: Arreglos

Herramientas computacionales para la matemática MATLAB: Arreglos Herramientas computacionales para la matemática MATLAB: Arreglos Verónica Borja Macías Marzo 2013 1 Arreglos Un arreglo es una estructura que MATLAB utiliza para almacenar y manipular datos. Es una lista

Más detalles

CALCULADORA CIENTÍFICA

CALCULADORA CIENTÍFICA CALCULADORA CIENTÍFICA Existen varios tipos de "calculadoras" La ásica, que cuenta con las operaciones fundamentales y algunas veces raíz cuadrada, esta se usa para cálculos sencillos La sumadora, tiene

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

SISTEMAS DE ECUACIONES LINEALES

SISTEMAS DE ECUACIONES LINEALES SISTEMAS DE ECUACIONES LINEALES INTRODUCCIÓN En el presente documento se explican detalladamente dos importantes temas: 1. Descomposición LU. 2. Método de Gauss-Seidel. Se trata de dos importantes herramientas

Más detalles

Trabajando en la ventana de comandos en el programa gretl.

Trabajando en la ventana de comandos en el programa gretl. Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico. 1 Trabajando en la ventana de comandos en el programa gretl. Gretl permite trabajar mediante comandos y funciones,

Más detalles

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales.

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales. Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales. Introducción Por qué La Geometría? La Geometría tiene como objetivo fundamental

Más detalles

Matemática de redes Representación binaria de datos Bits y bytes

Matemática de redes Representación binaria de datos Bits y bytes Matemática de redes Representación binaria de datos Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo pueden entender

Más detalles

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3 1. NÚMEROS NATURALES POTENCIAS DE UN NÚMERO NATURAL Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3 El factor que se repite es la base, y el número de veces que se repite

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

BREVE MANUAL DE SOLVER

BREVE MANUAL DE SOLVER BREVE MANUAL DE SOLVER PROFESOR: DAVID LAHOZ ARNEDO PROGRAMACIÓN LINEAL Definición: Un problema se define de programación lineal si se busca calcular el máximo o el mínimo de una función lineal, la relación

Más detalles

1 v 1 v 2. = u 1v 1 + u 2 v 2 +... u n v n. v n. y v = u u = u 2 1 + u2 2 + + u2 n.

1 v 1 v 2. = u 1v 1 + u 2 v 2 +... u n v n. v n. y v = u u = u 2 1 + u2 2 + + u2 n. Ortogonalidad Producto interior Longitud y ortogonalidad Definición Sean u y v vectores de R n Se define el producto escalar o producto interior) de u y v como u v = u T v = u, u,, u n ) Ejemplo Calcular

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) Luis José Sánchez 1. Realiza un programa que sume los 100 números siguientes a un número entero y positivo introducido por teclado. Se debe

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1 TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1!"# 1. Introducción En muchos aspectos, el Origin es muy similar a Excel. Y lo es, más que en su apariencia, en la versatilidad y en las funciones que permite

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

I. RELACIONES Y FUNCIONES 1.1. PRODUCTO CARTESIANO { }

I. RELACIONES Y FUNCIONES 1.1. PRODUCTO CARTESIANO { } I. RELACIONES Y FUNCIONES PAREJAS ORDENADAS Una pareja ordenada se compone de dos elementos x y y, escribiéndose ( x, y ) donde x es el primer elemento y y el segundo elemento. Teniéndose que dos parejas

Más detalles