ejercicios matlab

Upload: miguel-quisbert

Post on 20-Jul-2015

943 views

Category:

Documents


1 download

TRANSCRIPT

Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJCEjercicios de Matlab. Entrega 1.Etapa 1 Familiarizacin1. IdentificadoresCules de estos identificadores son vlidos y cules no? En el caso de no serlo, por qu?totaltotal acumuladoresultado-1resultado_1resultado 1ResultadoresultaDo1resultadoel_valor_total_de_la_suma_de_los_operandos_esel_valor_total_de_la_suma_esel_valor_total_de la_suma_esresul*1int8doubleinteger1vlido2. ExpresionesEscribe las siguientes expresiones aritmticas en Matlab. Comprubalas con los valores de prueba de la columna derecha.A. rea de un tringuloarea=basealtura2rea base altura2,5 1 34,65 6,2 1,5B. Energa relativistaE=mc2donde la velocidad de la luz c = 300 000e m1,8x10525,58x1056,2C. Ecuacin de segundo gradox=b!.b24 ac2ax a b c1 1 0 -10,22 13,95 6,2 1,5? 1 -3 2? 1 0 -1? 1 -2 1? 1 -10 25? 1 1 1? 1 0 0? 2 1 2D. Polinomioy=x5+5x44x3+2x29x+15E. Y qu nombre pongo a sta?z= 5x4y3x2+6y4.3x228123yJos Luis Esteban Ejercicios de Matlab V1.169 Pg. 1Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC3. Manipulacin de matricesA)Almacena en memoria principal la siguiente matriz, en una variable que se llame M1:( 1 2 33 4 43 7 2)B)Calcula la traspuesta de M1 y gurdala en M2C)Calcula el producto elemento a elemento de M1 y M2D)Calcula la suma de M1 y M2E)Calcula la divisin elemento a elemento de M1 y M2F)Calcula el producto matricial de M1 y M2 y gurdalo en prodM1M2G)Calcula el producto matricial de M2 y M1 y gurdalo en prodM2M1H)Calcula la divisin matricial de M1 y M2I)Cambia el valor del elemento central de M1 a 9J)Guarda en una matriz llamada esquinasM1 de tamao 2x2 los elementos de las esquinas de M1K)Guarda en un vector fila v los elementos de la diagonal principal de M1L)Guarda en un vector columna w los elementos de la diagonal secundaria de M2M)Calcula el producto escalar de v y wN)Calcula el producto vectorial de v y wO)Guarda en fila1 los elementos de la primera fila de la matriz M1P)Guarda en columna1 los elementos de la primera columna de la matriz M1Q)convierte fila1 en un vector columna y columna1 e un vector fila.R)Genera un vector llamado angulos que tenga los ngulos mtiplos de 30 entre 30 y 360S)Aade el elemento 0 en la primera posicin a angulosT)Extrae de ese vector los elementos con ndice par (es decir, el segundo, el cuarto, el sexto, etc) y gurdalos en angulosParU)Extrae de ese vector los elementos con ndice impar (es decir, el primero, el tercero, el quinto, etc) y gurdalos en angulosParV)Concatena a angulosPar el vector angulosImpar4. Matrices multidimensionalesEn una urbanizacin hay 4 bloques de pisos, de 6 plantas cada uno. En cada una de las plantas hay 5 pisos, con un nmero diferentes de habitaciones cada uno. Todas las puertas nmero 1 y 2 son pisos de dos habitaciones, las puertas 3 y 4 son pisos de tres habitaciones y las puertas 5, tiene cuatro habitaciones. Se pide: Almacenar el nmero de habitaciones de cada piso en una matriz de forma adecuada Imprimir bloque por bloque el nmero de habitaciones de cada piso. Imprimir el nmero de habitaciones de todos los pisos de la planta 4 del bloque 2. Imprimir el nmero de habitaciones del piso 3 de la planta 2 del bloque 3. Calcular e imprimir el nmero total de habitaciones de cada bloque. Calcular e imprimir el nmero total de habitaciones de la urbanizacin.5. DistanciaDefine dos vectores de tres elementos (x, y, z), que representan las coordenadas 3D de dos puntos en el espacio. Calcula la distancia que hay entre ambos puntos.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 2Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC6. DiferenciasCrea el vector V con los valores 3, 4, 9, 5, 2, 1, 5, 3, 9, 8, 4, 6, 2, 1, 6, 5.Calcula un nuevo vector D con las diferencias entre los elementos consecutivos, de forma queDi=Vi+1ViEl resultado ha de ser 1, 5, -4, -3, -1, 4, -2, 6, -1, -4, 2, -4, -1, 5, -1.7. Operaciones en MatlabA)Sean los vectores a=[2 4 3 3] y b=[5 2 3 4]. Calcula todas las relaciones entre sus elementos (igualdad, mayor o igual, mayor,...).B)Con dos de los vectores cualesquiera que te dieron como resultado alguna de las operaciones anteriores, aplica los operadores AND, OR y NOT.C)Genera un vector entre 0 y 2*pi con un salto de pi/8. Calcula e imprime todas las magnitudes trigonomtricas disponibles en Matlab.D)Calcula el mximo y la posicin que ocupa dicho elemento del vector b del apartado A.E)Sea x=5.678. Calcula todos los posibles redondeos de x disponibles en Matlab.F)Sea el vector c=[5 3 2 7 4 11 25 -4 1]. Calcual el menor y el mayor de los elementos del vector. Guarda en COrden el vector ordenado de c.G)Genera una matriz de ceros de tamao 50x50. Coloca unos en la posicin (3,4), (32,25) y (49,49). Busca a continuacin en esta matriz todos los elementos distintos de cero. Convierte esta matriz en una matriz dispersa.H)Almacena en memoria principal la siguiente matriz, en una variable que se llame M1:( 1 2 33 4 43 7 2)I)Calcua el determinante de la matriz y calcula la matriz inversa guardndola en M1inv.J)A continuacin, guarda en el fichero result.txt la matriz M1inv en formato ascii.K)Lee este fichero y guarda el contenido en la matriz M1inv2.L)Haz diferentes pruebas de lectura y escritura de matrices en ficheros binarios.8. Tabla de conversin de temperaturasLa relacin de diversas escalas de temperatura con la escala Celsius (C) es la siguiente:Fahrenheit: F =95C32Kelvin: K = C+273,15Reamur: R =810CConstruye una tabla de cuatro columnas. La primera contendr temperaturas Celsius desde 0 hasta 100, de medio en medio grado, a segunda contendr la temperatura Fahrenheit, la siguiente ser Kelvin y, por ultimo, Reamur. La tabla tendr el siguiente aspecto:0.0000 32.0000 0.0000 273.15000.5000 32.9000 0.4000 273.65001.0000 33.8000 0.8000 274.15001.5000 34.7000 1.2000 274.65002.0000 35.6000 1.6000 275.1500... ... ... ...Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 3Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC9. Ecuacin de una recta en el planoEscribe dos vectores que representan dos puntos en el plano,(x1, y1) ,(x2, y2) y calcula el vector de coeficientes (a, b, c) de la ecuacin general de la recta ax+b y+c=0 que los une. El clculo de los coeficientes se realiza mediante las expresiones: a=y2y1b=x1x2c=y1x2y2x110. SumatorioEscribe una expresin que calcule la suma de todos los nmeros naturales hasta n.11. FactorialEscribe una expresin que calcule el factorial de n.12. Deteccin de palndromosUna secuencia es palindrmica o capica si leerla de principio a final es equivalente a leerla de final a principio. Escribe una expresin que calcula si una cadena c es una secuencia palindrmica.13. DNILa letra del DNI se obtiene de la siguiente manera: se calcula el resto de dividir el valor numrico del DNI entre 23. La letra correspondiente a dicho resto en esta tabla es la que corresponde al DNI.Resto 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22Letra T R W A G M Y F P D X B N J Z S Q V H L C K EElabrese una expresin que calcula la letra a partir de un nmero de DNI.14. rea y permetro de polgonos arbitrariosEl rea de un polgono cualquiera formado por n puntosPi=( xi , yi) puede calcularse mediante:A=12i=1n(xi yi1xi1 yi)Para simplificar la anterior expresin, y el correspondiente algoritmo de clculo, hemos asumido que el primer punto del permetro es el mismo que el ltimo, es decir, P0=PnElabrese un programa que solicita una lista de puntos (pares de coordenadas) y calcula el rea y el permetro del polgono correspondiente. Comprubese el resultado con figuras conocidas.15. ChargaffLa ley de Chargaff dice que en el ADN de un organismo la cantidad de Adenina es la misma que la de Timina, y la de Citosina es la misma que la de Guanina. Dada una secuencia de nucletidos del estilo de ATTACCAGTACA... podemos comprobar si cumple dicha ley de la siguiente forma:Contamos la cantidad de A, T, C y G presentes en la cadena y calculamos los coeficientesa=N ANTN A+NT yc=NCNGNC+NGdonde N Xindica la cantidad de nucletidos del tipo X presentes en la secuencia.Partiremos de una cadena que contiene una cantidad indeterminada de caracteres, que solo pueden ser A, T, G o C. Calcula a partir de dicha cadena los coeficientes a y c.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 4Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC16. Derivacin de polinomiosEs posible representar un polinomio cnxn+cn1xn1+...+c2x2+c1x+c0mediante un vector que contiene los coeficientes de ste, de mayor a menor orden:(cn , cn1 , ... , c2 , c1 , c0) .La derivada del monomio cixies icixi1,y la del polinomiocnxn+cn1xn1+...+c2x2+c1x+c0esncn xn1+( n1)cn1xn2+...+3 c3x2+2c2x+c1,o en forma de vector de coeficientes(ncn, (n1)cn1, ... , 2c2, c1) .Escribiremos una expresin en la que partiremos de un vector de coeficientes que representa a un polinomio, y calcularemos el vector de coeficientes de la derivada de dicho polinomio.17. Solucin de sistemas de ecuaciones linealesUn sistema de ecuaciones lineales puede representarse mediante una expresin matricial:a11x1+a12x2+a13x3=b1a21x1+a22x2+a23x3=b2a31x1+a32x2+a33x3=b3-(a11a12a13a21a22a23a31a32a33)(x1x2x3)=(b1b2b3)- AX=BMultiplicando la inversa de A por la izquierda: A1AX=A1BresultaX=A1B, por lo que es posible relolver sistemas de ecuaciones lineales mediante la ltima expresin.Define la matriz A y el vector B que representan el sistema lineal, y calcula la solucin X. Hazlo con un sistema que puedas resolver a mano para corroborar que los resultados son correctos.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 5Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJCEjercicios de Matlab. Entrega 2.Etapa 2 Ficheros y Grficos18. Grfica del cosenoRepresenta grficamente el coseno de un ngulo de 0 a 2 con un salto de /8. Titula adecuadamente cada uno de los ejes as como la grfica resultante. A continuacin aade a esa grfica la del seno de . Coloca leyendas para distinguir ambas grficas. Aade un mallado. Edita interactivamente las propiedades de las lneas para cambiar los colores, grosores y estilos de punto de las grficas que has generado.19. Superficie 3D:Representa la superficie 3Dz=sin(. x2+y2). x2+y2entre -10 y 10 para los valores x e y. Para ello debers generar los vectores x e y con la precisin que necesites (puedes probar para un salto de 0.5 y de 0.1). A continuacin generar la malla en el plano xy utilizando meshgrid. Posteriormente representa la grfica con ayuda de mesh y luego con surf. Prueba tambin con plot3d. Adems, prueba a girar la grfica y editar sus propiedades.20. Movimiento brownianoEl botnico Robert Brown, durante sus observaciones microscpicas, encontr que las partculas pequeas se encontraban en continuo movimiento de tipo aleatorio. Cada pequeo salto de una partcula pueden tener lugar en cualquier direccin con la misma probabilidad, mientras que la magnitud del salto sigue una distribucin normal.Si representamos cada salto de una partcula en coordenadas polares planas (ngulo y magnitud ), el ngulo tiene una distribucin uniforme en el intervalo [0, 2), mientras que la magnitud tiene una dristribucin normal de media y de desviacin tpica .Crearemos un vector theta de ngulos de salto y un vector rho de magnitudes de cada salto utilizando los correspondientes generadores de nmeros aleatorios. Supondremos que la partcula se encuentra inicialmente en las coordenadas (0,0) y calcularemos su secuencia de posiciones tras cada salto. Representaremos grficamente el camino de la partcula. Comprobaremos el resultado obtenido con distintos valores de y de .Una vez conseguido que funcione con una partcula, realizaremos el clculo con n partculas simultaneamente.21. Tratamiento de erroresDada una variable T de la que se obtienen n medidas experimentales, se define la estimacin del error de la medida comoAT=3s.nPartiendo de un conjunto de medidas de una variable que se encuentra almacenado en un fichero de texto, calcular la media de las medidas y la estimacin de su error.22. Los ltimos sern los primerosEscribe un programa que lee una lista de nmeros reales a partir de un fichero. El programa los almacena en un vector, y presenta la lista en pantalla en orden inverso al que tienen en el fichero.Define el formato que tendr el fichero y pon un ejemplo de cul sera su aspecto al abrirlo con un editor.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 6Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC23. Tratamiento de errores derivadosDada una variable z que depende de otras variables q1, q2, ..., qn , la estimacin del error z a partir de los errores medidos q1, q2, ..., qn se calcula mediante Az=i zqiAqi, es decir Az= zq1Aq1+ zq2Aq2+...+ zqnAqnUn fabricante de depsitos cilndricos desea estimar el error en su volumen V, pero medir ste en cada depsito es una operacin costosa, por lo que nicamente mide su radio r y su altura h. As, el clculo ser AV=VrAr+VhAhComo el volumen de un cilindro se calcula mediante V = nr2hlas derivadas parciales sern Vr=2 nhry Vh = nr2 Las medidas experimentales se almacenan en un fichero de texto con dos columnas, la primera registra el radio y la segunda la altura. A partir de los datos de este fichero se desea estimar el error en el radio r, en la altura h y en el volumen V. Elabora la secuencia de instrucciones que realizan esta tarea.24. DistanciaTenemos un fichero llamado PUNTOS.DAT con la siguiente estructura:10 3 2.1 4 5 1.7 5 3Cada una de las lneas contiene las coordenadas de un punto en el plano. En el ejemplo hay 4 coordenadas, pero el fichero podra contener cualquier cantidad de ellas.Elabrese un script que lee los datos del fichero y presenta en pantalla la distancia entre cada punto y el siguiente. Finalmente presenta la distancia total.Con los datos del ejemplo, el resultado sera:Distancias entre puntos consecutivos:7.963.701.30Distancia total: 12.96Para complicarlo un poco ms: presentar tambin la distancia mxima y mnima entre puntos consecutivos.25. Anlisis de cromatogramasLa cromatografa es una poderosa tcnica analtica utilizada para detectar, cuantificar y separar distintos compuestos qumicos en funcin de algunas de sus propiedades fsico-qumicas. Los grficos resultantes (cromatogramas) expresan en el eje x la movilidad del compuesto qumico (medida en tiempo o distancia), y en el eje y la cantidad detectada en cada instante o posicin.El anlisis habitual de los cromatogramas consiste en detectar sus picos, cuya movilidad se asocia a un compuesto determinado, y calcular el rea bajo cada pico, que indica la concentracin del compuesto.En este ejercicio realizaremos un anlisis muy simplificado de algunos cromatogramas: Detectaremos los picos del cromatograma. Cada mximo en el grfico ser considerado un pico. Detectaremos los compuestos asociados a los picos. Dispondremos de una tabla de movilidades conocidas de distintos compuestos. Para cada pico, buscaremos el compuesto con movilidad ms parecida y asumiremos que el pico corresponde a dicho compuesto.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 7Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC Calcularemos la concentracin del compuesto. En lugar de calcular el rea bajo el pico, supondremos que la concentracin viene dada por la altura del pico en el mximo. Ofreceremos las concentraciones en unidades arbitrarias.Elabora un script que: Lee un fichero que contiene la lista de movilidades de los compuestos. Almacena esta informacin en un vector. Lee un fichero que contiene la lista de nombres de los compuestos. Almacena esta informacin en un vector. Lee un fichero que contiene los datos de un cromatograma (lista de nmeros reales que representan la concentracin a lo largo del tiempo). Suponemos que la movilidad es el nmero de orden de cada dato. Almacena el cromatograma en un vector. Busca los picos del cromatograma. Para cada pico detectado calcula y presenta lo siguiente: Movilidad del pico Identificacin del compuesto Concentracin del compuestoJos Luis Esteban Ejercicios de Matlab V1.169 Pg. 8Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJCEjercicios de Matlab. Entrega 3.Etapa 3 Programacin secuencial26. Nmero de monedasDisponiendo de las monedas fraccionarias del euro (50, 20, 10, 5, 2 y 1 cent), calcular el mnimo nmero de monedas que se han de entregar para pagar cualquier importe entre 1 cntimo y 99 cntimos. El programa solicita el importe y presenta la cantidad a entregar de cada tipo de moneda.27. Unidades de tiempoPartiendo de una cantidad de tiempo medida en segundos, calcular el nmero de semanas, das, horas, minutos y segundos a los que corresponde. 28. FrasesEl programa pide una frase. Se imprimir una frase en la que el primer carcter de la frase original cambia de sitio, apareciendo al final. Se imprimir otra frase en la que el ltimo carcter de la frase original cambiar de lugar, apareciendo en la primera posicin.29. ComparacionesEscribe un programa que lea dos nmeros y devuelva como resultado si los nmeros son iguales. Si no lo son, devolver como resultado el mayor de los dos. Escribe dos versiones, una utilizar la funcin max y la otra no.30. Ley de OhmLa ley de Ohm establece una relacin entre la intensidad de corriente (I) que circula por un circuito, la diferencia de potencial (V) y la resistencia del mismo (R):I=VREscribe un programa que ofrezca al usuario la opcin de calcular I, V o R. El programa solicitar los otros dos datos necesarios y clacular la magnitud elegida.31. Ecuacin de segundo grado. Versin 2Se procede como en la versin 1 del problema, pero en este caso se estudia previamente el nmero de soluciones, y si son reales o complejas, calculndolas y presentndolas.Considrese que si a = 0, la ecuacin no es de segundo grado, por lo que se resolver como una ecuacin lineal. Si, adems, b = 0, la ecuacin no depende de la variable x. Entonces, si c = 0, se trata de una ecuacin degenerada, mientras que si c 0, la ecuacin es contradictoria.Descartados los anteriores casos, es necesario calcular el discriminante b24ac, el cual determina el nmero de soluciones, y si son reales o complejas.32. Conversor de temperatura. Versin 2El programa solicita: Escala de origen: C para Celsius, F para Fahrenheit , R para Reamur, K para Kelvin. Escala de destino: como antes Temperatura en la escala de origenEl programa presenta la temperatura en la escala de destino y termina.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 9Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC33. Tiro parablicoConstruir una funcin que calcula los resultados ms relevantes en el tiro parablico. Para ello, la funcin necesita como parmetros de entrada la velocidad inicial y el ngulo de salida. Se pide: Calcular la altura mxima alcanzada por el proyectil Calcular el alcance mximo Representar grficamente la trayectoria descrita por el proyectil. Se supondr que el punto de partida es el origen de coordenadas.Indicaciones para la prctica:Supongamos un lanzamiento de un proyectil con velocidad de salida esv0 y ngulo . Tendremos que las componentes de la velocidad inicial son:v0x=v0coso v0y=v0sinoy las propiedades cinemticas del cuerpo en cualquier instante (t) de su movimiento son:Magnitud Componente x Componente yAceleracin ax=0 ay=gVelocidad vx=v0xvy=v0yg tPosicin x=v0xt y=v0yt 12 g t2La aceleracin es constante, pero la velocidad y la posicin del mvil s que dependen del tiempo. La altura mxima se alcanza cuando la componente verticalvy de la velocidad se hace cero. Como vy=v0yg t , se alcanzar la altura mxima cuandot =v0yg. Por lo tanto, la altura mxima esymax = v0y22 g = v022 g sin2oEl mvil avanzar horizontalmente a la velocidad constantev0x durante el tiempo de vuelo, que ser 2t (siendo t el tiempo en alcanzar la altura mxima) ya que el mvil tarda lo mismo en subir que en bajar, por lo tanto el alcance esxmax=v0x2t es decir,alcance = xmax = v02g sin 2o34. Calendario gregorianoEl calendario actual obedece a la reforma que orden el Papa Gregorio XIII en el ao 1582. Se decidi que, en lo sucesivo, fuesen bisiestos los aos mltiplos de cuatro, con la excepcin de que los aos seculares (los acabados en dos ceros) slo fueran bisiestos los mltiplos de cuatrocientos.Escriba un programa que pida al usuario una fecha (da, mes y ao como nmeros), y que diga si es o no vlida (si el mes est comprendido entre 1 y 12, si el nmero del da es compatible con el mes, y si el ao es mayor que 1582.)35. CrditoUn banco, antes de conceder un prstamo a 20 aos comprueba los ingresos del solicitante. Si los ingresos son superiores a 12000 anuales el crdito se concede. Si los ingresos son inferiores a 12000 anuales pero superiores a 8000 y est soltero el crdito se concede. Tambin se le concede si tiene ingresos entre 12000 y 10000 y esta casado sin hijos. Realizar un programa que pida los ingresos anuales, el estado civil del solicitante y si tiene hijos, y diga si se le da el crdito o no.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 10Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC36. Tiro al blancoTenemos un can que lanza proyectiles con una velocidad inicial de disparo v0, y que nuestro objetivo es acertar en un blanco que se encuentra localizado en las coordenadas (xB, yB). Para acertar, tendremos que ajustar el ngulo de tiro. Sabemos que las componentes de la velocidad inicial se calculan as:v0x=v0cos o v0y=v0sinoDado que en la coordenada x el movimiento es uniforme, en la coordenada y es uniformemente acelerado, y utilizando las ecuaciones correspondientes a esos movimientos, obtenemos el siguiente sistema de dos ecuaciones con dos incgnitas, t y a (xB e yB son las coordenadas conocidas del blanco):xB=v0cos(o) tyB=y0+v0sin(o)t +12(g)t2De aqu podemos eliminar t, obteniendo una nica ecuacin en tan(), empleando la relacin trigonomtrica:1cos2o=1+tan2oresultando la ecuacin de segundo grado en tan():yB=y0+xBtan o+12(g) xB2v02 (1+tan2o)Resolviendo esta ecuacin para tan(), encontramos dos ngulos de disparo que alcanzan el blanco.Se pide hacer un script en Matlab que pida al usuario las coordenadas del blanco y la velocidad de disparo del can y que calcule: Los dos ngulos que dan en el blanco. El tiempo de vuelo del proyectil para cada ngulo hasta que impacta en el blanco. Una grfica en la que se muestren en diferente color las dos posibles trayectorias del proyectil desde que sale del can hasta que impacta en el blanco (ver Figura). Esta grfica deber estar formateada adecuadamente, con las leyendas y los ttulos de los ejes correspondientes y contener una malla o grid.Se supondr que el can est situado en el origen de coordenadas. Tmese el valor g=9.81m/s2.Comprobar los resultados utilizando los siguientes datos de entrada: xB=492,4; yB=145,5; v0 =92,8los cuales habrn de reproducir la grfica siguiente:Grfica obtenida para los datos de entrada especificados en el enunciado del ejercicioJos Luis Esteban Ejercicios de Matlab V1.169 Pg. 11Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC37. Ajuste por mnimos cuadradosEl trabajo de laboratorio tiene como fruto una serie de datos experimentales representados, normalmente, por un conjunto discreto de pares de datos {xi, yi}, siendo i un ndice natural que vara de 1 a N. La manipulacin de los datos tiene normalmente uno de estos objetivos: Determinar una ley experimental Comprobar una ley experimental previamente supuestaSi los datos estn relacionados entre s, se puede encontrar una funcin que se ajuste a los datos a travs del mtodo de ajuste por mnimos cuadrados. El mtodo se basa en minimizar la siguiente funcin objetivo:X2=i=1N( yi f ( xi))2donde {xi, yi} son datos experimentales, N es el nmero total de datos objtenidos y f(x) es la funcin incgnita. La funcin 2 calcula la diferencia entre el valor experimental yi y el valor obtenido por la funcin f(xi) para un xi dado. Normalmente no se cumple que yi = f(xi), por lo que 2 nunca es cero. La forma de determinar f es hacer que 2 sea lo ms prximo a cero posible, lo que se consigue minimizando su valor. Al hacer esto, se obtiene una funcin que describe, slo de forma aproximada, el comportamiento global de los puntos experimentales. Por lo tanto, el problema de encontrar f es el problema de minimizar la funcin objetivo 2. No existe una expresin general de esta minimizacin, aunque para casos particulares sencillos s puede obtenerse una solucin analtica. Uno de los casos ms sencillos para aplicar el mtodo de los mnimos cuadrados es el de una distribucin de pares ordenados {xi, yi} que se pretende ajustar a una lnea recta. Es decir la funcin incgnita tiene la forma: f(x)=a + bx. En tal caso existe solucin analtica.Consideremos que:X2(a ,b)=i =1N( yi(a+b xi))2Desarrollando el cuadrado se obtiene:X2(a ,b)=i =1Nyi+i=1NNa2+b2i=1Nxi22ai=1Nyi2bi =1Nxi yi+2a bi=1NxiLos valores ms eficaces para a y b se obtienen cuando se minimiza la funcin objetivo. El mnimo de una funcin se caracteriza por que su primera derivada es cero, es decir:X2a =0y X2b =0De donde se obtienen las soluciones para a y b:b=Ni=1Nxi yii =1Nxii =1NyiNi =1Nxi2(i =1Nxi)2 a=i=1Nyibi =1NxiNSe pide hacer un programa que dados un conjunto de datos experimentales {xi, yi}: Calcule la recta que mejor se ajusta a ese conjunto de datos utilizando las expresiones para a y b de este enunciado. Represente grficamente los datos junto con una grfica de la recta calculada (ver figura)Comprobar los resultados utilizando los siguientes datos de entrada:x=[1 1.2 1.5 1.7 2];y=[5 5.8 6.5 7.5 8.4];los cuales han de reproducir la siguiente grfica.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 12Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJCGrfica de ajuste lineal obtenida para los datos de entrada especificados en el enunciadoEtapa 4 Bucles38. CuadradosHacer un script que imprima los 20 primeros numeros y sus cuadrados. Hacer otro script que imprima los numeros impares y sus cuadrados que hay entre 1 y 20.39. Mayor y menorRealizar un script que pida n nmeros e imprima el nmero mayor y el nmero menor.40. VocalesEscribe un script en Matlab que pida al usuario una cadena de caracteres y que imprima la misma cadena, pero sustituyendo las vocales por asteriscos.41. TringuloEscribir un script que lea un entero y un carcter. La salida debe ser un tringulo dibujado con el carcter dado y de anchura mxima dada por el entero leido. Por ejemplo su el entero es 7 y el carcter es O, el tringulo debe ser:OOOOOOOOOOOOOOOOJos Luis Esteban Ejercicios de Matlab V1.169 Pg. 13Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC42. RomboEscribir un script que ample el programa anterior para dibujar un rombo:OOOOOOOOOOOOOOOOOOOOOOOOO43. Ms sumatorioEscribe un programa que solicite un nmero n y calcule la suma de todos los nmeros naturales hasta n. Haz la prueba con valores grandes de n.Cuando Gauss tena 10 aos, su profesor quiso un rato de tranquilidad, y pidi a sus alumnos que sumaran todos los nmeros naturales del 1 al 100. En unos instantes, Gaus obtuvo la solucin. Se dio cuenta de que haciendo parejas de nmeros (primero con ltimo, segundo con penltimo,...) se obtiene siempre la misma suma, 101, y como son 50 parejas, el resultado es 101 x 50 = 5050.En efecto,S=a1+an2n donde a1 es el primer trmino y an es el ensimo trmino a sumar. Utiliza esta expresin para comprobar el resultado del programa.44. FactorialEscribe un programa que lea un nmero n y calcule su factorial (n!).Elaborar dos versiones. Una de ellas utilizando la instruccin FOR y la otra utilizando la instruccin WHILE.45. Enteros al cuadradoEscribe un programa que lea nmeros enteros procedentes del teclado y que cada vez que el nmero sea par lo eleve al cuadrado. El programa terminar cuando el usuario introduzca 0.46. Primera vocalRealizar un script que solicite al usuario una cadena, en la cual busca y escribe la primera vocal que aparezca.47. Ms monedasDisponiendo de todos los billetes y monedas fraccionarias del euro, calcular el mnimo nmero de billetes y monedas que se han de entregar para pagar cualquier importe.48. Conversor de temperatura. Versin 3Igual que el Conversor de temperatura 2, pero, en este caso, el programa repite la operacin hasta que el usuario indica una escala inexistente. Entonces termina.49. SerieEl programa solicita x y n, y calcula la suma de la seriexii!hasta el trmino n, es decir i=0nxii !Hasta qu valor de n es factible hacer el clculo?Pista para optimizar el clculo: evita realizar el clculo de xiy dei! en cada iteracin.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 14Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC50. Soy un primo?El programa solicita un nmero entero, comprueba si es primo y lo indica.Para comprobar la divisibilidad de un nmero por otro se utilizar la funcin mod.51. Ms serie: exponencialDado que la serie del anterior ejercicio es convergente, escribe un programa que solicite el valor de x, y un grado de precisin (por ejemplo, 0.0001 para indicar precisin de una diezmilsima). El programa sumar tantos trminos de la serie como necesite, hasta que el trmino a aadir sea menor que la precisin establecida.No es ningn secreto que esa serie sirve para calcular la funcin exponencialex. Utilcese la funcin de biblioteca exp para comparar su resultado con el de la suma de la serie.52. Estadgrafos bsicosEl programa solicita un nmero n que indicar la cantidad de datos que se leern a continuacin. Solicitar cada uno de los datos xi, y con ellos calcular:La suma de todos ellos:S=i =1nxiLa suma de los cuadrados:Sc=i=1nxi2La media:M=SnLa varianza:V =Scn M2La desviacin tpica:s=.VEl mayor de los datosmax ( xi)i =1...nEl menor de los datosmin( xi)i =1...n53. Estadgrafos flotantesComo en el anterior problema, pero se imprimir el resultado despus de introducir cada dato, utilizando todos los disponibles hasta el momento.54. Criba de EratstenesEste conspicuo seor griego se dio cuenta de que si en una lista de nmeros tachaba todos los mltiplos de cada primo, en la lista slo le quedaban primos. Utilizaremos este mtodo para calcular los primos existentes hasta 1000 sin hacer una sola divisin.Comenzaremos creando una matriz que contenga los nmero del 1 al 1000. Aprovechando que sabemos que el 2 es primo, nos ubicamos en el 2 y saltamos por la matriz de 2 en 2, poniendo un cero en cada casilla donde aterricemos. Con esto hemos eliminado los mltiplos de 2. Desde el 2, avanzamos por la matriz hasta encontrar el siguiente nmero no cero. En este caso ser el 3, as que saltaremos por la matriz de 3 en 3, poniendo un cero en cada lugar donde aterricemos. Repetimos el proceso hasta que terminamos con la tabla. Entonces quedarn en ella nicamente los primos, junto con todos los ceros que han sustituido a los no primos. Imprimiremos exclusivamente los nmeros primos.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 15Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC55. FibonacciLa sucesin de Fibonacci es la siguiente: 1, 1, 2, 3, 5, 8, 13, 21, 34,...Es decir,f1=1 ,f2=1 , y cada uno de los siguientes trminos de la sucesin se calculan sumando los dos anteriores: f i= f i1+ f i 2Escribe un programa que genera dicha sucesin, presentando en pantalla cada uno de los trminos. El programa terminar despus de presentar un trmino mayor que un cierto lmite (1000000, por ejemplo).56. Raz cuadradaEl clculo de .xpuede realizarse de forma aproximada mediante un mtodo iterativo. Se estima inicialmente la solucin comosi=x2lo cual slo es cierto en el caso de x = 4. Seguidamente calculamos una nueva aproximacinsi +1=sisi2x2 si. Si la diferencia en valor absoluto entre las dos aproximaciones es inferior a un cierto umbral e ,si +1sie , damos por buena la ltima aproximacin. Si no, realizamos una nueva aproximacin.Elabora un programa que solicita al usuario el umbral e y el valor de x. Calcula iterativamente la raz cuadrada de x y la presenta junto con el valor proporcionado por la funcin sqrt.57. Contador de palabrasEl programa solicita una lnea de texto y calcula el nmero de palabras presentes en ella (separadas mediante espacios).58. Contador de palabras en mltiples lneasIgual que antes, pero en este caso, despus de dar el resultado se vuelve a solicitar una nueva lnea. El proceso se repite hasta que el usuario teclea fin. Entonces el programa presenta el nmero de lneas y la suma de palabras en todas ellas.59. EspaciosEl programa solicita una frase. La frase podr contener palabras que estn separadas por ms de un espacio. El programa normaliza la frase dejando un nico espacio entre las palabras, y presenta el resultado.60. Bsqueda y contaje de subcadenasDado un fichero de texto, se trata de contar el nmero de veces que aparece una cadena de caracteres.El programa solicitar el nombre de un fichero de texto y una cadena de caracteres. Seguidamente, abrir el fichero y buscar todas las apariciones de la cadena. Finalmente, presentar el nmero de apariciones de sta y terminar.61. SensoresEn una planta qumica disponemos de un sensor de temperatura y otro de presin. Una biblioteca nos proporciona dos funciones, temperatura() y presion(). Llamando a esas funciones desde un programa, podemos obtener respectivamente la temperatura y la presin existentes en la planta en ese instante.Haz un programa que utilice ambas funciones para realizar las siguientes operaciones en un bucle sin fin: Presenta en pantalla la temperatura y presin actuales Calcula el rcord de temperatura y presin alcanzadas hasta el momento actual Cuando la temperatura o la presin superan su respectivo rcord, presenta un mensaje de alarma en pantallaJos Luis Esteban Ejercicios de Matlab V1.169 Pg. 16Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC62. Clculo de combinaciones, permutaciones y variacionesEl programa solicita el tipo de clculo a realizar, combinaciones, permutaciones o variaciones, tanto con repeticin como sin repeticin. Tambin solicita los parmetros necesarios para el clculo. El programa aplica la frmula pertinente y presenta el resultado.Permutaciones de m elementos: m!Combinaciones de m elementos tomados de n en n:m!n!(mn)!Variaciones con repeticin de m elementos tomados de n en n:mnCombinaciones con repeticin de m elementos tomados de n en n:(m+n1)!n!( m1)!Variaciones sin repeticin de m elementos tomados de n en n:m!n!Es interesante observar los lmites prcticos para los clculos producidos por el desbordamiento. Estdiense distintas posibilidades para evitarlo.63. Integracin numricaEl mtodo de integracin mediante la suma de trapecios consiste en aproximar el valor de la integral de una funcin en el intervalo [a,b] a la suma de las reas de los rectngulos que resultan al subdividir dicho intervalo en un nmero N de subdivisiones: abf ( x) dx i =1Neidonde el rea de cada elemento ei vale ei = ( xi+1xi)f ( xi)+ f ( xi +1)2= ancho f ( xi)+ f ( xi+ancho)2siendoancho = (ba)N= xi+1xi x ab x x+ancho f(x) f(x+ancho) (f(x)+f(x+ancho))/2 Elabrese un programa que pida al usuario los lmites de integracin (a y b) y el nmero de subdivisiones (N), y que devuelva la aproximacin mediante la suma de trapecios del valor de la integral de la funcin:ab. x sen xx+exdxLos lmites de integracin a y b sern introducidos por el usuario.Ejectese el programa para a = 0 y b = 90, comprobando que: para 10 subdivisiones (N = 10) el valor de la integral es: 0.264258, y para 100 subdivisiones (N = 100) el valor de la integral es: 0.264766.Ntese que esta variacin en el nmero de subdivisiones slo afecta a partir de la cuarta cifra decimal.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 17Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC64. Traduccin del cdigo genticoDada una secuencia de ARN, representada por los caracteres A, G, C, U, obtendremos la secuencia de aminocidos de la protena resultante de la traduccin. Sabemos que el cdigo gentico es el siguiente:Aminocido Codones Aminocido CodonesAlanina Ala A GC(A,C,G,U) Leucina Leu L CU(A,C,G,U) o UU(A,G)Arginina Arg R CG(A,C,G,U) o AG(A,G) Lisina Lys K AA(A,G)Asparragina Asn N AA(C,U) Metionina Met M AUG (inicio de la sntesis)Aspartato Asp D GA(C,U) Fenilalanina Phe F UU(C,U)Cistena Cys C UG(C,U) Prolina Pro P CC(A,C,G,U)Glutamato Glu E GA(A,G) Serina Ser S UC(A,C,G,U) o AG(C,U)Glutamina Gln Q CA(A,G) Treonina Thr T AC(A,C,G,U)Glicina Gly G GG(A,C,G,U) Triptfano Trp W UGGHistidina His H CA(C,U) Tirosina Tyr Y UA(C,U)Isoleucina Ile I AU(A,C,U) Valina Val V GU(A,C,G,U)Terminacin de la sntesis UA(A,G) o UGANota: A modo de ejemplo, GC(A,C,G,U), significa GCA, GCC, GCG o GCUSe leer desde teclado (o desde fichero) una secuencia de ARN, formada por nucletidos representados mendiante los caracteresA, G, C, U. Podr existir tambin espacio blanco (espacios, tabulaciones y saltos de lnea), pero no tendr significado alguno para la secuencia.Se recorrer la secuencia de nucletidos hasta detectar el codn AUG, que inicia la traduccin y, adems, codifica el aminocido metionina. Desde ese punto se recorrern los codones sucesivos (grupos de 3 nucletidos), traduciendo cada uno de ellos al correspondiente aminocido. El proceso termina al encontrar cualquiera de los codones de terminacin (UAA, UAG o UGA) o al terminar la secuencia.Por ejemplo, la secuencia de ARN: UGUAAGAGGUAUGCACUCAAAAGACUGACACCUGcodifica el polipptido: Met-His-Ser-Lys-AspEtapa 5 Funciones65. PotenciaSuponga que no existe el operador potencia en Matlab. Escriba una funcin denominada potencia que acepte dos valores enteros, llamados base y exponente y devuelva base elevado a la potencia exponente.Elaborar dos versiones. Una de ellas utilizando la instruccin FOR y la otra utilizando la instruccin WHILE.66. Cantidad de cifrasRealizar una funcin en Matlab que reciba un nmero entero y devuelva la cantidad de cifras que tiene el nmero (ejemplo: 123 tiene 3 cifras).Realiza otra funcin que devuelva la suma de las cifras del nmero (ejemplo: 123 -> 1+2+3 = 6).67. Ms FibonacciLa sucesin de Fibonacci es la siguiente: 1, 1, 2, 3, 5, 8, 13, 21, 34,...Es decir,f1=1 ,f2=1 , y cada uno de los siguientes trminos de la sucesin se calculan sumando los dos anteriores: f i= f i1+ f i 2Escribe una funcin entera que recibe como argumento un nmero entero i, y devuelve el valor de f iRealiza una implementacin iterativa y otra recursiva.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 18Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC68. Ms derivacin de polinomiosUtilizando el mismo planteamiento que en el ejercicio sobre derivacin de polinomios elaboraremos dos funciones:derivapol recibe un vector que representa el polinomio p, calcula su derivada p' y la devuelve en forma de otro vector.evalpol recibe un vector que representa un polinomio p, y un valor real x. Calcula el valor del polinomio en x, es decir, p(x).Elaboraremos un programa que solicita un polinomio, llama a derivapol para obtener su derivada y pide dos valores de x al usuario, x1 y x2. Se evaluar el polinomio y su derivada en sun conjunto de valores entre x1 y x2 y se presentar el resultado grficamente.69. Ms primosEscribe una funcin lgica que recibe un nmero entero e indica si el nmero es primo.Trata de optimizar la funcin, reduciendo el nmero total de clculos aritmticos.70. FactorizacinElabora una funcin que recibe un nmero entero y que devuelve dos vectores: el primero contiene los nmeros primos en los que se descompone, y el segundo contiene las potencias de dichos nmeros.Elabora un programa que solicita al usuario un nmero entero y calcula su factorizacin en nmeros primos. Seguidamente comprueba si es correcta, realizando el clculo inverso. Finalmente presenta el resultado en pantalla. Por ejemplo, para el caso de 180 (22 * 32 * 51), el programa presentara:NumPot223251Ser necesario utilizar la funcin desarrollada en el ejercicio ms primos. Se comprobar si el nmero a factorizar es divisible por los sucesivos nmeros primos, y cuntas veces es divisible por cada uno de ellos.Desafo entre compaeros: Busca dos nmeros primos tan grandes como puedas encontrar, multiplcalos y proporciona el producto resultante a un compaero. ste deber utilizar su programa de factorizacin para encontrar los dos nmeros primos originales.Este tipo de desafo es uno de los juegos favoritos entre los actuales expertos en matemtica discreta, ya que los sistemas modernos de cifrado se basan en la utilizacin de pares de primos muy grandes y, por tanto, muy difciles de factorizar.71. Nmeros perfectosUn nmero perfecto es el que es igual a la suma de sus divisores, excluido l mismo.Ejemplo de nmero perfecto: 6 = 1+2+3 Contraejemplo: 12 1+2+3+4+6Se pide: Escribir una funcin que reciba un nmero y devuelva si es o no perfecto. Escribir un script que, utilizando la funcin anterior, muestre por pantalla los nmeros perfectos que hay desde el 1 al 200.72. Ms combinatoriaElaboraremos cinco funciones, una por cada uno de los clculos del ejercicio sobre Clculo decombinaciones, permutaciones y variaciones. Obsrvese que alguna de las funciones del mdulo puede hacer uso de otras funciones del mismo mdulo.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 19Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC73. Ms estadgrafosElaboraremos siete funciones, una por cada estadgrafo de los utilizados en el ejercicio sobre Estadgrafosbsicos. Las funciones recibirn como argumento de entrada un vector con los datos a analizar, y devolvern como resultado un valor real. La declaracin de cada una de ellas podr seguir el siguiente esquema:function r = estadigrafo(v)... % Aqu se calcula el estadgrafor = ... % y se asigna el resultadoElaboraremos un programa que realiza exactamente las mismas operaciones que el ejercicio sobre Estadgrafos bsicos, con la salvedad de que realizar los clculos llamando a las funciones.74. Qumica del carbonoRealice un programa que pida al usuario una frmula qumica en una cadena de caracteres. Esta frmula podr tener los siguientes caracteres: C, H, O, N como identificadores de los elementos bsicos de la qumica del carbono 2, 3, 4, 5 y 6 como ndices posibles de estos elementosSe pide analizar esta frmula para: Decidir si contiene algn carcter no vlido, en cuyo caso se deber volver a pedir una nueva frmula al usuario En el caso de que todos los caracteres sean vlidos mostrar por pantalla el nmero de tomos de cada tipo que contiene la frmula Por ltimo, mostrar por pantalla el peso molecularSe recomienda dividir el problema en subproblemas ms sencillos para que sea ms fcil la resolucin del problema final. Notar que el nmero de tomos de un elemento es funcin del carcter situado a continuacin de l en la frmulaNOTA: Para que el programa considere que una frmula es correcta es suficiente con comprobar que slo coniene caracteres vlidos. Es decir, no es necesario que el programa decida si la frmula es qumicamente correcta o no. Son ejemplos de frmulas consideradas vlidas: CH3CH3, H3CCH3, C2H6.75. Solucin de ecuaciones Mtodo de biparticinSegn el teorema de Bolzano, si una funcin continua en el intervalo [a, b] toma valores de distinto signo en a y en b, entonces existe al menos un valor entre ambos extremos del intervalo en el que la funcin se hace nula.Esto nos permite disear un mtodo para encontrar soluciones a una funcin continua en un intervalo. El usuario puede tantear hasta encontrar un valor a y otro b, tales que en uno la funcin es positiva, y en el otro negativa.Ahora, el programa puede calcular un punto intermedio c = (a+b)/2 y calcular el valor de la funcin. El programa sustituir uno de los extremos del intervalo por c: concretamente aquel que tenga el mismo signo que c. Ahora tenemos el mismo caso que al principio, pero con un intervalo la mitad de amplio.Realizaremos el anterior proceso de biparticin tantas veces como sea necesario, hasta que la anchura del intervalo sea inferior a una tolerancia determinada tambin por el usuario.Elabrese un programa que realiza las siguientes operaciones: Solicita al usuario dos valores de la variable independiente x: a y b, y el programa calcula f(a) y f(b). Si f(a) y f(b) son del mismo signo, indica que no es posible encontrar una solucin entre ambos (aunque no estamos seguros de que no la haya, sino que el mtodo no se puede aplicar).Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 20Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC Si son de distinto signo: Solicita al usuario una tolerancia para la solucin (mximo error admisible). Aplica el mtodo de biparticin descrito y se presenta la solucin.La ecuacin de la que se busca solucin ha de estar escrita por separado. Para ello, escribiremos una funcin declarada de la siguiente manera:function r = f(x) % x es un valor realr = ... % Aqu va la funcin que queremos resolverDe este modo, slo es necesario cambiar el contenido de esta funcin para resolver distintos problemas.76. Solucin de ecuaciones Mtodo de NewtonEl mtodo de Newton para resolver ecuaciones se basa en el conocimiento de la funcin y de su derivada. Partiendo de una aproximacin xide la solucin se calcula en ese punto el valor de la funcin f ( xi) y el de la derivada f ' ( xi) . Con esos datos se calcula una nueva aproximacin xi+1=xi f ( xi)f ' ( xi). Se repite el proceso, refinando iterativamente la solucin hasta que la diferencia entre dos valores sucesivos en el clculo xi+1xies inferior a un valor de tolerancia establecido por el usuario.Para no tener que codificar una funcin y su derivada, nos centraremos en un caso ms simple, elaborando un programa que calcula soluciones de ecuaciones polinmicas. Aprovecharemos la funcin derivapol y la funcin evalpol que fueron desarrolladas en el ejercicio sobre ms derivacin de polinomios.El programa solicitar al usuario: El orden de la funcin polinmica a resolver (la mxima potencia de la variable x en el polinomio). Se ubicar un vector para contener el polinomio problema y otro para contener su derivada. Los coeficientes del polinomio que define la funcin a resolver. El valor de la tolerancia o precisin deseada en el clculo de la solucin. Un valor inicial xide la variable x, que se utilizar como primera aproximacin del resultado.Se utilizar la funcin derivapol para calcular la derivada del polinomio problema introducido por el usuario.Despus, utilizar la funcin evalpol para evaluar la funcin y su derivada en xiy calcular la siguiente aproximacin xi+1segn se ha descrito. Esto se repetir tantas veces como sea necesario hasta que la solucin sea tan precisa como establece la tolerancia. Ser ilustrativo presentar en cada iteracin los valores dexi, f ( xi) yf ' ( xi) .Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 21Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC77. Ordenacin Mtodo de la burbujaEn muchas ocasiones es necesario ordenar los valores que contiene una matriz. Para ello es necesario intercambiar los contenidos de los elementos siguiendo algn mtodo que los ordene.En este ejercicio vamos a utilizar el mtodo de la burbuja: Compararemos el primer elemento de la matriz con el que le sigue. Si estn ordenados, se dejan como estn, y si no, se intercambian. Avanzaremos una posicin y repetiremos la operacin, y as sucesivamente hasta llegar al final de la matriz. A este recorrido por la matriz, denominaremos pasada. Si durante la pasada no hemos realizado algn intercambio, entonces la matriz est ordenada. Por eso, repetiremos la pasada descrita tantas veces como sea necesario, hasta que en una de ellas no hayamos realizado ningn intercambio. En ese momento, la matriz estar ordenada.Escribiremos la funcin burbuja, que recibe un nico argumento, el vector a ordenar, y devuelve un vector con los valores ordenados, tras emplear el mtodo descrito.Elabora un script que solicite el nombre de un fichero que contiene una serie de datos numricos. El programa abrir el fichero y leer los valores, cargndolos en un vector. Seguidamente, llamaremos a la funcin burbuja, que devolver el vector ordenado, y presentaremos ste en pantalla.Fjate en los detalles del procedimiento de ordenacin y busca posibles formas de optimizarlo.78. Ordenacin Mtodo de seleccinEste mtodo de ordenacin consta de los siguientes pasos (suponiendo ordenacin de menor a mayor): Buscamos el menor elemento del vector. Lo intercambiamos por el primero en la lista. Buscamos el menor elemento comenzando en el segundo. Lo intercambiamos por el segundo. Y as sucesivamente...Escribiremos la funcin ordselec, que recibe un nico argumento, el vector a ordenar, y devuelve el vector ordenado, tras emplear el mtodo descrito.Elabora un script que solicite el nombre de un fichero que contiene una serie de datos numricos. El programa abrir el fichero y leer los valores, cargndolos en un vector. Seguidamente, llamaremos a la funcin ordselec, que devolver el vector ordenado, y presentaremos ste en pantalla.79. Ordenacin Mtodo de insercinEste mtodo de ordenacin consta de los siguientes pasos (suponiendo ordenacin de menor a mayor): Partimos de un vector con datos desordenados, y de otro que habr de recibir los datos ordenados. Copiamos el primer elemento del vector a ordenar en la primera posicin del segundo vector. Tomamos el segundo elemento del vector a ordenar y lo comparamos con el ltimo elemento del segundo vector. Si el nuevo es menor, desplazamos el elemento una posicin. En general, por cada elemento que se inserta en el nuevo vector: Se compara con los elementos del vector ordenado empezando por el final. Si el elemento a insertar es menor que el ya existente, se desplaza el existente una posicin. Si no, se inserta en la posicin que dej libre el anterior desplazamiento.Escribiremos la funcin ordinsert, que recibe un nico argumento, el vector a ordenar, y devuelve el vector ordenado, tras emplear el mtodo descrito.Elabora un script que solicite el nombre de un fichero que contiene una serie de datos numricos. El programa abrir el fichero y leer los valores, cargndolos en un vector. Seguidamente, llamaremos a la funcin ordinsert, que devolver el vector ordenado, y presentaremos ste en pantalla.80. TermostatoLa temperatura de un recinto vara segn la energa trmica (calor) que gana o pierde, segn la expresin AT=AQ/ C[1]donde C es la capacidad calorfica del recinto, Q es la variacin de energa trmica del recinto y T es la correspondiente variacin de temperatura de ste.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 22Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJCEl recinto pierde calor por sus paredes porque el exterior se encuentra ms fro, segn AQ=k AT At, donde Q es la prdida de energa, T es la diferencia de temperatura entre el interior y el exterior del recinto, k es la conductividad trmica de las paredes de ste y t es el intervalo de tiempo considerado.Para calentar el recinto utilizamos un calefactor. Cuando ste se encuentra conectado, aporta energa al recinto segn AQ=W At, donde Q es el calor aportado, W es la potencia del calefactor yt es el intevalo de tiempo en que ha estado funcionando.Para regular la temperatura utilizamos un termostato simple que conecta el calefactor cuando la temperatura del recinto es menor que la deseada, y lo desconecta cuando es mayor. Por lo tanto, mientras el calefactor est desconectado, en un intervalo de tiempo t el recinto pierdeAQ=k AT At[2]en tanto que cuando el calefactor est conectado, gana AQ=W At k AT At[3]Deseamos mantener un recinto a una temperatura constante Tobjetivo = 22 C, mientras que el exterior se encuentra a Te = 5C. El recinto tambin se encuentra inicialmente a Ti = 5C. Para ello utilizamos un sistema de calefaccin con una potencia W = 300 kcal/s. El recinto tiene una capacidad calorfica C = 2000 kcal/C, y sus paredes tienen una conductividad trmica k = 10 kcal/(sC)Calcularemos la ganancia o prdida de calor, Q, en cada intervalos discretos de tiempo t usando [2] y [3], tras lo cual calcularemos la correspondiente variacin de temperatura usando [1]. en funcin de la temperatura resultante, conectaremos o desconectaremos el calefactor, y repetiremos el ciclo.Representaremos grficamente la evolucin de la temperatura a lo largo del tiempo (1000 s en intervalos de 5). Obsrvese la estabilidad de la temperatura una vez alcanzada la temperatura objetivo. Ensyese con otros valores de potencia, temperatura exterior, etc.81. Termostato PIDExisten sistemas de control con mejor comportamiento que el termostato simple, como es el PID (Proporcional Integral Derivativo). En lugar de conectar y desconectar el calefactor, se aplican valores graduales de potencia segn lo cerca o lejos que nos encontremos del objetivo, considerando el error e = Tobjetivo - T:Trmino proporcional:P=K pe(la potencia aplicada es proporcional al error)Trmino integral:I =KieAt(la potencia aplicada es proporcional al error acumulado)Trmino derivativo:D=Kd AeAt (la potencia aplicada es proporcional a la variacin del error)Repetiremos el ejercicio sobre el termostato utilizando este sistema de control. Para cada intervalo de tiempo se calcular el error, e, su integral discreta, e t, y su derivada discretae/t. La potencia aplicada ser W=Wmax( P+I +D) , es decir,W=Wmax( K pe+KieAt +Kd AeAt )donde Wmax es la potencia del calefactor. Cuando W sea menor que cero, aplicaremos 0, porque un calefactor no refrigera. Del mismo modo, cuando W sea mayor que la potencia mxima del calefactor, se aplicar la potencia mxima.Ensyese en las mismas condiciones que el ejercicio sobre el termostato, utilizando los valores:Kp = 0,1 Ki = 0 Kd = 0 Control proporcional (P) Dnde se estabiliza al temperatura?Kp = 0,1 Ki = 0,001 Kd = 0 Control PI. Qu ocurre con la temperatura antes de estabilizarse?Kp = 0,1 Ki = 0,001 Kd = 10 Control PID. Cmo es ahora el comportamiento?Kp = 0,1 Ki = 0,001 Kd = 100 Qu efecto tiene un Kd tan grande?Cul es la potencia aplicada cuando la temperatura se estabiliza?Ensaya el comportamiento del sistema con otros valores de los tres parmetros PID.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 23Fundamentos de Informtica, curso 2007-2008 Ingeniera Tcnica Industrial (Qumica) ESCET URJC82. GravitacinLa fuerza de atraccin gravitatoria entre dos cuerpos de masas m y m' esF=G mm'd2[1], dondeF es la fuerza en NewtonsG = 6,67259 * 10-11 N m2 Kg-2(constante de gravitacin universal)m y m' son las masas de los cuerpos en Kgd es la distancia entre los centros de masas de los cuerpos en m.Simularemos el movimiento de cinco cuerpos somentidos a la atraccin gravitatoria. Dichos cuerpos se denominan Sol, Mercurio, Venus, Tierra y Marte, cuyas coordenadas y velocidad del da 1 de enero de 2000 a las 0h pueden ser obtenidas en http://www.astro.gla.ac.uk/honours/labs/solar_system/JPL%20coordinates/Podemos encontrar sus masas y otros parmetros necesarios en http://ssd.jpl.nasa.gov/?constantsDefiniremos un vector de posicin del conjunto de las partculas en cada dimensin:x = vector de posiciones en xy = vector de posiciones en yz = vector de posiciones en zTambin definiremos los vectores de velocidad en cada dimensin:vx = vector de velocidades en xvy = vector de velocidades en yvz = vector de velocidades en zTendremos un vector de masas m.A partir de sus coordenadas y masas, calcularemos vectorialmente la fuerza que acta sobre cada cuerpo. Para ello podemos aplicar la frmula [1] en cada dimensin del espacio entre cada par de cuerpos. Seguidamente, sumaremos vectorialmente las fuerzas que actan sobre cada cuerpo. Calcularemos la aceleracin del cuerpo teniendo en cuenta que F = m a, y aplicaremos el mtodo de Euler para estimar la nueva velocidad y posicin de cada partcula en un intervalo de de tiempo t.v = a t [variacin de la velocidad]p = v t [variacin de la posicin]Cada vez que se calcule una nueva posicin, sta se reflejar en una grfica que mostrar los planetas orbitando en torno al sol.Jos Luis Esteban Ejercicios de Matlab V1.169 Pg. 24