práctica 07 ordenación vectores y matrices ejercicios

Anuncio
7ª Práctica. Matlab
página 1
PROGRAMACIÓN EN MATLAB
PRÁCTICA 07
ORDENACIÓN VECTORES Y MATRICES
EJERCICIOS REPASO PARA EL EXAMEN
EJERCICIO 1.
ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA ........................................... 1
EJERCICIO 2.
CALCULAR EL MÁXIMO Y MINIMO DE UNA MATRIZ ..................................................... 1
EJERCICIO 3.
MATRIZ
CALCULAR EL NÚMERO DE ELEMENTOS POSITIVOS Y NEGATIVOS DE UNA
4
EJERCICIO 4.
CALCULAR EL PRODUCTO DE UNA MATRIZ POR UN VECTOR.................................... 5
EJERCICIO 5.
DIBUJADO DE FUNCIONES EN 3D ............................................................................................ 6
En primer lugar crea un directorio llamado Practica07en tu directorio G:\Informatica1. En este
directorio deberás guardar todos los ficheros y todo el trabajo resultante de esta práctica. Después
arranca el programa MATLAB y coloca como directorio de trabajo o directorio activo el directorio
creado previamente.
EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA
Construya un nuevo subdirectorio que se llame Ejercicio0101 y sitúe, como siempre, el directorio
de trabajo de Matlab dentro.
Probar con un ejemplo el programa que ordena un vector de forma ascendente mediante el
método de la burbuja.
EJERCICIO 2. CALCULAR EL MÁXIMO Y MINIMO DE UNA MATRIZ
Construya un nuevo subdirectorio que se llame Ejercicio0102 y sitúe, como siempre, el directorio
de trabajo de Matlab dentro.
En este ejercicio se calcularán el máximo y el mínimo elemento de una matriz. Para ello
tendremos una función principal, una función para calcular el máximo elemento, y otra función
para obtener el mínimo elemento.
Este ejercicio tendrá una función principal llamada MaximoYMinimo, cuyo encabezado
será:
function MaximoYMinimo(M)
El argumento de entrada de esta función principal será:
M: matriz de la que calcularemos el máximo elemento y el mínimo
Esta función se encargará de:
Escuela Superior de Ingenieros de San Sebastián – Universidad de Navarra
Informática 1 y Fundamentos de Computadores
página 2
1. Preguntar al usuario lo siguiente: “¿Qué desea hacer? Teclee 1 para obtener el máximo
elemento de la matriz M, 2 para obtener el mínimo elemento de la matriz M y 3 para
Terminar:” La opción elegida por el usuario se guardará en una variable que se llame
opciones.
2. Si el usuario desea obtener el máximo elemento de la matriz M, es decir, si opciones vale 1,
se llamará a una función llamada Maximo, donde el argumento de entrada será la matriz M.
3. Si el usuario desea obtener el mínimo elemento de la matriz M, es decir, si opciones vale 2,
se llamará a una función llamada Minimo, donde el argumento de entrada será la matriz M.
4. Si el usuario decide terminar, es decir, si opciones vale 3, se le indicará al usuario el
siguiente mensaje: “Se termina la aplicación”
La función Maximo tendrá el siguiente encabezado:
function [NumeroMax,Fila,Columna]=Maximo(M)
El argumento de entrada de esta función será:
M: matriz de dimensión variable
Los argumentos de salida de esta función serán:
NumeroMax: máximo elemento de la matriz M, inicialmente será el primer elemento
de la matriz M
Fila: fila que ocupa el máximo elemento de la matriz M, inicialmente será la fila 1
Columna: columna que ocupa el máximo elemento de la matriz M, inicialmente será
la columna 1
Esta función devolverá el máximo valor de los elementos de la matriz M, así como la
posición que ocupa dicho elemento dentro de la matriz. De forma que si a la función se le pasara la
siguiente matriz:
Los argumentos de salida serían:
NumeroMax = 59
Fila = 1
Columna = 4
TECNUN
7ª Práctica. Matlab
página 3
El resultado se le indicará al usuario con el siguiente texto:
El elemento máximo de esta matriz es 59 y la posición que ocupa en la matriz es fila 1 y
columna 4.
Nota:
Para obtener el elemento máximo de una matriz habrá que comparar el primer elemento con
todos los que están detrás de él en la matriz hasta encontrar un elemento que sea mayor que el
primero. A continuación, este nuevo elemento se comparará con los siguientes hasta encontrar un
nuevo elemento que sea mayor, y así sucesivamente hasta el final.
La matriz se recorrerá por filas, tal y como se indica en la siguiente figura:
El algoritmo para obtener el elemento máximo de una vector y la posición que ocupa
consiste en comparar el primer elemento del vector con los siguientes hasta que se encuentre un
elemento que sea mayor que el primero. La variable NumeroMax irá almacenando en cada caso el
mayor elemento obtenido hasta el momento, mientras que las variables Fila y Columna irán
almacenando la posición de ese elemento máximo.
En ningún caso podrá utilizarse la función de librería de Matlab max que nos devuelve el
elemento máximo.
La función Minimo tendrá el siguiente encabezado:
function [NumeroMin,Fila,Columna]=Minimo(M)
El argumento de entrada de esta función será:
M: matriz de dimensión variable
Los argumentos de salida de esta función serán:
NumeroMin: mínimo elemento de la matriz M, inicialmente será el primer elemento
de la matriz M
Fila: fila que ocupa el mínimo elemento de la matriz M, inicialmente será la fila 1
Columna: columna que ocupa el mínimo elemento de la matriz M, inicialmente será
la columna 1
Escuela Superior de Ingenieros de San Sebastián – Universidad de Navarra
Informática 1 y Fundamentos de Computadores
página 4
Esta función devolverá el mínimo valor de los elementos de la matriz M, así como la posición
que ocupa dicho elemento dentro de la matriz. De forma que si a la función se le pasara la siguiente
matriz:
Los argumentos de salida serían:
NumeroMin = 1
Fila = 3
Columna = 2
El resultado se le indicará al usuario con el siguiente texto:
El elemento mínimo de esta matriz es 1 y la posición que ocupa en la matriz es fila 3 y
columna 2.
Nota:
Para obtener el elemento mínimo de una matriz habrá que comparar el primer elemento con
todos los que están detrás de él en la matriz hasta encontrar un elemento que sea menor que el
primero. A continuación, este nuevo elemento se comparará con los siguientes hasta encontrar un
nuevo elemento que sea menor, y así sucesivamente hasta el final.
El algoritmo para obtener el elemento mínimo de una vector y la posición que ocupa
consiste en comparar el primer elemento del vector con los siguientes hasta que se encuentre un
elemento que sea menor que el primero. La variable NumeroMin irá almacenando en cada caso el
menor elemento obtenido hasta el momento, mientras que las variables Fila y Columna irán
almacenando la posición de ese elemento mínimo.
En ningún caso podrá utilizarse la función de librería de Matlab min que nos devuelve el
elemento mínimo.
EJERCICIO 3. CALCULAR EL
NEGATIVOS DE UNA MATRIZ
NÚMERO
DE
ELEMENTOS
POSITIVOS
Y
Construya un nuevo subdirectorio que se llame Ejercicio0103 y sitúe, como siempre, el directorio
de trabajo de Matlab dentro.
En este ejercicio se creará una función que, utilizando bucles y bifurcaciones, contará cuántos
elementos positivos y cuántos elementos negativos tiene una matriz.
La función que debe programarse se llamará NegativosYPositivos, y su encabezado será:
TECNUN
7ª Práctica. Matlab
página 5
function [neg,pos]=NegativosYPositivos(A)
El argumento de entrada de esta función será:
A: matriz de elementos positivos y negativos
Los argumentos de salida de esta función serán:
neg: número de elementos negativos que tiene la matriz A
pos: número de elementos positivos que tiene la matriz A
Esta función se encargará de contar cuántos elementos negativos y positivos tiene la matriz A.
De modo que si la matriz A es:
El resultado se le indicará al usuario con el siguiente texto:
La matriz A contiene 5 elementos negativos y 20 elementos positivos.
EJERCICIO 4. CALCULAR EL PRODUCTO DE UNA MATRIZ POR UN VECTOR
Construya un nuevo subdirectorio que se llame Ejercicio0104 y sitúe, como siempre, el directorio
de trabajo de Matlab dentro.
En este ejercicio se programará una función que multiplique una matriz por un vector.Este
ejercicio tendrá una función principal llamada MatrizPorVector, cuyo encabezado será:
function MatrizPorVector(A,v)
Los argumentos de entrada de esta función principal serán:
A: matriz a multiplicar por el vector v
v: vector a multiplicar por la matriz A
Esta función se encargará de:
5. Si la matriz A se puede multiplicar por el vector v, se llamará a la función Multiplicar,
donde los argumentos de entrada serán la matriz A y el vector v.
6. Si no se pueden multiplicar se le indicará al usuario el siguiente mensaje: “La matriz A no
se puede multiplicar por el vector v. Las dimensiones no son correctas.”
La función Multiplicar tendrá el siguiente encabezado:
function b=Multiplicar(A,v)
Escuela Superior de Ingenieros de San Sebastián – Universidad de Navarra
Informática 1 y Fundamentos de Computadores
página 6
Los argumentos de entrada de esta función principal serán:
A: matriz a multiplicar por el vector v
v: vector a multiplicar por la matriz A
El argumento de salida de esta función será:
b: matriz A por vector v
De modo que si yo multiplico la siguiente matriz A, por el vector v:
X
=
EJERCICIO 5. DIBUJADO DE FUNCIONES EN 3D
Construya un nuevo subdirectorio que se llame Ejercicio0105 y sitúe, como siempre, el directorio
de trabajo de Matlab dentro.
El programa que debe desarrollar a continuación debe guardarlo dentro de un fichero de
instrucciones llamado surf1.m.
Utilizando el comando Surf, debe dibujar las funciones tridimensionales Z1 y Z2:
Z1 = 5 ⋅ x 2 + 3 ⋅ y 2
y
Z 2 = x2 − y2
Para ello deberá seguir los siguientes pasos:
1. Crear un vector x1, cuyo valor inicial y final sean -1 y 1 respectivamente, y con un paso de
0.1.
2. rear un vector y1, cuyo valor inicial y final sean -1 y 1 respectivamente, y con un paso de
0.1.
3. Crear la matriz Z1, cuyos valores se correspondan con los valores de la función matemática
concretados para los valores definidos en los vectores x1 e y1.
4. Crear un vector x2, cuyo valor inicial y final sean -2 y 2 respectivamente, y con un paso de
0.03.
5. Crear un vector y2, cuyo valor inicial y final sean -2 y 2 respectivamente, y con un paso de
0.03.
6. Crear la matriz Z2, cuyos valores se correspondan con los valores de la función matemática
concretados para los valores definidos en los vectores x2 e y2.
7. Utilizando la función surf dibujar las matrices Z1 y Z2 en una misma gráfica.
TECNUN
7ª Práctica. Matlab
página 7
La figura que debe obtenerse es la siguiente, incluyendo en azul título y lábeles para los ejes
x,y,z:
Figura 2: Z1 y Z2 utilizando la función surf
Escuela Superior de Ingenieros de San Sebastián – Universidad de Navarra
Descargar