CC 1000 Herramientas Computacionales para Ingeniera y Ciencias

  • Slides: 14
Download presentation
CC 1000 Herramientas Computacionales para Ingeniería y Ciencias Clase 6 – MATLAB 2 Vectores

CC 1000 Herramientas Computacionales para Ingeniería y Ciencias Clase 6 – MATLAB 2 Vectores Otoño 2016

Vectores filas y columnas Los vectores pueden ser de dos tipos: Vector fila (separado

Vectores filas y columnas Los vectores pueden ser de dos tipos: Vector fila (separado por espacios o comas) >> x = [10 20 30] x = 10 20 30 Vector columna (separados por punto y coma o cambios de líneas) >> y = [3; 2; 1] y= 3 2 1 2

Producto interno de vectores Una operación matemáticamente importante es el producto interno entre un

Producto interno de vectores Una operación matemáticamente importante es el producto interno entre un vector fila y un vector columna: y= x = 10 20 30 3 2 1 >> x * y % 10*3 +20*2 + 30*1 ans = 100 3

La norma de un vector (módulo) La operación de transposición (x’) transforma un vector

La norma de un vector (módulo) La operación de transposición (x’) transforma un vector x de fila a columna y viceversa. Norma euclidiana de un vector [a, b, c]: >> norma = sqrt( x * x' ) norma = 37. 4166 >> sqrt(sum(x. ^2)) >> sqrt( sum(x. *x)) 4

Producto componente a componente En MATLAB, una operación mucho más usada es el producto.

Producto componente a componente En MATLAB, una operación mucho más usada es el producto. * que se aplica a dos vectores del mismo tipo y tamaño, y el resultado es el vector de los productos de las componentes respectivas. >> x = [5 3 2 6]; >> y = [2 1 4 3]; >> z = x. * y z = 10 3 8 18 5

Gráfico de un producto de funciones Graficar x sin(x) y x cos(x) para x

Gráfico de un producto de funciones Graficar x sin(x) y x cos(x) para x ∈ [0, 6π] Usando linspace(inicio, fin, npuntos) >> x=linspace(0, 6*pi, 100); %100 puntos por defecto >> y=x. * sin(x); >> z = x. *cos(x); >> plot(x, y, ’g’, x, z, ’r’) >> grid >>plot(x, y, ’g’) >>hold >>plot(x, z, ’r’) 6

Ejemplo: Corregir un test de alternativas Respuestas del 1 al 5, un cero indica

Ejemplo: Corregir un test de alternativas Respuestas del 1 al 5, un cero indica respuesta omitida. Operador == compara por igualdad, retorna 0 o 1. 7

Ejemplo: Corregir un test de alternativas Respuestas del 1 al 5, un cero indica

Ejemplo: Corregir un test de alternativas Respuestas del 1 al 5, un cero indica respuesta omitida. Operador == compara por igualdad, retorna 0 ó 1. >> pauta = [4 2 5 1 4 3 2 5 1 3 2] pauta = 4 2 5 1 4 3 2 5 1 3 2 >> resp = [4 0 5 2 4 0 2 3 1 0 1] resp = 40524023101 >> puntaje = sum( resp == pauta ) puntaje = 5 8

Ejercicio Repetir lo anterior, descontando 1/4 de punto por cada respuesta incorrecta (exceptuando las

Ejercicio Repetir lo anterior, descontando 1/4 de punto por cada respuesta incorrecta (exceptuando las omitidas). 9

Solución 1 >> total = length(pauta) total = 11 >> correctas = sum(resp==pauta) correctas

Solución 1 >> total = length(pauta) total = 11 >> correctas = sum(resp==pauta) correctas = 5 >> omitidas = sum(resp==0) omitidas = 3 >> errores = total - correctas - omitidas errores = 3 >> puntaje = correctas - errores/4 puntaje = 4. 2500 10

Solución 2 >> puntaje = sum(resp==pauta) (1/4)*sum(resp~=pauta & resp~=0) puntaje = 4. 2500 Otros

Solución 2 >> puntaje = sum(resp==pauta) (1/4)*sum(resp~=pauta & resp~=0) puntaje = 4. 2500 Otros operadores: >= <= > < 11

Problema: ¿ Cuántos valores sobrepasan un límite dado ? Generando números aleatorios: rand() ¿Qué

Problema: ¿ Cuántos valores sobrepasan un límite dado ? Generando números aleatorios: rand() ¿Qué tan aleatoria es la función rand()? ¡estadísticas!: ¿Cuántos valores igualan o superan 0. 5 si se generan 10 números ? (probar con 100, 1000 y 10000 números) >> y = rand(1, 100) >> sum(y>=0. 5) Hacer lo mismo para ver cuántos caen en los tramos [0, 0. 25) [0. 25, 0. 5) [0. 5, 0. 75) [0. 75, 1. 0) >> sum(y < 0. 25) >> sum(y >= 0. 25 & y < 0. 5) 12

Sub-secuencias de una lista A veces podríamos querer obtener algunos elementos (contiguos) de una

Sub-secuencias de una lista A veces podríamos querer obtener algunos elementos (contiguos) de una lista >>y = 1: 2: 100; >> y(5: 10) ans 9 11 13 15 17 19 13

Problema Se tiene un vector area con el área de las 15 regiones de

Problema Se tiene un vector area con el área de las 15 regiones de Chile ordenadas por número de región, siendo la última la Región Metropolitana Además se tiene un vector densidad que tiene la densidad poblacional del área metropolitana y de las regiones V a la X. Calcular la cantidad total de habitantes en las regiones V, VI y VII sumadas. >> sum(densidad (2: 4). *area (5: 7)) 14