Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(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.
a=file('open','datostrabajo2.txt','old')
mdatos_3x20=read(a,3,20)
file('close',a)
datosfila1=mdatos_3x20(1,:);
datosfila1ordenados=gsort(datosfila1);
Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13
k=0;
for i=1:1:5
for j=1:1:4
k=k+1;
matriz_5x4(i,j)=datosfila1ordenados(k)
end
end
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);
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
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)
1
f ( x)
e 2
2
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);
Trabajos propuestos por el equipo docente de Herramientas Informticas para Matemticas, curso 2012-13
// 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
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,:)';
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
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)