Ejercicios Vectores y Matrices

download Ejercicios Vectores y Matrices

of 13

description

Ejercicios Matlab

Transcript of Ejercicios Vectores y Matrices

Universidad Tcnica de Loja Escuela de Ingeniera Qumica Introduccin a MATLAB Curso Marzo de 2007 Agosto de 2007 MATRICES Y VECTORES 4 1 Dados los vectores x = [3 2 6 8] y y = , 3 5 Obtenga la suma de los elementos de x y y Obtenga un vector z cuyos componentes sean los elementos del vector x elevados a la potencia especificada por cada elemento correspondiente en el vector y. Dividir cada elemento de y para cada elemento correspondiente de x. Obtenga un vector z cuyos componentes sean los elementos del vector x multiplicados por cada elemento correspondiente del vector y. Ejecutar la operacin x T y z Obtener un vector cuyos componentes: Se encuentren entre 5 y 25, y separados por 5 unidades. Sean los nmeros entre 10 y 30 separados por una unidad. 6 nmeros entre 0 y 20 igualmente espaciadosT

P001.

a. b. c. d. e. P002. a. b. c.

P003. Construir una matriz A de 2x3 cuyas filas son los 6 primeros impares consecutivos. a. Anular el elemento (2,3) b. Obtener la matriz B = A c. Construir una matriz C, formada por la matriz B y la matriz identidad de orden 3 adosada a su derecha d. Construir una matriz D extrayendo las columnas impares de la matriz C e. Construir una matriz E formada por la interseccin de las dos primeras filas de C y sus columnas tercera y quinta f. Construir una matriz F formada por la interseccin de las dos primeras filas y las tres ltimas columnas de la matriz C g. Construir una matriz diagonal G tal que los elementos de su diagonal principal son los mismos que los de la diagonal principal de D h. Calcular el orden de la matriz C P004. a. b. c. Dada una matriz M cuadrada aleatoria uniforme de orden 3: Obtener su inversa, su transpuesta y su diagonal Transformarla en una matriz triangular inferior y en otra superior. Obtener la suma de los elementos de la primera fila y la suma de los elementos de la diagonal. d. Extraer la submatriz cuya diagonal son los elementos a y a y extraer tambin la submatriz cuyos elementos de la diagonal son a y a .11 33 11 22

P005. a. b. c. d. e. f.

Dados x = [3 1 5 7 9 2 6] , explicar el significado de los siguientes comandos: x(3) x(1:3) x(1:end) x(1:end-1) x(6:-2:1) x([1 6 2 1 1])

3 1 6 P006. Dados los arreglos x = [1 4 8] , y = [2 1 5] , y A = , determine cul 5 2 7 de los siguientes planteamientos no se ejecutar correctamente: a. A [ x ' y' ] b. [ x ; y' ] c. [ x ; y] d. A - 3 1 0 1 2 3 1 1 P007. Ingresar las matrices A = , B = 1 0 4 , C = 5 5 y 1 2 1 1 3 D= , y evaluar cada una de las siguientes expresiones. Explicar cualquier 2 2 2 mensaje de error: a. b. c. d. e. f. g. h. i. 2*A+3*C A-4*D B^2 B.^2 A*B B*A C*D C.*D A*B+D

P008. Considere los escalares x 1 = 2 , x 2 = 1 , x 3 = 4 , y los vectores 1 2 1 1 1 0 2 1 a1 = , a 2 = , a 3 = , a 4 = 2 2 3 0 3 0 3 0 a. Use MATLAB para calcular la combinacin lineal x 1a 1 + x 2 a 2 + x 3 a 3 P009. Considere los escalares x 1 = 2 , x 2 = 3 , x 3 = 2 , y los vectores

1 0 1 3 , v = 4 , v = 1 v1 = 2 3 2 5 2 b. Use MATLAB para calcular la combinacin lineal x 1 v 1 + x 2 v 2 + x 3 v 3 c. Forme el vector fila x = [ x 1 x 2 vector-matriz xV . 1 1 2 3 3 2 2 0 0 , Y = 1 P010. Crear las matrices X = 5 5 6 3 1 0 0 2 0 5 entre arreglos para responder cada uno de los literales: 2 2 6 2 3 0 3 0 3 0 . Usar operaciones 1 5v1 x 3 ] y la matriz v = v 2 y calcular el producto v 3

T

T

T

a. Crear una matriz A cuyos elementos i,j son a ij = 2x ij 3y ij

b. Crear una matriz A cuyos elementos i,j son a ij = x ij

2

c. Crear una matriz A cuyos elementos i,j son a ij = y ij 3d. Crear una matriz A cuyos elementos i,j son a ij = x ij y ij e. Crear una matriz A cuyos elementos i,j son a ij = ex ij 2 + y ij 2

2

2

P011. Sea la matriz cuadrada1 1 0 A = 0 2 3 3 3 1 Construir una matriz aadiendo la matriz identidad de rango 3 a la derecha de la matriz A. Sumar a la tercera fila, la primera fila multiplicada por 3. Cambiar la primera columna de A por la tercera. Construir una nueva matriz cuyas columnas sean las columnas primera y tercera de A. Construir una nueva matriz cuyas filas sean las columnas primera y tercera de A.

a. b. c. d. e.

P012. Sea la matriz cuadrada1 4 0 A = 0 2 3 3 3 7

a. b. c. d.

Hallar el valor mnimo dentro de cada fila de A. Ordenar los elementos de A en orden descendente dentro de cada columna. Ordenar los elementos de A en orden ascendente dentro de cada fila. Formar una lista con los elementos de A ordenada de forma ascendente.

e. Hallar el mximo en valor absoluto de los elementos de la matriz A. P013. En una sola orden de MATLAB crear una matriz 3 x 5 cuyo nico elemento sea el 7.

P014. Con una sola orden de MATLAB crear una matriz aleatoria 4 x 4 de nmeros reales entre -5 y 5. P015. Considerar la siguiente orden de MATLAB: A = magic(5). En una sola orden: a. Definir una matriz B formada por las filas pares de la matriz A. b. Definir una matriz C formada por las columnas impares de la matriz A. c. Definir una vector d formada por la tercera columna de la matriz A. d. Eliminar la tercera fila de la matriz A. P016. Sea x = (0:pi/2:2*pi). Con una sola orden de MATLAB crear una matriz cuya primera fila es x, su segunda fila es el seno de cada elemento de x y cuya tercera fila el coseno de cada elemento de x. P017. Definir un vector a formado por los cuatro primeros nmeros impares y otro b formado por los cuatro primeros nmeros pares de varias formas distintas. Emplearlos para construir la matriz 2 4 6 8 6 12 18 24 A= 10 20 30 40 14 28 42 56 P018. Construir una matriz n x n, C = (cij) a. Con cij = ij; b. Con cij = cos(ij); P019. Construir de distintas formas la matriz1 2 A= 3 4 1 2 3 4 1 2 3 4 1 2 3 4

P020. En una sola instruccin, cambiar todos los valores de la diagonal de una matriz cuadrada a cero. P021. En una sola instruccin, sustituir todos los valores de la diagonal de una matriz cuadrada por los elementos de un vector dado. P022. Ordenar los elementos de una matriz del menor al mayor manteniendo su forma (indicacin: emplear la orden reshape.) P023. En una sola instruccin, poner a cero todos los elementos negativos de una matriz.

P024. En una sola instruccin, poner a cero todos los elementos de una matriz que estn entre -1 y 1. (La conjuncin lgica es &). P025. De tres formas distintas (cada una en una sola instruccin), averiguar el nmero de elementos de una matriz, de forma que al final tengamos un nmero. P026. Resolver los siguientes sistemas de ecuaciones lineales:

OPERADORES RELACIONALES P027. Dados los escalares a = 5, b = 2, c = -4 , determinar los valores de verdad de las proposiciones.a. b. c. d. e.

(a < b and a > c) or (b > c ) (a b and b c ) and (a > c ) or (a > b ) or (a > c ) or (a > b ) or ((a > c ) and (b < a )) (a < b and a > c) or (b > c )

PROGRAMACIN P028. Escribir un programa que permita determinar si un nmero entero dado es par o impar. (Utilizar el operador mod) P029. Utilizando el operador relacional > (mayor que), escribir un archivo.m que permita definir si un nmero a es mayor que un nmero b. El programa debe admitir ingresar los nmeros a y b, e imprimir el resultado a es mayor que b, o a es menor que b, o a es igual a b. P030. Escribir un archivo.m que de como resultado el menor de tres nmeros a, b, c. Utilice la sentencia de control ifelseifend P031. Resolver E3 utilizando la sentencia switchcaseotherwiseend P032. Crear un archivo.m que calcule las races de la ecuacin: ax2 + bx + c = 0. Teniendo en cuenta los siguientes casos:1. Si a=0 y b=0, imprimiremos un mensaje diciendo la ecuacin es degenerada. 2. Si a=0 y b0, existe una raz nica con valor c / b. 3. En los dems casos utilizaremos la frmula siguiente:

xi =

b b 2 4ac 2a

La expresin d=b2-4ac se denomina discriminante.

-

Si d0 entonces hay dos races reales Si d> t=linspace(0,2*pi,4000); >> x=cos(5*t); >> y=sin(7*t); >> comet(x,y)

P071. Representar la superficie cuya funcin explcita es la siguiente:

a. z =

sin x 2 + y 2 x 2 + y2

(

), - 2 x 2, - 2 y 22 2

b. z = sin( x + y) exp x + y , - 2 x 2, - 2 y 2 c. z = 3x 2 + y 2 xy + x + 2 y, - 2 x 2, - 2 y 2 1 d. z = x 2 2 y 2 + xy 2x + y, - 2 x 2, - 2 y 2 2

PROBLEMAS ADICIONALES P072. Centro de masas de un sistema de partculas

Realizar un programa en Matlab que calcule el centro de masas de un sistema de partculas en 3D. Inters: Sumatorios y medias.P073. Solucin de una ecuacin por Newton-Raphson

Realizar un programa en Matlab que calcule la solucin de una ecuacin de forma iterativa utilizando el mtodo de Newton-Raphson. Inters: Uso de funciones y clculos iterativos.

P074. Producto escalar y vectorial

Realizar un programa en Matlab que calcule el producto escalar y vectorial de dos vectores en 3D. Inters: Manipulacin y operacin con vectores.P070. Resolucin de sistemas de ecuaciones lineales

Realizar un programa en Matlab que resuelva un sistema de ecuaciones lineales para el caso de 3 ecuaciones con 3 incgnitas. Utilizar por una parte las facilidades de matlab (operador \) as como la programacin directa del mtodo de Cramer. Inters: Bucles anidados y manipulacin de matricesP075. Integral aproximada por rectngulos

Realizar un programa en Matlab que calcule la integral aproximada de una funcin utilizando una aproximacin por rectngulos. Inters: Resolucin numricaP076. Simulacin dinmica

Realizar un programa en Matlab que simule dinmicamente un pndulo por el mtodo de Euler. Las ecuaciones diferenciales que rigen la posicin de un pndulo, sometido a rozamiento, vienen dadas por:dv g = sin( ) v dt l d =v dt

siendo v la velocidad angular (en rad/s), el ngulo (en radianes), g la aceleracin de la gravedad (9.8 m/s2), l la longitud del pndulo y el coeficiente de rozamiento. Para realizar la simulacin en el ordenador de dichas ecuaciones diferenciales, existen mtodos de integracin que nos dan de forma iterativa los valores que van tomando las variables que estn diferenciadas (en nuestro caso, v y ). Uno de los mtodos ms sencillos se denomina mtodo de Euler. Aplicando dicho mtodo al caso dado, se puede obtener que el ngulo a lo largo del tiempo se puede ir calculando de forma iterativa de la siguiente manera:g v j +1 = v j h sin( j ) + v j l j +1 = j + hv j t j +1 = jh

ZOOM

(tj,j) (tj+1,j+1)

donde h se denomina paso de integracin, que debe elegir el usuario, y j indica el punto que estamos calculando (j=1,2,3,...), siendo las condiciones iniciales: v1=0 (soltamos el pndulo sin darle impulso), 1 elegido por el usuario, t1=0, siendo t el tiempo. Realizar un programa que pida al usuario la longitud del pndulo, el ngulo inicial (en grados), el coeficiente de rozamiento, el paso de integracin y el tiempo mximo de simulacin. El programa generar la evolucin del pndulo a lo largo del tiempo en forma de puntos (t,) hasta que se llegue al tiempo mximo. Finalmente, el programa dibujar a lo largo del tiempo. Nota: El valor de h es funcin del tipo de problema al que se aplica. Si se elige una longitud del pndulo de 3 m, un ngulo inicial de 30 y un coeficiente de rozamiento de 0.4, un valor adecuado de h podra ser 0.01 para una simulacin de 5 s.P077. Acotacin del mnimo de una funcin Realizar una funcin en Matlab que aplique el mtodo de Swann a una funcin. Muchos mtodos deoptimizacin escalar precisan un intervalo donde la funcin a optimizar sea unimodal. Ello significa que la funcin tiene un nico mnimo, por lo que la forma de la funcin ser como aparece en la figura de la derecha. Existen mtodos para, dado un punto cualquiera x1, encontrar un intervalo [a,b] en el cual haya un mnimo local. Uno de estos mtodos consiste en lo siguiente: Dado un punto x1 y un valor , la primera fase consiste en x4 x1- x1 x1+ x3 averiguar en qu direccin la funcin decrece. Si f(x1 - ) > f(x1) > f(x1 + ) (como en el dibujo), entonces la funcin x2 decrece hacia la derecha, por lo que se considera como Intervalo que contiene positivo. Si f(x1 - ) < f(x1) < f(x1 + ), entonces la funcin al mnimo decrece hacia la izquierda, por lo que se cambia a de signo. Existen otros dos casos. Si f(x1 - ) > f(x1) < f(x1 + ) entonces el intervalo es [x1 , x1 + ] y no es necesario realizar ms clculos; y si f(x1 - ) < f(x1) > f(x1 + ) entonces la funcin no es unimodal y devolvemos un mensaje indicndolo. Sin prdida de generalidad, supongamos que la funcin decrece hacia la derecha y llamemos x2=x1+ y k=3. A continuacin, la segunda fase realiza de forma iterativa un clculo del siguiente punto y una comprobacin para ver si se ha encontrado el intervalo de la siguiente manera: 1. xk = xk-1 + 2k-2

2. Si f(xk)>f(xk-1), entonces el intervalo es [xk-2 , xk] En caso contrario, hacemos k=k+1 y volvemos al paso 1 Vase en la figura una explicacin grfica del procedimiento. El procedimiento iterativo debe incluir un lmite mximo de iteraciones N, para el caso de que no se encuentre dicho intervalo.

Realizar una funcin (llamada acotar___) en Matlab que devuelva el intervalo correspondiente cuando se le pasan como argumentos el punto inicial x1, el valor y el mximo nmero de iteraciones N. La funcin que se debe considerar es f(x) = (100 x)2 y se debe probar el funcionamiento de la funcin ejecutando [a,b]=acotar___(30,5,10) donde los argumentos son respectivamente x1, y N.