Sol Trabajo2 HIM 2012 13

download Sol Trabajo2 HIM 2012 13

of 5

description

m

Transcript of Sol Trabajo2 HIM 2012 13

  • HERRAMIENTAS INFORMTICAS PARA MATEMTICAS (Enunciado y resolucin del segundo trabajo propuesto por el equipo docente para el

    curso 2012-13) TRABAJO 2 En el curso virtual dispone del archivo datostrabajo2.txt que contiene un conjunto de datos numricos dispuestos matricialmente, en tres filas y veinte columnas. En la primera fila estn los datos candidatos para formar una matriz, en la segunda fila hay datos estadsticos y en la tercera fila se han registrado unas medidas experimentales. 2.1) Incorpore, tanto en Maxima como en Scilab, todos los datos del archivo en una matriz 320. Acceda a los datos de la primera fila y componga una matriz 54, ordenados de mayor a menor y colocados en el orden natural de la matriz: desde el elemento (1,1) al elemento (5,4) barriendo por filas completas. En este apartado puede reutilizar el algoritmo que se le peda programar en el ejercicio 4.8 del Tema 4, pero tambin puede emplear las funciones sort de Maxima y gsort de Scilab. Solucin (2.5 puntos): La incorporacin de todos los datos del archivo a una matriz 3x20 en los entornos Maxima y Scilab se realiza nicamente en este apartado, pero como la matriz tambin es necesaria en los otros apartados supondremos en stos que la matriz ya est creada o habr que volver a hacerlo. Respecto al acceso a los datos de la matriz y a su colocacin en otras matrices o estructuras de datos podremos optar por hacerlo de forma secuencial, elemento a elemento, pero es ms recomendable hacerlo en bloque aprovechando funciones especficas de los entornos. La matriz 5x4 solicitada en este apartado deber tener el siguiente contenido:

    44. 43. 42. 41. 34. 33. 32. 31. 24. 23. 22. 21. 14. 13. 12. 11. 4. 3. 2. 1.

    Un posible cdigo en Scilab para resolver este apartado es el siguiente, donde nicamente hacemos uso de matrices.

    // Apartado 2.1: Incorpora los datos en una matriz 3x20 y forma una matriz 5x4 // con los elementos de la primera fila // Primer paso: lectura de los datos e incorporacin en una matriz 3x20 a=file('open','datostrabajo2.txt','old') mdatos_3x20=read(a,3,20) file('close',a) // Segundo paso: creacin de un matriz 1x20 mediante extraccin de la primera // fila de la matriz 3x20 y ordenacin de sus elementos (datos) de mayor a menor datosfila1=mdatos_3x20(1,:); datosfila1ordenados=gsort(datosfila1); // Tercer paso: crea la matriz 5x4 a partir de los elementos ya ordenados. Se // incluyen dos posibles opciones.

  • Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13

    2

    // Primera opcin, con dos bucles k=0; for i=1:1:5 for j=1:1:4 k=k+1; matriz_5x4(i,j)=datosfila1ordenados(k) end end // Segunda opcin, con submatrices matriz_5x4_2(1,:)=datosfila1ordenados(1:4); matriz_5x4_2(2,:)=datosfila1ordenados(5:8); matriz_5x4_2(3,:)=datosfila1ordenados(9:12); matriz_5x4_2(4,:)=datosfila1ordenados(13:16); matriz_5x4_2(5,:)=datosfila1ordenados(17:20); // Cuarto paso: presentamos la matriz solicitada en este apartado disp('Matriz 5x4') disp(matriz_5x4) disp('Matriz 5x4') disp(matriz_5x4_2)

    Un posible cdigo en Maxima para resolver este apartado es el siguiente, donde hemos prescindido de comentar los distintos pasos, por su similitud con los anteriores, y donde a diferencia de Scilab nos hemos visto obligados a la creacin de listas y matrices intermedias.

    2.2) Se sabe que los datos de la segunda fila de la matriz 320 son las frecuencias absolutas en las notas de una asignatura, para 20 intervalos de 0.5 puntos en el rango de 0 a 10 puntos. Determine en Maxima y en Scilab las caractersticas (media y desviacin estndar) de la muestra. Solucin (2.5 puntos): La muestra facilitada tiene una media aproximada de 5.292 y una desviacin estndar aproximada de 2.232. Aunque Maxima y Scilab disponen de funciones para el clculo de la media y de la desviacin estndar , no se utilizarn en este apartado pues para ello necesitaramos disponer de todas y cada una de las notas de la asignatura. En su lugar programaremos nuestros propios clculos, atendiendo a las dos frmulas siguientes:

    1

    1

    n

    i ii

    n

    ii

    x f

    f

    21

    1

    n

    i ii

    n

    ii

    x f

    f

    Donde: n representa el nmero de notas posibles, xi representan los valores de las notas y fi representan las veces (frecuencias absolutas) que se repiten las notas. Un posible cdigo en Scilab para resolver este apartado es el siguiente, donde como nicamente nos facilitan las frecuencias absolutas hemos tenido que crear las posibles notas a partir de los puntos medios correspondientes a los 20 intervalos.

  • Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13

    3

    // Apartado 2.2: Clculo de la media y de la desviacin estndar // Asigna notas, utilizando los puntos medios de los intervalos, y // las frecuencias absolutas notas=[0.25:0.5:9.75]; frecuenciasabsolutas=mdatos_3x20(2,:); numerodenotas=sum(frecuenciasabsolutas); notamedia=sum(notas.*frecuenciasabsolutas)/numerodenotas; desviacionestandar=sqrt(sum(((notas-notamedia).^2).*frecuenciasabsolutas)/(numerodenotas)); disp('Nota media y desviacin estndar') disp(desviacionestandar,notamedia)

    Un posible cdigo en Maxima para resolver este apartado es el siguiente, donde es importante que observen las diferencias entre los sumatorios programados y los de Scilab.

    2.3) Se desea comprobar visualmente si las notas de la asignatura siguen una distribucin normal, para ello se le solicita que trace en Scilab el diagrama de barras con el rea normalizada a la unidad junto con el polgono de frecuencias relativas y le superponga la grfica de la siguiente funcin de densidad:

    2121( )

    2

    x

    f x e

    Donde y representan respectivamente la nota media y la desviacin estndar calculadas en el apartado (2.2). Solucin (2.5 puntos): La funcin de densidad de la distribucin normal se caracteriza por presentar un mximo en el valor de la media, por ser ms o menos dispersa en funcin de la desviacin estndar y por limitar un rea igual a la unidad. Para comparar cualquier otra muestra con ella no slo hay que posicionar la media sino que es necesario normalizar el rea a la unidad. Para la muestra analizada en el apartado anterior, habr que hacer el correspondiente diagrama de barras, pero antes habr que normalizar las frecuencias para que el rea total (suma de todos los rectngulos) sea igual a la unidad. En la siguiente figura se muestra el resultado de este apartado.

    Un posible cdigo en Scilab para resolver este apartado es el siguiente, donde las frecuencias relativas aparecen normalizadas tras dividir por el tamao del intervalo utilizado al clasificar las notas. Observe que el grfico de la distribucin se ha generado con un vector de datos comprendido en el mismo rango que las notas, pero con un paso inferior al utilizado en las muestras para que el trazo reproduzca fielmente la funcin continua.

    // Apartado 2.3: Comprobacin grfica del tipo de distribucin // Normaliza el rea de la muestra incrementonotas=0.5; frecuenciasrelativasn=frecuenciasabsolutas/(incrementonotas*numerodenotas); // Define la funcin de densidad correspondiente a una distribucin normal

  • Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13

    4

    function y=distribucion_normal(x, media, desviacion) y=exp(-0.5*((x-media)/desviacion)^2)/(desviacion*sqrt(2*%pi)); endfunction // Genera valores de la distribucin normal para ese rango, con esa media y esa // desviacin vx=0:.1:10; for i=1:1:length(vx) vydistribucionnormal(i)=distribucion_normal(vx(i),notamedia,desviacionestandar); end // Genera la representacin grfica bar(notas,frecuenciasrelativasn,1) plot(notas,frecuenciasrelativasn,'o-',vx,vydistribucionnormal)

    En Maxima no es posible generar por superposicin una figura similar utilizando las funciones habituales, se valorar positivamente cualquier resultado que presenten los alumnos aunque sea en grficas por separado dentro de una misma ventana. 2.4) Suponiendo que las medidas experimentales de la tercera fila de la matriz 320 corresponden al perfil de alturas h(x) de una bveda parablica, se pide determinar en Maxima y en Scilab los coeficientes del siguiente polinomio de segundo orden que mejor ajustan los 20 puntos de este perfil.

    2( )h x ax bx c Para ello debera considerar que la primera medida se tom a un metro de la pared y que el resto de las medidas se tomaron equidistantes, desplazndose 1 metro en la horizontal. En cualquier caso, no olvide adjuntar la correspondiente grfica para justificar el ajuste realizado. En el caso de Scilab puede hacer uso de la funcin ajustadatos descrita en el apartado 5.3.1 del Tema 5. Solucin (2.5 puntos): Los coeficientes del polinomio de segundo orden que mejor ajustan los 20 puntos de este perfil son, con aproximacin a cuatro cifras decimales: a=-0.0725, b=1.5266, c=-0.0564. Con los que se puede trazar la siguiente figura en Maxima.

  • Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13

    5

    Un posible cdigo en Scilab para resolver este apartado es el siguiente, donde hemos asignado las medidas y hemos generado las posiciones (20 valores para el eje de abscisas) en las que se tomaron. En este cdigo se ha hecho de la funcin ajustadatos comentada en el apartado 5.3.1 del Tema 5 pero tras corregir ciertas erratas, que se pudieron detectar al comparar los resultados de la funcin con los obtenidos con la funcin lsquares_estimates en Maxima.

    // Apartado 2.4: Ajuste de perfil parablico // Asigna las ordenadas de las medidas medidasx=[1:1:20]'; medidasy=mdatos_3x20(3,:)'; // Define la funcin ajustadatos como en el apartado 5.3.1 del Tema 5 function polinomio=ajustadatos(mdatos, n) x=mdatos(:,1) y=mdatos(:,2) for j=1:1:n+1 b(j)=sum(y.*x^(j-1)) for k=1:1:n+1 A(j,k)=sum(x^(n+1-k+j-1)) end end polinomio=inv(A)*b endfunction // Ajuste polinmico de grado 2 n=2 medidas=[medidasx medidasy] polinomio=ajustadatos(medidas,n) alturasajustadas=polinomio(1)*medidasx^2+polinomio(2)*medidasx+polinomio(3); plot(medidasx,medidasy,'o',medidasx,alturasajustadas) disp('Coeficientes del polinomio') disp(polinomio)

    Un posible cdigo en Maxima para resolver este apartado es el siguiente.