Está en la página 1de 5

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.
34.
24.
14.
4.

43.
33.
23.
13.
3.

42.
32.
22.
12.
2.

41.
31.
21.
11.
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

// 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:
n

xi fi
i 1
n

i 1

fi

x
i 1

fi

f
i 1

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

// 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(((notasnotamedia).^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:
1 x


1
f ( x)
e 2
2

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

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.

h( x) ax 2 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

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.

También podría gustarte