de - isidoro ponteisidoro pontee.s.m.c. 4 practicas de laboratorio mÉtodos numÉricos cada alumno...
TRANSCRIPT
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 1
******* Prácticas
De Laboratorio
******* MÉTODOS
NUMÉRICOS ESCUELA SUPERIOR DE LA MARINA CIVIL
LICENCIADO EN MÁQUINAS NAVALES
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 2
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
Cada alumno recibirá 3 créditos (30 horas) de prácticas con el programa MATHEMATICA en el laboratorio de informática.
PRÁCTICAS 0102: Elementos básicos de MATHEMATICA(I).
PRÁCTICAS 0304: Elementos básicos de MATHEMATICA(II).
PRÁCTICAS 0506: Estadística descriptiva de un carácter (I).
PRÁCTICAS 0708: Estadística descriptiva de un carácter (II).
PRÁCTICAS 0910: Variable bidimensional: regresión y correlación (I).
PRÁCTICAS 1112: Variable bidimensional: regresión y correlación (II).
PRÁCTICAS 1314: Probabilidad y variable aleatoria(I).
PRÁCTICAS 1516: Probabilidad y variable aleatoria(II).
PRÁCTICAS 1718: Estimación y contraste de hipótesis(I).
PRÁCTICAS 1920: Resumen estadística. Nociones de errores.
PRÁCTICAS 2122: Resolución numérica de ecuaciones.
PRÁCTICAS 2324: Interpolación.
PRÁCTICAS 2526: Derivación e integración numérica. Integración aproximada.
PRÁCTICAS 2728: Métodos numéricos de resolución de ecuaciones diferenciales.
PRÁCTICAS 2930: Práctica resumen.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 3
BIBLIOGRAFÍA BÁSICA: MALAINA, J. L. Fundamentos matemáticos con MATHEMATICA. Servicio de Publicaciones de la Universidad del País Vasco.
CASTILLO, E. y OTROS Domine MATHEMATICA al 99%. Editorial Paraninfo.
BLACHMAN,N. MATEMÁTICA un enfoque práctico. Editorial Ariel Informática.
ALBERCA BJERREGAARD,P. y OTRO. Prácticas con MATHEMATICA. Estadistica. Ediciones Aljibe.
ALBERCA BJERREGAARD,P. y OTRO. Prácticas con MATHEMATICA. Ampliación de Cálculo.Ediciones Aljibe.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 4
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
Cada alumno recibirá 3 créditos (30 horas) de prácticas con el programa MATHEMATICA en el laboratorio de informática.
PRÁCTICA 1,2,3,4: Elementos básicos de MATHEMATICA. Aritmética básica. Teoría de números.
INTRODUCCIÓN En los últimos años se han producido notables avances en la
computación simbólica. Tradicionalmente los ordenadores estaban diseñados para trabajar con números aproximados y los programas reproducían ciertos algoritmos de cálculo.
Lo que antes era impensable por su complicación y limitación de medios, se hace ahora posible.
Si la importancia del cálculo simbólico es grande para la enseñanza de conceptos y resolución de problemas simples matemáticos, es mucho más importante para la resolución de problemas complejos, como ocurre en el caso de las ciencias aplicadas que usan con mucho exceso los cálculos matemáticos y las propias matemáticas como herramienta.
Además esta herramienta permitirá al alumno reforzar la comprensión de los conceptos y profundizar en los cálculos así como comprobar las soluciones, dibujar funciones y estudiar sus características.
Y por último recalcar, que será en muchas asignaturas de la carrera donde se usará el cálculo simbólico.
SISTEMAS GENERALES DEL CÁLCULO SIMBÓLICO Los más conocidos son: REDUCE: Uno de las más usados y mas antiguos. Aunque en
principio fue diseñado, en 1963, por Anthony C. Hearn para resolver problemas de física de alta energía, fue a partir de 1976 cuando se generalizó su uso para el cálculo simbólico. Está escrito en lenguaje LISP. Sus principales características son su portabilidad y modularidad.
MAPLE: Diseñado en la universidad de Waterloo (Canadá) en 1983. Está escrito en lenguaje C. Inicialmente dirigido a la enseñanza y actualmente es una de los más utilizados.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 5
SMP: Escrito por Stephen Wolfram a principios de los 80 y constituye el germen de MATHEMATICA.
MATHEMATICA: Desarrollado también por S. Wolfram en el año 1988. Destaca del resto de sistemas por sus posibilidades gráficas. Puede usarse en distintas plataformas hardware. Su implementación está hecha en lenguaje C.
muMATH: su desarrollo pertenece a principios de los setenta. Pensado para su uso en la enseñanza. Fue el primer sistema de cálculo simbólico. Funciona en el sistema operativo MSDOS. Escrito en LISP. Su ampliación fue:
DERIVE: apareció en el año 1988. Es muy sencillo de usar , muy barato , se usa en la enseñanza secundaria.
SCRATCHPAD Y AXIOM: elaborados y pensados dentro del álgebra computacional. Tienen una estructura muy diferente a los anteriores. Tienen un alto coste aparte de que necesitan tanto hardware como software muy potentes.
DIFERENTES CONCEPCIONES DE MATHEMATICA MATHEMATICA puede ser entendido como:
I) UNA CALCULADORA DE TIPO NUMÉRICO Pero con dos grandes diferencias a favor de MATHEMATICA:
+) permite trabajar con alrededor de 750 funciones diferentes ya implementadas. ++) trabaja con la precisión indicada por el usuario ( incluyendo precisión infinita y cálculo simbólico).
II) CALCULADORA SIMBÓLICA Puede definirse una función con una variable x o varias,
luego almacenarse y sustituirse por expresiones o parámetros.
III) POTENTE HERRAMIENTA DE CÁLCULO SIMBÓLICO Deriva, integra funciones, resuelve Ecuaciones diferenciales
en forma simbólica, etc.
IV) PAQUETE DE SUBRUTINAS PARA CÁLCULO NUMÉRICO MATHEMATICA permite realizar muchas operaciones que
requieren uso de funciones, subrutinas, procedimientos especiales. Por ejemplo, la integración numérica, la programación lineal están ya implementadas y no hay mas que usarlas directamente.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 6
V) UN PAQUETE GRÁFICO Permite dibujar en dos o tres dimensiones, elegir
perspectivas, sistemas de representación, etc.
VI) LENGUAJE DE PROGRAMACIÓN DE ALTO NIVEL
VII) SISTEMA PARA CREAR DOCUMENTOS INTERACTIVOS Que incluyen texto, gráficos, sonidos, animación, etc.
VIII) SISTEMA DE APOYO A OTROS PROGRAMAS Permite el intercambio de información y tareas con otros
programas.
ELEMENTOS BÁSICOS DE MATHEMATICA. MATHEMATICA está estructurado en dos partes: El Kernel y
el Frond End. El Kernel se encarga de realizar todos los procesos de cálculos internos, ejecutando las órdenes y determinando los resultados del procesamiento solicitado. Al Frond End se le encomienda la comunicación con el usuario, haciendo de intermediario entre el Kernel y el usuario, es de tipo Notebook (anotaciones o apuntes) que permite generar documentos interactivos en los se mezclan gráficos y textos; también se incluyen todos los comandos de MATHEMATICA a usar por el Kernel.
MATHEMATICA es un programa interactivo, al recibir un mensaje lo ejecuta y devuelve un valor. Opera con inputoutput secuencialmente y los va numerando (el nésimo será la entrada In[n] y la salida Out[n]). Una vez cargado el programa el usuario introduce los datos con <intro> (o <shift>+<return>) a continuación tendremos la respuesta.
In[1]:=1+2 Out[1]=3 Una sesión de trabajo interactivo con MATEMÁTICA consiste
en un dialogo a través de inputoutput: In[1] In[2] In[3] … In[k] ... In[n] y sus correspondientes Out[1] Out[2] Out[3] …Out[k] …Out[n] Se usa %k para denotar la última salida Out[k].
NÚMEROS . OPERACIONES. PRECISION MATEMÁTICA reconoce números fracionarios, números con
punto decimal y números complejos expresados en forma binómica
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 7
x + yI. Las operaciones + , , * (también se usa espacio en blanco para el producto) / y ^ nos permiten operar con números.
El orden jerárquico en la ejecución de las operaciones es el habitual en matemáticas.
In[1]:= H15ê24- H2ê3L^4L ê23
Out[1]= 277 14904
In[2]:= H1.234- 234.2L* H6.4- 2.4L *10^3
Out[2]= -931864.
In[3]:= HI- 3 IL^2* H1- ILêHH1+ 5 IL* H7- 4 ILL
Out[3]= 8 845
+ 116I 845
In[4]:= H1+ 3 IL * H2- 2.7 IL êH4- 3. IL
Out[4]= 1.22+ 1.74I
MATEMÁTICA trabaja con dos tipos de precisión: precisión máquina (16 dígitos) y precisión arbitraria.
La función N nos permite aproximar un número real mediante un número con punto decimal con una precisión determinada.
N[x,n] transforma el número x en un punto decimal con precisión n, mostrando en pantalla a lo suma n dígitos.
N[x] o x//N transforma el número x en un numero con punto decimal con precisión máquina, mostrando en pantalla a lo sumo 6 dígitos.
La función Rationalize nos permite aproximar un número con punto decimal por un número fraccionario.
Rationalize[x,tol] transforma un número decimal x en un
numero p/q con un una tolerancia tol , tol q p x < − .
MATEMÁTICA, si no puede calcular el valor exacto de una operación, responde con una expresión simbólica que representa el valor exacto.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 8
In[5]:= N@234ê29, 45D
Out[5]= 8.0689655172413793103448275862068965517241379
In[6]:= N@234ê29D
Out[6]= 8.06897
In[7]:= [email protected], 0.00001D
Out[7]= 117 50
In[8]:= 11^H-1ê2L
Out[8]= 1
è 11
In[9]:= N@%D
Out[9]= 0.301511
Los números decimales son siempre considerados como aproximaciones de números reales de forma que, cuando aparece un número decimal el resultado es convertido automáticamente también a número decimal.
In[10]:= 3ê4+2ê5+ 6ê7
Out[10]= 281 140
In[11]:= 3ê4+0.4+ 6ê7
Out[11]= 2.00714
CONSTANTES. Tenemos las siguientes constantes predefinidas de interés en
los cálculos numéricos: I la unidad imaginaria. Infinity la constante infinito. Pi el número irracional π . Degree factor de conversión de grados a radianes. GoldenRatio cuyo valor es ( ) 2 / 5 1 + llamada razón de oro.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 9
e e .... 718281 . 2 1 1 lim =
+ =
∞ →
n
n n
γ constante Euler .. 57721 . 0 ln 1
lim 1
=
− = ∑
= ∞ →
m
k m m
k γ
Catalán constante Catalán ∑ ∞
=
− = + − 0
2 .. 915966 . 0 ) 1 2 ( ) 1 ( k
k k
Podemos definir nuevas constantes asignando a su valor, mediante el operador = , un nombre definido por una sucesión alfanumérica que comience por una letra
In[12]:= Pulgada= 25.4 mm
Out[12]= 25.4mm In[13]:= 25Pulgada
Out[13]= 635.mm
VARIABLES. Las variables se representan mediante nombres definidos por
una sucesión alfanumérica que comience por una letra o el símbolo $, distinguiendo las letras minúsculas de las mayúsculas. Se antepone el signo = a la variable y al efectuar los cálculos a lo largo de una sesión de trabajo, se usa el último valor asignado a la variable, este valor permanece fijo hasta que se le asigne un nuevo valor mediante una nueva entrada.
In[14]:= y= 100
Out[14]= 100
In[15]:= y= y^2- 32
Out[15]= 9968
In[16]:= Sqrt@y- 167D
Out[16]= 99
Las variables en MATHEMATICA responden a los tipos:
Integer variables con datos que son números enteros. Rational variables con datos que son números fraccionarios
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 10
Real variables con datos que son números decimales. Complex variables con datos que son números complejos. String para cadenas de caracteres alfanuméricos y/o
especiales entre comillas. Symbol valores representados por un simbol
Clear[x1,….,xn] suprime los valores asignados a las variables x1..xn
OPERADORES DE ASIGNACIÓN. El operador de asignación = admite dos posibilidades: I) asignación inmediata = II) asignación diferida :=
In[17]:= a= Piê2;f@x_D = Sin@x+ aD;g@x_D := Sin@x+ aD 8f@0D, g@0D<
Out[18]= 81, 1<
In[19]:= a= Pi;8f@0D, g@0D<
Out[19]= 81, 0<
Además del operador = tenemos los siguientes: x+=dx devuelve x+dx como nuevo valor de x. x=dx devuelve xdx como nuevo valor de x. x*=k devuelve x*k como nuevo valor de x. x/=k devuelve x/k como nuevo valor de x. ++x incrementa a x en una unidad y devuelve a x+1
como nuevo valor de x. x++ incrementa x en una unidad y devuelve el valor x. x decrementa a x en una unidad y devuelve a x1
como nuevo valor de x. x decrementa x en una unidad y devuelve el valor x.
In[20]:= x= 25
Out[20]= 25
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 11
In[21]:= x+= 12
Out[21]= 37
In[22]:= x-= 1
Out[22]= 36
In[23]:= xê= 9
Out[23]= 4
In[24]:= x++
Out[24]= 4
In[25]:= x
Out[25]= 5 In[26]:= --x
Out[26]= 4
CÁLCULOS SECUENCIALES. En MATHEMATICA es posible realizar varios cálculos a la
vez usando una entrada, siempre que estén separados por ; diferenciando: c1;c2; . . .;cn calcula el valor de las expresiones c1;c2;. . .;cn y
devuelve el valor de la última expresión. c1;c2; . . .;cn calcula el valor de las expresiones c1;c2;. . .;cn y
no devuelve el valor de la última expresión.
In[27]:= x= 10;y = Sqrt@9D; z= x*y
Out[27]= 30
In[28]:= x+ y- z
Out[28]= -17
In[29]:= x= 10;y = Sqrt@9D; z= x+ y;
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 12
LISTAS. Las listas son colecciones de objetos que son tratados como
una entidad y constituyen una de las estructuras más importantes de MATHEMATICA, con ellas se podrá operar con conjuntos, podrán construirse vectores y matrices. Al número natural i, que expresa la situación de un elemento en una lista, se le denomina índice del elemento. a,b, … . define una lista formada por elementos a,b,.. lista[[ i ]] determina el elemento i de la lista. Table[exp,i,min,max,p] define una lista cuyos elementos se
obtienen evaluando la expresión exp desde i=min hasta i=max con salto p. los valores por defecto son min=1, p=1
Sort[lista] ordena la lista dada con el orden léxico.
In[30]:= lista1= 81, 2, 6, 14, 10<
Out[30]= 81, 2, 6, 14, 10<
In[31]:= lista1@@4DD
Out[31]= 14 In[32]:= lista2= Table@3^i, 8i, 1, 9, 2<D
Out[32]= 83, 27, 243, 2187, 19683<
In[33]:= lista3= Table@8i, i^2, i*4<, 8i, 1,3<D
Out[33]= 881, 1, 4<, 82, 4, 8<, 83, 9, 12<<
In[34]:= Sort@lista1D
Out[34]= 81, 2, 6, 10, 14<
Reverse[lista] se invierte la lista. Rest[lista] devuelve la lista sin el primer elemento. Drop[lista,n] elimina los n primeros elementos de la lista. Take[lista,n] lista formada por los n primeros elementos. In[35]:= Reverse@lista1D
Out[35]= 810, 14, 6, 2, 1<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 13
In[36]:= Rest@lista1D
Out[36]= 82, 6, 14, 10<
In[37]:= Drop@lista1, 3D
Out[37]= 814, 10<
In[38]:= Take@lista1, 2D
Out[38]= 81, 2<
Append[lista,b] añade el elemento b al final de la lista. Prepend[lista,a] añade el elemento a al principio de la lista Length[lista] determina el número de elementos de la lista. In[39]:= Append@lista1, 18D
Out[39]= 81, 2, 6, 14, 10, 18<
In[40]:= Prepend@lista1, 0, -1D
Out[40]= Prepend@81, 2, 6, 14, 10<, 0, -1D
In[41]:= Prepend@lista1, 0D
Out[41]= 80, 1, 2, 6, 14, 10< In[42]:= Length@lista1D
Out[42]= 5
Join[lista1,…,listan] determina la lista formada al enlazar las listas lista1,.., listan en el orden señalado y manteniéndose los elementos repetidos en ellas.
También podemos operar, con las listas, con los conjuntos respecto a las operaciones unión, intersección y complementación con: Union[lista1,…, listan] Interseccion[lista1,…, listan] Complement[universal,lista1,…,listan]
In[43]:= Join@lista1, lista2D
Out[43]= 81, 2, 6, 14, 10, 3, 27, 243, 2187, 19683<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 14
In[44]:= Union@lista1, lista2D
Out[44]= 81, 2, 3, 6, 10, 14, 27, 243, 2187, 19683<
In[45]:= Intersection@lista1, lista2D
Out[45]= 8<
In[46]:= universal= Table@i, 8i, 1, 15<D; Complement@universal, lista1D
Out[46]= 83, 4, 5, 7, 8, 9, 11, 12, 13, 15< MATHEMATICA representa a un vector como una lista de escalares y a una matriz como una lista de listas (una representa las filas y otra las columnas) para ello usamos la función Table que puede trabajar con varios índices. Table[expresión,j1,n1,…,js,ns] lista multidimensional cuyos
elementos se obtienen eva luando expresión desde j1=1 hasta j1=n1, . . . , js=1 hasta js=ns con salto p=1.
Si s=1 nos queda un vector. Si s=2 nos queda una matriz.
FUNCIONES ELEMENTALES PREDEFINIDAS.
En MATHEMATICA aparte de las operaciones estudiadas, tenemos también una serie de funciones elementales predefinidas,: Divisors[n] lista de los divisores enteros de n. FactorInteger[n] lista de los factores primos de n. PrimeQ[n] reconoce si un número es primo. n! factorial de n. n!! doble factorial de n.
Binomial[n,m] numero combinatorio
m n
Mod[n,m] resto de la división de n entre m. GCD[n1,n2,…,nk] máximo común divisor. LCM[n1,n2,…,nk] mínimo común múltiplo.
In[47]:= Divisors@36D
Out[47]= 81, 2, 3, 4, 6, 9, 12, 18, 36<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 15
In[48]:= 5!!
Out[48]= 15
In[49]:= Binomial@6, 3D
Out[49]= 20
In[50]:= GCD@40, 60, 120D
Out[50]= 20
In[51]:= LCM@40, 60, 120D
Out[51]= 120
Abs[x] valor absoluto del número real x. Round[x] entero mas cercano al valor x. Floor[x] mayor entero menor que x. Ceiling[x] menor entero mayor que x. Sign[x] signo de x. Max[x1,x2,… ,xn] mayor de los números x1,…,xn. Min[x1,x2,… , xn] menor de los números x1,…,xn. Accuracy[x] número de cifras decimales. Random[Real,xmin,xmax] número aleatorio entre los reales
xmin y xmax. Random[ ] número real entre 0 y 1. Sqrt[x] raíz cuadrada de x. Exp[x] exponencial de x. Log[x] logaritmo neperiano de x. Log[a,x] logaritmo en base a de x.
In[52]:= Ceiling@Sqrt@5DD
Out[52]= 3
In[53]:= Random@Real, 8Sqrt@3D, Log@10D<D
Out[53]= 2.00854
In[54]:= Exp@2- 4 ID
Out[54]= E 2-4I
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 16
In[55]:= N@%D
Out[55]= -4.82981 + 5.59206I
In[56]:= N@Log@2+ 4.37 IDD
Out[56]= 1.56985+ 1.14159I
Sin [x] seno de x radianes. Cos[x] coseno de x radianes. Tan[x] tangente de x radianes. ArSin[x] arco cuyo seno es x. ArcCos[x] arco cuyo coseno es x. ArcTan[x] arco cuya tangente es x. Sinh [x] seno hiperbólico de x. Cosh[x] coseno hiperbólico de x. Tanh[x] tangente hiperbólica de x. ArSinh[x] argumento cuyo seno hip. es x. ArcCosh[x] argum. cuyo coseno hiperb.es x. ArcTanh[x] argum. cuya tgte hiperb.es x.
In[57]:= [email protected]+ Sqrt@5D ID
Out[57]= SinA3.22+ I è 5E
In[58]:= Sin@2+ 3 ID
Out[58]= Sin@2+ 3ID
In[59]:= [email protected]
Out[59]= 1.21643
In[60]:= [email protected]+ 4 ID
Out[60]= -1.01065 + 0.16195I
Re[z] parte real del número complejo z. Im[z] parte imaginaria del complejo z. Conjugate[z] conjugado del complejo z. Arg[z] argum. principal del complejo z.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 17
In[61]:= [email protected] 3 ID
Out[61]= 3.31059
In[62]:= [email protected] 3 ID
Out[62]= -1.13417
Aparte de estas funciones, existe a gran variedad de funciones que aquí no exponemos como las funciones de Legendre,Bessel, etc.
La mayor parte de las funciones definidas anteriormente sobre números reales pueden ser extendidas a números complejos, siempre teniendo en cuenta los valores principales.
FUNCIONES DEFINIDAS POR EL USUARIO. REGLAS. Además de las funciones incorporadas por MATEMÁTICA,
tenemos la posibilidad de definir nuestras propias funciones: F[x1_,...,xn_]:=expresión F[x1_,...,xn_]=expresión Define una función f de n variables
x1,...,xn de forma que los valores que toma f vienen definidos por la expresión.
El signo _ se usa para indicar los argumentos de la función después de él puede indicarse el tipo de la misma. (Recordemos que tenemos dos tipos de asignación: inmediata y diferida).
In[63]:= h@x_D = x^3+ 2 x^2- 2
Out[63]= -2 + 2x 2 + x 3
In[64]:= h@yD;h@1D; h@0D
Out[64]= -2
In[65]:= h@yD
Out[65]= -2 + 2y 2 + y 3
Otra de las técnicas que pueden usarse para crear funciones es el uso de funciones recursivas.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 18
In[66]:= Factorial@1D = 1; Factorial@n_D := n* Factorial@n- 1D; Factorial@6D
Out[66]= 720
La función factorial solo tiene sentido para números naturales, no se podría calcular para otro tipo de números, si se intentase calcular daría error,
In[67]:= [email protected]
Out[67]= 1.18994´10 7
para evitar ese error usaríamos una nueva definición
In[68]:= Fac2@1D = 1; Fac2@n_IntegerD := n* Fac2@n- 1D
In[69]:= [email protected]
Out[69]= [email protected]
In[70]:= Fac2@10D
Out[70]= 3628800
MATEMÁTICA permite efectuar sustituciones o transformacio nes matemáticas sobre cualquier expresión matemática; pero antes necesitamos definir una regla /. , si queremos que se aplique repetidamente usaremos //.
In[71]:= x+ Sin@xD - Cos@xD ê. x-> Pi
Out[71]= 1+ p
la orden anterior indica que sobre la fórmula dada se aplique la regla π = x .
In[72]:= x- y+ x*y ê.8x -> a+ y,y-> b<
Out[72]= a- b + y +b Ha + yL
In[73]:= x- y+ x*y êê.8x -> a+ y, y-> b<
Out[73]= a+ b Ha + bL
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 19
MATEMÁTICA dispone de un amplio repertorio de funciones pensando en la representación grafica en 2D y 3D usando las funciones Plot y Plot3D
Plot[f1[x],...,fp[x],x,a,b] Representa gráficamente las curvas f1[x],...,fp[x] en el intervalo [a,b]
Plot3D[f1[x,y],...,fp[x,y],x,a,b,y,c,d] Representa gráficamente las superficies f1[x,y],...,fp[x,y] en el dominio [a,b]x[c,d]
In[74]:= Plot@82 x^2, Sin@3 xD<, 8x, -2, 2<D
2 1 1 2
1
1
2
3
4
Out[74]= Ö Graphics Ö
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 20
In[75]:= Plot3D@x+ y- 1, 8x, -2, 2<, 8y, -2, 2<D
2
1
0
1
2 2
1
0
1
2
4 2 0
2
2
1
0
1
2
Out[75]= Ö SurfaceGraphics Ö
OPERADORES RELACIONALES.OPERADORES LÓGICOS.
Una expresión aritmética es una combinación de constantes y variables o funciones de tipo numérico relacionados entre si mediante las operaciones aritméticas + , , * , / y ^ .
Los operadores relacionales permiten comparar expresiones aritméticas definiendo una expresión relacional, tenemos las siguientes:
x=y x>y x>=y x!=y x<y x<=y su valor es True si la relación es verdadera y False si es falsa
In[76]:= x= 4;y = 8; z= 16;
In[77]:= x^2 <= 2 z
Out[77]= True
In[78]:= Hx*yL^2< z^2
Out[78]= False
Los operadores lógicos permiten combinar expresiones relacionales para definir expresiones lógicas, tenemos las siguientes:
x||y O lógico (OR)
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 21
x&&y Y lógico (AND) !x NO lógico (NOT) Xor[x,y] O lógico exclusivo (OR exclusivo)
En donde:
x y x||y X&&y !x Xor[x,y] True True True True False False True False True False False True False True True False True True False False False False True False su valor es True si la relación es verdadera y False si es falsa
In[79]:= t= 10; p = x > y; q= z> t;
In[80]:= p &&q
Out[80]= False
En expresiones que conllevan operadores aritméticos, relacionales y lógicos, el orden jerárquico es el siguiente:
1 Evaluaciones de funciones. 2 Potenciaciones (^) 3 Multiplicaciones (*) y divisiones (/) 4 Adiciones (+) y sustraciones () 5 Operadores relacionales (=,!=,<,<=,>,>=) 6 Operadores lógicos (!) 7 Operadores lógicos (&&) 8 Operadores lógicos () Y en la misma jerarquía se ejecutan de izquierda a derecha y
para modificar su ejecución usamos pares de paréntesis.
PATRONES (PATTERNS).
Los patrones se usan para definir conjuntos de expresiones que responden a una misma estructura.
Un patrón contiene siempre el símbolo _ el cual puede sustituirse por cualquier expresión. Se suele usar con frecuencia a la hora de definir una función.
Ejemplos:
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 22
x_+ y_ suma de dos expresiones cualesquiera de nombres x e y.
_ * _ producto de dos expresiones cualesquiera.
f[x_,y_] función f de dos variables. DECISIONES E ITERACIONES.
En MATHEMATICA las funciones If , Switch y Which nos permiten tomar decisiones y las funciones For , While y Do realizar iteraciones.
If[test,exp1,exp2] Si test es verdadero evalúa exp1 si es falso evalúa exp2.
In[82]:= f@x_D:= If@x< 1, 10, -10D;
In[83]:= [email protected]
Out[83]= -10
In[84]:= [email protected]
Out[84]= 10
For[inicio,test,incremento,expresión] Se evalúa inicio asignando un valor inicial a la variable índice de For luego, con dicho valor, se evalúan expresión e incremento hasta que test tome el valor False.
In[85]:=
For@i= -3, i < 2, ++i, Print@8i, i^3<DD
8-3, -27<
8-2, -8<
8-1, -1<
80, 0<
81, 1<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 23
ENTRADA Y SALIDA DE DATOS.
MATHEMATICA nos ofrece funciones que permiten introducir expresiones e imprimir resultados: Input[“ texto” ] imprime el mensaje texto y luego lee una
expresión introducida por el usuario. Print[exp1,…,expn] imprime las expresiones exp1,…,expn sin
espacio entre ellas, pasando el cursor a la siguiente línea.
In[86]:=
Input@"Define una matriz simétrica de orden 3"D
Out[86]= 881, 2, 3<, 82, 1, 1<, 83, 1, 2<<
In[87]:=
Print@1,2D;Print@%D
12 881, 2, 3<, 82, 1, 1<, 83, 1, 2<<
COMENTARIOS Y AYUDAS EXTERNAS.
Para introducir comentarios para hacer mas entendibles los códigos escritos se usa (* y *) y que no es evaluado por MATHEMATICA.
In[88]:= Sum@3 i, 8i,0,25<D H*suma de los 25 primeros múltiplos de 3*L
Out[88]= 975
También tenemos ?expresión que muestra información sobre expresión.
COMPLEMENTOS: PAQUETES Y PALETAS.
MATHEMATICA ofrece un amplio conjunto adicional de funciones a través de los denominados paquetes( packages).Para disponer de una función determinada deberemos encontrar el paquete que la contenga, una vez cargado dicho paquete estaremos en condición de usarla.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 24
Los paquetes estándar de MATHEMATICA se dividen en varias categorías. En la versión 3.0 los nombres de los directorios que contienen dichos paquetes son : Álgebra, Calculus, DiscreteMath, Geometry, Graphics, LinearAlgebra, Miscellaneous, NumberTheory, NumericalMath, Statistics y Utilites.
La versión 3.0 también aporta un conjunto de paletas que permiten utilizar, en las definiciones de las entradas de un segmento de cálculo, algunas notaciones estándar y algunos símbolos especiales, así como facilitarnos la escritura de un buen número de funciones matemáticas.
Las paletas correspondientes a los siguientes submenús tienen utilidad en el trabajo de MATHEMATICA:
File/Palettes/AlgebraicManipulation File/Palettes/BasicCalculations File/Palettes/BasicInput File/Palettes/Typeseting File/Palettes/CompleteCharacters File/Palettes/InternacionalCharacters File/Palettes/NotebookLauncher.
ALGUNAS CARACTERISTICAS MÁS
Las entradas se pueden hacer casi totalmente con el aspecto matemático habitual. Por ejemplo, podemos introducir subíndices como x1, tecleando la x seguido de ctrl_ , cocientes como
5 2 ,
tecleando shift ctrl. y 7 simultáneamente, exponentes, como x 2 , tecleando x seguido de ctrl. y 6, alfabeto griego,
. . , , , γ β α constantes como . . , , e π símbolos, ∞ , etc, usando combinaciones de letras delimitadas por ESC. La combinación ctrl. y la barra espaciadora nos devuelve a la línea principal. También se pueden introducir las entradas en este formato en versiones antiguas del programa, aquí combinaremos ambas posibilidades, es decir podremos encontrarnos con entradas como:
In[1]:= H-5+ 13L^3-3ê4+ 623ê4
Out[1]= 667
o bien como
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 25
In[2]:= H-5+13L 3 - 3 4
+ 6234
Out[2]= 667
para evaluar cada entrada usaremos la tecla Intro.
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 26
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 0506: Estadística descriptiva de un carácter(I)
Estas próximas 4 prácticas están dedicadas a la estadística descriptiva. En ella aprenderemos a utilizar la potencia y versatilidad de del software en el manejo de datos y en el cálculo de parámetros estadísticos, así como su representación gráfica y modelización.
DATOS Y TABLAS CON V. ESTADISTICAS DISCRETAS. Comenzamos con el uso de datos mediante el empleo de
listas. Las listas se representan usando las llave y como delimitadores. De esta forma haciendo
In[3]:= datos= 81, 7, 4, 4, 3, 2, 12, 5, 1, 5, 5, 5, 39, 25, 16, 8, 8, 8, 15, 15, 15, 12, 11, 16, 14, 14, 14<
Out[3]= 81, 7, 4, 4, 3, 2, 12, 5, 1, 5, 5, 5, 39, 25, 16, 8, 8, 8, 15, 15, 15, 12, 11, 16, 14, 14, 14<
hemos definido la variable datos como una lista de números. Veremos la potencia de trabajar con listas a lo largo del curso. Si queremos calcular la media de los datos, podemos usar
In[4]:= Apply@Plus, datosDê Length@datosD
Out[4]= 284 27
aquí aparece los comandos Apply para aplicar la suma Plus a toda la lista ( recordamos que algunos comandos están limitados por corchetes ) . Luego dividimos esa suma de los datos entre el numero de ellos , la longitud de la lista Length . Si queremos aproximar el resultado, en numero decimal no tenemos más que emplear el comando N en la forma
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 27
In[5]:= N@%D
Out[5]= 10.5185
donde el símbolo % representa la salida anterior. Podemos aumentar la aproximación añadiendo un parámetro al anterior comando, y así, le pedimos que el dato de la salida 4 nos lo de con 25 decimales.
In[6]:= N@%4, 25D
Out[6]= 10.51851851851851851851852
Además de los numerosos comandos que incluye por defecto el software, podemos incorporar los nuestros. El formato podría ser (estamos definiendo la media)
In[7]:= Media@d_D := Apply@Plus, dD ê Length@dD
recordamos que los [ ] y _ lo usamos para definir funciones y usando := para la definición , de este modo podemos hacer
In[8]:= Media@datosD
Out[8]= 284 27
obteniendo el mismo resultado. De todas maneras, podemos redefinir un poco la definición dada para evitar posibles errores al introducir datos no esperados. Podemos evitar la entrada de un argumento que no sea una lista
In[9]:= Media@4D
Power::infy : Infinite expression 1
0 encountered.
Out[9]= ComplexInfinity
o bien que sea vacía
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 28
In[10]:= Media@8<D
Power::infy : Infinite expression 1
0 encountered.
¥::indet : Indeterminate expression 0 ComplexInfinity encountered.
Out[10]= Indeterminate
de momento lo que hacemos es borrar la definición creada usando el comando Clear
In[11]:= Clear@MediaD
Para verificar entonces que al entrada es una lista ( o vector) usamos el comando VectorQ, y así , si no es una lista no lo admite
In[12]:= VectorQ@9D
Out[12]= False
en cambio si es lista admite la entrada
In[13]:= VectorQ@82, 7<D
Out[13]= True
la definición queda ahora de la forma
In[14]:= Media@d_D := Apply@Plus, dD ê Length@dD ê; VectorQ && Length@dD > 0
donde /; es una restricción en la definición. Se trata de que la entrada sea una lista o un vector VectorQ[d] , && es y , Length[d] >0 que el número de datos sea mayor que cero. De esta forma
In[15]:= Media@3D
Out[15]= Media@3D
no ejecuta el comando ya que la entrada no es un vector, y tampoco
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 29
In[16]:= Media@8<D
Out[16]= Media@8<D
porque aunque es una lista, no tiene elementos.
MATHEMATICA posee paquetes específicos para desarrollar tareas propias de determinadas áreas científicas. Presentaremos algunos de ellos que incorporan muchos comandos propias de la estadística, y que por tanto no necesitaremos definir como hemos hecho con la media. El primer paquete que usamos es:
In[17]:= Needs@"Statistics DescriptiveStatistics "D
que también se puede introducir
In[18]:= <<Statistics DescriptiveStatistics
este paquete incorpora, entre otros muchos, el comando Mean que calcula la media de un conjunto de datos , de tal forma que su argumento es una lista. Siguiendo con nuestro ejemplo
In[19]:= Mean@datosD
Out[19]= 284 27
que lógicamente coincide con nuestra definición. Comentamos ahora que el programa posee una ayuda muy útil para, no solo encontrar la correcta escritura de un comando, sino para conocer su uso. De esta forma podemos ejecutar
In[20]:= ?Me*
Mean MedianDeviation MemoryConstrained Mesh Message MessageOptions MessagesNotebook MeanDeviation MeijerG MemoryInUse MeshRange MessageList MessagePacket MetaCharacters Media MemberQ MenuPacket MeshStyle MessageName Messages Method Median
y el programa devuelve una tabla con todos los comandos existentes que comienzan por Me . Una vez localizado el que nos interesa, tenemos dos posibilidades
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 30
In[21]:= ?Mean
Mean@listD gives the mean of the entries in list.
In[22]:= ?? Mean
Mean@listD gives the mean of the entries in list.
Attributes@MeanD = 8Protected, ReadProtected<
en el primer caso nos dirá su uso y en el segundo, toda la información disponible sobre el comando. Podemos calcular numerosos parámetros estadísticos como la mediana, moda y cuarteles.
In[23]:= Median@datosD
Out[23]= 8
In[24]:= Mode@datosD
Out[24]= 5
In[25]:= Quartiles@datosD
Out[25]= :5, 8, 594 >
destaquemos algunos (medidas de centralización) comandos que aporta el paquete anterior:
Mean[data] calcula la media (media aritmética)
∑ =
n
i i x n 1
1
Median[data] calcula la mediana(valor central) Mode[data] moda (valor más repetido)
GeometricMean[data] media geométrica ∏ =
n
i
ni x 1
1
HarmonicMean[data] media armónica ∑
=
n
i i x
n
1
1
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 31
RootMeanSquare[data] media cuadrática ∑ =
n
i i x n 1
2 1
Quantiles [data,q] q cuantiles Quartiles[data] lista de cuarteles LocationReport[data] lista ordenada que incluye la media,
media armónica y la mediana.
Vemos como actúa alguno In[26]:= LocationReport@datosD
Out[26]= :Mean® 284 27
, HarmonicMean® 4054050 827881
, Median ® 8>
si queremos aproximar estos valores
In[27]:= N@%D
Out[27]= 8Mean® 10.5185, HarmonicMean® 4.8969, Median® 8.<
Podemos también construir una lista con tres medias (geométrica, armónica y cuadrática).
In[28]:= 8GeometricMean@datosD, HarmonicMean@datosD, RootMeanSquare@datosD<
Out[28]= :2 2 2ê27 3 7ê27 5 1ê3 7 4ê27 143 1ê27 , 4054050 827881
, $ 4718
3
3 >
si queremos aproximar resultados, para conocer esos valores, tenemos
In[29]:= 8GeometricMean@datosD, HarmonicMean@datosD, RootMeanSquare@datosD< êê N
Out[29]= 87.67439, 4.8969, 13.219<
usando // N para escribir en decimales.
Otra tabla de comandos incorporados (medidas de dispersión) la forman:
SampleRange[data] rango o recorrido
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 32
Variante[data] cuasivarianza(varianza
insesgada) ∑ =
− −
n
i i x x
n 1
2 ) ( 1
1
VarianceMLE[data] varianza ∑ =
− n
i i x x
n 1
2 ) ( 1
StandardDeviation[data] cuasidesviación
StandardDeviationMLE[data] desviación típica ∑ =
− n
i i x x
n 1
2 ) ( 1
CoefficientOfVariation[data] coeficiente de variación (desviación respecto a la media)
MeanDeviation[data] desviación media ∑ =
− n
i i x x
n 1
1
MedianDeviation[data] desviación respecto a la mediana, es la mediana de los valores
) ( mediana x i −
InterquartileRange[data] rango intercuartílico DispersionReport[data] lista de medidas de dispersión:
cuasivarianza,cuasidesviacion,ran go, desviación media, desviación de la mediana y rango intercuartileo.
Veamos algunos ejemplos, el rango o recorrido de los datos anteriores es
In[30]:= SampleRange@datosD
Out[30]= 38
la cuasivarianza o varianza insesgada
In[31]:= Variance@datosD
Out[31]= 23365 351
In[32]:= Variance@datosD êê N
Out[32]= 66.567
el valor de la varianza
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 33
In[33]:= VarianceMLE@datosD êê N
Out[33]= 64.1015
la cuasidesviación standard
In[34]:= StandardDeviation@datosD êê N
Out[34]= 8.15886
la desviación típica
In[35]:= StandardDeviationMLE@datosD êê N
Out[35]= 8.00634
el coeficiente de variación es
In[36]:= CoefficientOfVariation@datosD
Out[36]=
3$ 70095 13
284
In[37]:= CoefficientOfVariation@datosD êê N
Out[37]= 0.775666
la desviación media
In[38]:= MeanDeviation@datosD êê N
Out[38]= 6.0192
el rango intercuartílico (diferencia entre el tercer y el primer cuartil)
In[39]:= InterquartileRange@datosD êê N
Out[39]= 9.75
finalmente si queremos las principales medidas de dispersión agrupadas tenemos
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 34
In[40]:= DispersionReport@datosD êê N
Out[40]= 8Variance® 66.567, StandardDeviation® 8.15886, SampleRange® 38., MeanDeviation® 6.0192, MedianDeviation® 5., QuartileDeviation® 4.875<
Ahora vemos a trabajar con una serie de comandos nuevos que centralizan algunas de las medidas de dispersión
ZeroMean[data] transforma las datos en unos nuevos de modo que la media de esos nuevos datos es 0.
Satndardize[data] transforma las datos en unos nuevos de modo que la media de esos nuevos datos es 0 y la cuasivarianza 1.
Satndardize[data, MLE>True] transforma las datos en unos nuevos de
modo que la media de esos nuevos datos es 0 y la varianza 1 (tipificar la variable).
veamos algunos ejemplos In[41]:= ZeroMean@datosD :-
257 27
, - 95 27
, - 176 27
, - 176 27
, - 203 27
, - 230 27
, 40 27
, - 149 27
, - 257 27
, - 149 27
, - 149 27
,
- 149 27
, 769 27
, 391 27
, 148 27
, - 68 27
, - 68 27
, - 68 27
, 121 27
, 121 27
, 121 27
, 40 27
, 13 27
, 148 27
, 94 27
, 94 27
, 94 27 >
podemos comprobar que su media es 0.
In[42]:= Mean@%D
Out[42]= 0
cuando se trabaja con aproximaciones hay que hacerlo con cuidado, pues si hubiésemos aproximado en primer lugar
In[43]:= nuevos= ZeroMean@datosD êê N Out[43]= 8-9.51852, -3.51852, -6.51852, -6.51852, -7.51852, -8.51852, 1.48148, -5.51852, -9.51852, -5.51852, -5.51852, -5.51852, 28.4815,
14.4815, 5.48148, -2.51852, -2.51852, -2.51852, 4.48148, 4.48148, 4.48148, 1.48148, 0.481481, 5.48148, 3.48148, 3.48148, 3.48148<
y ahora solicitamos la media, ésta no da 0.
In[44]:= Mean@nuevosD
Out[44]= -4.93432´10 -16
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 35
aunque podemos usar el comando chop para eliminar estos términos despreciables:
In[45]:= ?Chop
Chop@exprD replaces approximate real numbers in expr that are close to zero by the exact integer 0.
y así obtener
In[46]:= Mean@nuevosD êê Chop
Out[46]= 0
usando listas podemos nosotros tipificar la variable mediante pequeñas operaciones, para obtener primero que la media valga 0
In[47]:= mediacero= datos- Mean@datosD Out[47]= :-
257 27
, - 95 27
, - 176 27
, - 176 27
, - 203 27
, - 230 27
, 40 27
, - 149 27
, - 257 27
, - 149 27
, - 149 27
,
- 149 27
, 769 27
, 391 27
, 148 27
, - 68 27
, - 68 27
, - 68 27
, 121 27
, 121 27
, 121 27
, 40 27
, 13 27
, 148 27
, 94 27
, 94 27
, 94 27 >
In[48]:= Mean@mediaceroD
Out[48]= 0
y después
In[49]:= datostip= N@mediaceroêStandardDeviationMLE@datosDD Out[49]= 8-1.18887, -0.439466, -0.814169, -0.814169, -0.93907, -1.06397, 0.185039, -0.689268,
-1.18887, -0.689268, -0.689268, -0.689268, 3.55737, 1.80875, 0.684642, -0.314565, -0.314565,
-0.314565, 0.559741, 0.559741, 0.559741, 0.185039, 0.0601375, 0.684642, 0.43484, 0.43484, 0.43484<
para verificar que la desviación típica es 1
In[50]:= VarianceMLE@datostipD
Out[50]= 1.
Otra tabla de comandos de comandos importante es:
CentralMoment[data,r] momento central de orden r ( ) ∑ =
− n
i
r i x x
n 1
1
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 36
Skewness[data] coeficiente de asimetría que coincide con el cociente entre el momento central de orden 3 y el cubo de la desviación típica
PearsonSkewness1[data] primer coeficiente de asimetría de Pearson.
PearsonSkewness2[data] segundo coeficiente de asimetría de Pearson.
Kurtosis[data] curtosis o apartamiento que mide si la distribución es mas o menos afilada que la distribución normal coincide con el cociente entre el momento central de orden 4 y la potencia cuarta de la desviación típica
KurtosisExcess[data] exceso de curtosis. ShapeReport[data] lista de varios comando anteriores
Veamos algunos ejemplos, calculemos el momento central de orden 2 o momento respecto a la media de orden 2
In[50]:= N@CentralMoment@datos, 2DD
Out[50]= 64.1015
que también podemos calcular usando su propia definición, usando el comando Sum
In[52]:= ?Sum Sum@f, 8i, imax<D evaluates the sum of the expressions f as evaluated for each i from 1 to imax. Sum@f, 8i, imin, imax<D starts with i = imin. Sum@f, 8i, imin, imax, di<D uses steps di. Sum@f, 8i, imin, imax<, 8j, jmin, jmax<, ... D evaluates a sum over multiple indices.
de esta forma teniendo en que datos[[i]] recupera el dato que ocupa el lugar i dentro de la listas de datos, el recorrido del índice mudo comienza en 1 (que se puede suprimir) y finaliza en la longitud de la lista de datos
In[53]:= Sum@Hdatos@@iDD- Mean@datosDL^2, 8i, 1, Length@datosD<D ê Length@datosD
Out[53]= 46730 729
aproximamos y llegamos al mismo resultado
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 37
In[54]:= N@%D
Out[54]= 64.1015
en cuanto a la forma de distribución de datos, tenemos el comando
In[55]:= Skewness@datosD êê N
Out[55]= 1.64452
coeficiente de asimetría que coincide con el cociente entre el momento central de orden 3 y el cubo de la desviación típica
In[56]:= CentralMoment@datos, 3D ê HStandardDeviationMLE@datosDL^3êê N
Out[56]= 1.64452
calculamos también los coeficientes de asimetría de Pearson
In[57]:= PearsonSkewness1@datosD êê N
Out[57]= 2.02915
In[58]:= PearsonSkewness2@datosD êê N
Out[58]= 0.926056
curtosis o apartamiento que mide si la distribución es mas o menos afilada que la distribución normal coincide con el cociente entre el momento central de orden 4 y la potencia cuarta de la desviación típica
In[59]:= Kurtosis@datosD êê N
Out[59]= 6.65166
In[60]:= CentralMoment@datos, 4D ê HStandardDeviationMLE@datosDL^4êê N
Out[60]= 6.65166 para finalizar tenemos algunos coeficientes en
In[61]:= ShapeReport@datosD êê N
Out[61]= 8Skewness® 1.64452, QuartileSkewness® 0.384615, KurtosisExcess® 3.65166<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 38
PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS
PRÁCTICA 0708: Estadística descriptiva de un carácter(II)
DATOS Y FRECUENCIAS CON V. ESTADISTICAS DISCRETAS. Vamos a estudiar como manipular datos estadísticos para
comprobar nuestras propias tablas estadísticas. Volvamos a nuestros datos
In[1]:= datos= 81, 7, 4, 4, 3, 2, 12, 5, 1, 5, 5, 5, 39, 25, 16, 8, 8, 8, 15, 15, 15, 12, 11, 16, 14, 14, 14<
Out[1]= 81, 7, 4, 4, 3, 2, 12, 5, 1, 5, 5, 5, 39, 25, 16, 8, 8, 8, 15, 15, 15, 12, 11, 16, 14, 14, 14<
Carguemos el paquete que nos ayudará
In[2]:= Needs@"Statistics DataManipulation "D
que contiene , entre otros muchos, el comando BinCounts
In[3]:= ?BinCounts
BinCounts@8x1, x2, ...<, 8xmin, xmax, dx<D gives a list of the number of elements in the data 8x1, x2, ...< that lie in bins from xmin to xmax in steps of dx. The bin boundaries are 8xmin <
x <= xmin + dx, ..., xmax - dx < x <= xmax<. BinCounts@88x1, y1<, 8x2, y2<, ...<, 8xmin, xmax, dx<, 8ymin, ymax, dy<D gives a 2-dimensional array of bin counts for the bivariate data 88x1, y1<, 8x2, y2<, ...<. In general, BinCounts gives a p-dimensional array of bin counts for p-variate data.
lo aplicamos a nuestros datos y obtenemos
In[4]:= BinCounts@datos, 84, 16, 2<D
Out[4]= 84, 4, 0, 3, 3, 5<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 39
que nos dice que entre 4 y 4+2 = 6 hay cuatro elementos ( no se incluye el límite inferior en el recuento) ; entre 6 y 6+2=8 hay 4 elementos; entre 8 y 8+2=10 hay 0 elementos, etc. hasta llegar al 16. Para comprobar a mano el resultado es más sencillo ordenar provisionalmente los datos
In[5]:= Sort@datosD
Out[5]= 81, 1, 2, 3, 4, 4, 5, 5, 5, 5, 7, 8, 8, 8, 11, 12, 12, 14, 14, 14, 15, 15, 15, 16, 16, 25, 39<
donde es fácil comprobarlo. Ahora nos proponemos reproducir las tablas que se
acostumbran a calcular a la hora de determinar parámetros estadísticos como la media, la varianza o la desviación típica, y en la que aparecen frecuencias relativas y absolutas, frecuencias acumuladas. Definimos
In[6]:= num = Length@datosD;
In[7]:= a= Min@datosD; In[8]:= b= Max@datosD;
para la longitud de los datos, el valor mínimo y el valor máximo. Construimos las columnas de las tablas. En primer lugar hacemos
In[9]:= col1 = Range@Min@datosD, Max@datosDD
Out[9]= 81, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39<
y obtenemos un rango de valores que recorre nuestros datos (luego refinaremos los datos) . La segunda columna será la de las frecuencias absolutas
In[10]:= col2 = BinCounts@datos, 8Min@datosD -1, Max@datosD, 1<D
Out[10]= 82, 1, 1, 2, 4, 0, 1, 3, 0, 0, 1, 2, 0, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1<
con la ayuda del comando CumulativeSums determinamos la columna de las frecuencias absolutas acumuladas
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 40
In[11]:= col3 = CumulativeSums@col2D
Out[11]= 82, 3, 4, 6, 10, 10, 11, 14, 14, 14, 15, 17, 17, 20, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27<
con la potencia del manejo de listas, calculamos la columna de frecuencias relativas
In[12]:= col4 = col2 ênum êê N
Out[12]= 80.0740741, 0.037037, 0.037037, 0.0740741, 0.148148, 0., 0.037037, 0.111111, 0., 0., 0.037037, 0.0740741, 0., 0.111111, 0.111111, 0.0740741, 0., 0., 0., 0., 0., 0., 0., 0., 0.037037, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.037037<
y también las frecuencias relativas acumuladas
In[13]:= col5 = col3 ênum êê N
Out[13]= 80.0740741, 0.111111, 0.148148, 0.222222, 0.37037, 0.37037, 0.407407, 0.518519, 0.518519, 0.518519, 0.555556, 0.62963, 0.62963, 0.740741, 0.851852, 0.925926, 0.925926, 0.925926, 0.925926, 0.925926, 0.925926, 0.925926, 0.925926, 0.925926, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 0.962963, 1.<
añadimos la columna de productos xi ni
In[14]:= col6 = col1 *col2
Out[14]= 82, 2, 3, 8, 20, 0, 7, 24, 0, 0, 11, 24, 0, 42, 45, 32, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39<
y la columna xi fi
In[15]:= col7 = col1 *col4 êê N
Out[15]= 80.0740741, 0.0740741, 0.111111, 0.296296, 0.740741, 0., 0.259259, 0.888889, 0., 0., 0.407407, 0.888889, 0., 1.55556, 1.66667, 1.18519, 0., 0., 0., 0., 0., 0., 0., 0., 0.925926, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.44444<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 41
y la columna xi 2 ni
In[16]:= col8 = col1^2*col2
Out[16]= 82, 4, 9, 32, 100, 0, 49, 192, 0, 0, 121, 288, 0, 588, 675, 512, 0, 0, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1521<
o bien la formada por los números (xi –x) 2 fi, para ello necesitamos usar el paquete de estadística descriptiva
In[17]:= Needs@"Statistics DescriptiveStatistics "D In[18]:= col9 = Hcol1 - Mean@datosDL 2 *col4 êê N
Out[18]= 86.71127, 2.6876, 2.09363, 3.14749, 4.51171, 0., 0.458518, 0.704771, 0., 0., 0.00858609, 0.162577, 0., 1.34675, 2.23152, 2.22568, 0., 0., 0., 0., 0., 0., 0., 0., 7.76716, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 30.0443<
a partir de esta columna podemos calcular la varianza haciendo
In[19]:= Apply@Plus, col9D êê N
Out[19]= 64.1015
In[20]:= Hcol1 - Mean@datosDL 2 .col4 êê N
Out[20]= 64.1015
para visualizar todos estos datos podemos escribir la tabla
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 42
In[21]:= tabla1=
N@Transpose@8col1, col2, col3, col4, col5, col6, col7, col8, col9<DD
Out[21]= 881., 2., 2., 0.0740741, 0.0740741, 2., 0.0740741, 2., 6.71127<, 82., 1., 3., 0.037037, 0.111111, 2., 0.0740741, 4., 2.6876<, 83., 1., 4., 0.037037, 0.148148, 3., 0.111111, 9., 2.09363<, 84., 2., 6., 0.0740741, 0.222222, 8., 0.296296, 32., 3.14749<, 85., 4., 10., 0.148148, 0.37037, 20., 0.740741, 100., 4.51171<, 86., 0., 10., 0., 0.37037, 0., 0., 0., 0.<, 87., 1., 11., 0.037037, 0.407407, 7., 0.259259, 49., 0.458518<, 88., 3., 14., 0.111111, 0.518519, 24., 0.888889, 192., 0.704771<, 89., 0., 14., 0., 0.518519, 0., 0., 0., 0.<, 810., 0., 14., 0., 0.518519, 0., 0., 0., 0.<, 811., 1., 15., 0.037037, 0.555556, 11., 0.407407, 121., 0.00858609<, 812., 2., 17., 0.0740741, 0.62963, 24., 0.888889, 288., 0.162577<, 813., 0., 17., 0., 0.62963, 0., 0., 0., 0.<, 814., 3., 20., 0.111111, 0.740741, 42., 1.55556, 588., 1.34675<, 815., 3., 23., 0.111111, 0.851852, 45., 1.66667, 675., 2.23152<, 816., 2., 25., 0.0740741, 0.925926, 32., 1.18519, 512., 2.22568<, 817., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 818., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 819., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 820., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 821., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 822., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 823., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 824., 0., 25., 0., 0.925926, 0., 0., 0., 0.<, 825., 1., 26., 0.037037, 0.962963, 25., 0.925926, 625., 7.76716<, 826., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 827., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 828., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 829., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 830., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 831., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 832., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 833., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 834., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 835., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 836., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 837., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 838., 0., 26., 0., 0.962963, 0., 0., 0., 0.<, 839., 1., 27., 0.037037, 1., 39., 1.44444, 1521., 30.0443<<
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 43
que podemos escribir en forma matricial mediante el comando MatrixForm
In[22]:= MatrixForm@%D
Out[22]//MatrixForm= i
k
1. 2. 2. 0.0740741 0.0740741 2. 0.0740741 2. 6.71127 2. 1. 3. 0.037037 0.111111 2. 0.0740741 4. 2.6876 3. 1. 4. 0.037037 0.148148 3. 0.111111 9. 2.09363 4. 2. 6. 0.0740741 0.222222 8. 0.296296 32. 3.14749 5. 4. 10. 0.148148 0.37037 20. 0.740741 100. 4.51171 6. 0. 10. 0. 0.37037 0. 0. 0. 0. 7. 1. 11. 0.037037 0.407407 7. 0.259259 49. 0.458518 8. 3. 14. 0.111111 0.518519 24. 0.888889 192. 0.704771 9. 0. 14. 0. 0.518519 0. 0. 0. 0. 10. 0. 14. 0. 0.518519 0. 0. 0. 0. 11. 1. 15. 0.037037 0.555556 11. 0.407407 121. 0.00858609 12. 2. 17. 0.0740741 0.62963 24. 0.888889 288. 0.162577 13. 0. 17. 0. 0.62963 0. 0. 0. 0. 14. 3. 20. 0.111111 0.740741 42. 1.55556 588. 1.34675 15. 3. 23. 0.111111 0.851852 45. 1.66667 675. 2.23152 16. 2. 25. 0.0740741 0.925926 32. 1.18519 512. 2.22568 17. 0. 25. 0. 0.925926 0. 0. 0. 0. 18. 0. 25. 0. 0.925926 0. 0. 0. 0. 19. 0. 25. 0. 0.925926 0. 0. 0. 0. 20. 0. 25. 0. 0.925926 0. 0. 0. 0. 21. 0. 25. 0. 0.925926 0. 0. 0. 0. 22. 0. 25. 0. 0.925926 0. 0. 0. 0. 23. 0. 25. 0. 0.925926 0. 0. 0. 0. 24. 0. 25. 0. 0.925926 0. 0. 0. 0. 25. 1. 26. 0.037037 0.962963 25. 0.925926 625. 7.76716 26. 0. 26. 0. 0.962963 0. 0. 0. 0. 27. 0. 26. 0. 0.962963 0. 0. 0. 0. 28. 0. 26. 0. 0.962963 0. 0. 0. 0. 29. 0. 26. 0. 0.962963 0. 0. 0. 0. 30. 0. 26. 0. 0.962963 0. 0. 0. 0. 31. 0. 26. 0. 0.962963 0. 0. 0. 0. 32. 0. 26. 0. 0.962963 0. 0. 0. 0. 33. 0. 26. 0. 0.962963 0. 0. 0. 0. 34. 0. 26. 0. 0.962963 0. 0. 0. 0. 35. 0. 26. 0. 0.962963 0. 0. 0. 0. 36. 0. 26. 0. 0.962963 0. 0. 0. 0. 37. 0. 26. 0. 0.962963 0. 0. 0. 0. 38. 0. 26. 0. 0.962963 0. 0. 0. 0. 39. 1. 27. 0.037037 1. 39. 1.44444 1521. 30.0443
y
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 44
Es evidente la necesidad de simplificar la tabla anterior eliminando los ceros y trabar solo con datos no nulos. Para ello usamos el comando frequencies
In[23]:= tabla= Frequencies@datosD
Out[23]= 882, 1<, 81, 2<, 81, 3<, 82, 4<, 84, 5<, 81, 7<, 83, 8<, 81, 11<, 82, 12<, 83, 14<, 83, 15<, 82, 16<, 81, 25<, 81, 39<<
In[24]:= MatrixForm@%D Out[24]//MatrixForm=
i
k
2 1 1 2 1 3 2 4 4 5 1 7 3 8 1 11 2 12 3 14 3 15 2 16 1 25 1 39
y
y así las columnas quedan , la primera la de los datos (v. estadística discretas) distintos que aparecen
In[25]:= col1 = Column@tabla, 2D
Out[25]= 81, 2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16, 25, 39<
ahora escribiremos las frecuencias absolutas
In[26]:= col2 =Column@tabla, 1D
Out[26]= 82, 1, 1, 2, 4, 1, 3, 1, 2, 3, 3, 2, 1, 1<
y las frecuencias absolutas acumuladas
In[27]:= col3 = CumulativeSums@col2D
Out[27]= 82, 3, 4, 6, 10, 11, 14, 15, 17, 20, 23, 25, 26, 27<
las frecuencias relativas
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 45
In[28]:= col4 =col2 ênum
Out[28]= : 2 27
, 1 27
, 1 27
, 2 27
, 4 27
, 1 27
, 1 9 ,
1 27
, 2 27
, 1 9 , 1 9 ,
2 27
, 1 27
, 1 27
>
y las frecuencias relativas acumuladas In[29]:= col5 = col3 ênum
Out[29]= : 2 27
, 1 9 ,
4 27
, 2 9 , 10 27
, 11 27
, 14 27
, 5 9 , 17 27
, 20 27
, 23 27
, 25 27
, 26 27
, 1>
que escribiéndolo en forma matricial la tabla queda
Out[30]= 881., 2., 2., 0.0740741, 0.0740741<, 82., 1., 3., 0.037037, 0.111111<, 83., 1., 4., 0.037037, 0.148148<, 84., 2., 6., 0.0740741, 0.222222<, 85., 4., 10., 0.148148, 0.37037<, 87., 1., 11., 0.037037, 0.407407<, 88., 3., 14., 0.111111, 0.518519<, 811., 1., 15., 0.037037, 0.555556<, 812., 2., 17., 0.0740741, 0.62963<, 814., 3., 20., 0.111111, 0.740741<, 815., 3., 23., 0.111111, 0.851852<, 816., 2., 25., 0.0740741, 0.925926<, 825., 1., 26., 0.037037, 0.962963<, 839., 1., 27., 0.037037, 1.<<
In[31]:= MatrixForm@%D
Out[31]//MatrixForm= i
k
1. 2. 2. 0.0740741 0.0740741 2. 1. 3. 0.037037 0.111111 3. 1. 4. 0.037037 0.148148 4. 2. 6. 0.0740741 0.222222 5. 4. 10. 0.148148 0.37037 7. 1. 11. 0.037037 0.407407 8. 3. 14. 0.111111 0.518519 11. 1. 15. 0.037037 0.555556 12. 2. 17. 0.0740741 0.62963 14. 3. 20. 0.111111 0.740741 15. 3. 23. 0.111111 0.851852 16. 2. 25. 0.0740741 0.925926 25. 1. 26. 0.037037 0.962963 39. 1. 27. 0.037037 1.
y
Para calcular la media, no tendríamos más que construir una columna que represente los productos productos xi ni
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 46
In[32]:= col6 = col1 *col2
Out[32]= 82, 2, 3, 8, 20, 7, 24, 11, 24, 42, 45, 32, 25, 39<
para sumar esta ultima columna y dividir por el número de datos, que no es sino la suma de la segunda columna, hacemos
In[33]:= Apply@Plus, col6D êApply@Plus, col2D êê N
Out[33]= 10.5185 si queremos ampliar la tabla para determinar la varianza o la desviación típica le restamos a cada valor de los datos la media haciendo
In[35]:= col7 = N@col1 - Mean@datosDD
Out[35]= 8-9.51852, -8.51852, -7.51852, -6.51852,
-5.51852, -3.51852, -2.51852, 0.481481, 1.48148, 3.48148, 4.48148, 5.48148, 14.4815, 28.4815<
y después su cuadrado
In[36]:= col8 = N@col7^2D
Out[36]= 890.6022, 72.5652, 56.5281, 42.4911, 30.454, 12.38, 6.34294, 0.231824, 2.19479, 12.1207, 20.0837, 30.0466, 209.713, 811.195<
multiplicamos cada entrada de la columna 8 por las frecuencias absolutas
In[37]:= col9 = N@col8 *col2D
Out[37]= 8181.204, 72.5652, 56.5281, 84.9822, 121.816, 12.38, 19.0288, 0.231824, 4.38957, 36.3621, 60.251, 60.0933, 209.713, 811.195<
la tabla queda entonces
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 47
In[38]:= tabla2=
N@Transpose@8col1, col2, col3, col4, col5, col6, col7, col8, col9<DD
Out[38]= 881., 2., 2., 0.0740741, 0.0740741, 2., -9.51852, 90.6022, 181.204<, 82., 1., 3., 0.037037, 0.111111, 2., -8.51852, 72.5652, 72.5652<, 83., 1., 4., 0.037037, 0.148148, 3., -7.51852, 56.5281, 56.5281<, 84., 2., 6., 0.0740741, 0.222222, 8., -6.51852, 42.4911, 84.9822<, 85., 4., 10., 0.148148, 0.37037, 20., -5.51852, 30.454, 121.816<, 87., 1., 11., 0.037037, 0.407407, 7., -3.51852, 12.38, 12.38<, 88., 3., 14., 0.111111, 0.518519, 24., -2.51852, 6.34294, 19.0288<, 811., 1., 15., 0.037037, 0.555556, 11., 0.481481, 0.231824, 0.231824<, 812., 2., 17., 0.0740741, 0.62963, 24., 1.48148, 2.19479, 4.38957<, 814., 3., 20., 0.111111, 0.740741, 42., 3.48148, 12.1207, 36.3621<, 815., 3., 23., 0.111111, 0.851852, 45., 4.48148, 20.0837, 60.251<, 816., 2., 25., 0.0740741, 0.925926, 32., 5.48148, 30.0466, 60.0933<, 825., 1., 26., 0.037037, 0.962963, 25., 14.4815, 209.713, 209.713<, 839., 1., 27., 0.037037, 1., 39., 28.4815, 811.195, 811.195<<
que en forma matricial queda
In[39]:= MatrixForm@%D Out[39]//MatrixForm=
i
k
1. 2. 2. 0.0740741 0.0740741 2. -9.51852 90.6022 181.204 2. 1. 3. 0.037037 0.111111 2. -8.51852 72.5652 72.5652 3. 1. 4. 0.037037 0.148148 3. -7.51852 56.5281 56.5281 4. 2. 6. 0.0740741 0.222222 8. -6.51852 42.4911 84.9822 5. 4. 10. 0.148148 0.37037 20. -5.51852 30.454 121.816 7. 1. 11. 0.037037 0.407407 7. -3.51852 12.38 12.38 8. 3. 14. 0.111111 0.518519 24. -2.51852 6.34294 19.0288 11. 1. 15. 0.037037 0.555556 11. 0.481481 0.231824 0.231824 12. 2. 17. 0.0740741 0.62963 24. 1.48148 2.19479 4.38957 14. 3. 20. 0.111111 0.740741 42. 3.48148 12.1207 36.3621 15. 3. 23. 0.111111 0.851852 45. 4.48148 20.0837 60.251 16. 2. 25. 0.0740741 0.925926 32. 5.48148 30.0466 60.0933 25. 1. 26. 0.037037 0.962963 25. 14.4815 209.713 209.713 39. 1. 27. 0.037037 1. 39. 28.4815 811.195 811.195
y
ya solo queda sumar esta última columna y dividir por el número de datos
In[40]:= Apply@Plus, col9D êApply@Plus, col2D êê N
Out[40]= 64.1015
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 48
comprobando que es el valor de la varianza
In[41]:= VarianceMLE@datosD êê N
Out[41]= 64.1015
también obtenemos el mismo resultado si elevamos cada dato al cuadrado, lo multiplicamos por la frecuencia (relativa por ejemplo) y luego le sumamos y le restamos la media al cuadrado. En efecto
In[42]:= N@Apply@Plus, col1^2*col4D - Mean@datosD^2D
Out[42]= 64.1015
DATOS Y FRECUENCIAS CON V. ESTADISTICAS CONTINUAS.
Trabaremos ahora agrupando datos usando el concepto de clase (v. estadísticas continuas o por intervalos). Usaremos los datos anteriores agrupándolos en clases de amplitud 5
In[43]:= ampl= 5
Out[43]= 5
y definimos usando el comando Table los intervalos
In[44]:= colum1 = Table@8i, i+ampl<, 8i, Min@datosD -.5, Max@datosD, ampl<D
Out[44]= 880.5, 5.5<, 85.5, 10.5<, 810.5, 15.5<, 815.5, 20.5<, 820.5, 25.5<, 825.5, 30.5<, 830.5, 35.5<, 835.5, 40.5<<
que representamos matricialmente
In[45]:= MatrixForm@%D
Out[45]//MatrixForm= i
k
0.5 5.5 5.5 10.5 10.5 15.5 15.5 20.5 20.5 25.5 25.5 30.5 30.5 35.5 35.5 40.5
y
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 49
la segunda columna tendrá las marcas de clase , valor medio de cada intervalo
In[46]:= colum2 = Table@i+amplê2, 8i, Min@datosD -.5, Max@datosD, ampl<D
Out[46]= 83., 8., 13., 18., 23., 28., 33., 38.<
hacemos un recuento de cada clase en la columna 3
In[47]:= colum3 = BinCounts@datos, 8Min@datosD -.5, Max@datosD, ampl<D
Out[47]= 810, 4, 9, 2, 1, 0, 0, 1<
en la columna 4 las frecuencias absolutas acumuladas
In[48]:= colum4 = CumulativeSums@colum3D
Out[48]= 810, 14, 23, 25, 26, 26, 26, 27<
las frecuencias relativas
In[49]:= colum5 = N@colum3 ê Length@datosDD
Out[49]= 80.37037, 0.148148, 0.333333, 0.0740741, 0.037037, 0., 0., 0.037037<
y las relativas acumuladas
In[50]:= colum6 = N@colum4 ê Length@datosDD
Out[50]= 80.37037, 0.518519, 0.851852, 0.925926, 0.962963, 0.962963, 0.962963, 1.<
juntando todas en la tabla 3
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 50
In[51]:= tabla3= Transpose@8colum1, colum2, colum3, colum4, colum5, colum6<D
Out[51]= 8880.5, 5.5<, 3., 10, 10, 0.37037, 0.37037<, 885.5, 10.5<, 8., 4, 14, 0.148148, 0.518519<, 8810.5, 15.5<, 13., 9, 23, 0.333333, 0.851852<, 8815.5, 20.5<, 18., 2, 25, 0.0740741, 0.925926<, 8820.5, 25.5<, 23., 1, 26, 0.037037, 0.962963<, 8825.5, 30.5<, 28., 0, 26, 0., 0.962963<, 8830.5, 35.5<, 33., 0, 26, 0., 0.962963<, 8835.5, 40.5<, 38., 1, 27, 0.037037, 1.<<
que en forma matricial queda
In[52]:= MatrixForm@%D
Out[52]//MatrixForm= i
k
80.5, 5.5< 3. 10 10 0.37037 0.37037 85.5, 10.5< 8. 4 14 0.148148 0.518519 810.5, 15.5< 13. 9 23 0.333333 0.851852 815.5, 20.5< 18. 2 25 0.0740741 0.925926 820.5, 25.5< 23. 1 26 0.037037 0.962963 825.5, 30.5< 28. 0 26 0. 0.962963 830.5, 35.5< 33. 0 26 0. 0.962963 835.5, 40.5< 38. 1 27 0.037037 1.
y
REPRESENTACIONES GRÁFICAS.
Para finalizar esta práctica, presentaremos algunos de los principales comandos gráficos que incorpora MATHEMATICA para el análisis de datos estadísticos. El primero que veremos es ListPlot cuya sintaxis es
In[53]:= ?ListPlot
ListPlot@8y1, y2, ... <D plots a list of values. The x coordinates for each point are taken to be 1, 2, ... . ListPlot@88x1, y1<, 8x2, y2<, ... <D plots a list of values with specified x and y coordinates.
ejecutamos entonces
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 51
In[54]:= ListPlot@datosD
5 10 15 20 25
10
20
30
Out[54]= Ö Graphics Ö
se ha representado una nube de puntos de la forma ( ) i d i , donde i recorre la posición del dato i d . El comando posee numerosas opciones como puede verse haciendo
In[55]:= ?? ListPlot
ListPlot@8y1, y2, ... <D plots a list of values. The x coordinates for each point are taken to be 1, 2, ... . ListPlot@88x1, y1<, 8x2, y2<, ... <D plots a list of values with specified x and y coordinates.
Attributes@ListPlotD = 8Protected<
Options@ListPlotD = 9AspectRatio® 1 GoldenRatio
,
Axes® Automatic, AxesLabel® None, AxesOrigin® Automatic, AxesStyle® Automatic, Background® Automatic, ColorOutput® Automatic, DefaultColor® Automatic, Epilog® 8<, Frame® False, FrameLabel® None, FrameStyle® Automatic, FrameTicks® Automatic, GridLines® None, ImageSize® Automatic, PlotJoined® False, PlotLabel® None, PlotRange® Automatic, PlotRegion® Automatic, PlotStyle® Automatic, Prolog® 8<, RotateLabel® True, Ticks® Automatic, DefaultFont¦ $DefaultFont, DisplayFunction¦ $DisplayFunction, FormatType¦ $FormatType, TextStyle¦ $TextStyle=
aumentemos el tamaño de los puntos. Para ello añadimos como opción Prolog>PointSize[k], donde k representa el tamaño
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 52
In[56]:= ListPlot@datos, Prolog® [email protected]
5 10 15 20 25
10
20
30
Out[56]= Ö Graphics Ö
gracias a la opción PlotJoined>True, podemos unir los puntos formando una poligonal que permitirá representar polígonos de frecuencias
In[57]:= a= ListPlot@datos, PlotJoined® TrueD
5 10 15 20 25
10
20
30
Out[57]= Ö Graphics Ö
carguemos ahora un nuevo paquete estadístico que nos permitirá hacer mas representaciones gráficas, muy usadas en estadística
In[58]:= Needs@"Graphics Graphics "D
obtenemos, entre otros muchos, el comando BarChart, para realizar el conocido diagrama de barras . En efecto, hagamos,
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 53
In[59]:= b= BarChart@datosD
1 2 3 4 5 6 7 8 9101112131415161718192021222324252627
10
20
30
Out[59]= Ö Graphics Ö
Ahora podemos unir ambas gráficas con el comando Show de donde resulta
In[60]:= Show@a, bD
5 10 15 20 25
10
20
30
Out[60]= Ö Graphics Ö
podemos representar también las frecuencias acumuladas sin mas que ejecutar
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 54
In[61]:= BarChart@col3D
1 2 3 4 5 6 7 8 9 10 11 12 13 14
5
10
15
20
25
Out[61]= Ö Graphics Ö
si queremos que la representación sea mas precisa, con una barra en el lugar del dato y altura la frecuencia absoluta , definimos la amplitud de las barras
In[62]:= amplitud= [email protected], 8i, Length@col1D<D
Out[62]= 80.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8<
y después los datos que queremos representar
In[63]:= datosgraf= Transpose@8col1, col2, amplitud<D
Out[63]= 881, 2, 0.8<, 82, 1, 0.8<, 83, 1, 0.8<, 84, 2, 0.8<, 85, 4, 0.8<, 87, 1, 0.8<, 88, 3, 0.8<, 811, 1, 0.8<, 812, 2, 0.8<, 814, 3, 0.8<, 815, 3, 0.8<, 816, 2, 0.8<, 825, 1, 0.8<, 839, 1, 0.8<<
ya solo nos queda usar el comando GeneralizedBarChart
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 55
In[64]:= GeneralizedBarChart@datosgrafD
10 20 30 40
1
2
3
4
Out[64]= Ö Graphics Ö
el comando tiene multitud de opciones de color, orientación, múltiples representaciones ,etc. Como ejemplo
In[65]:= GeneralizedBarChart@datosgraf, BarOrientation® HorizontalD
1 2 3 4
10
20
30
40
Out[65]= Ö Graphics Ö
PRÁCTICAS DE LABORATORIOMÉTODOS NUMÉRICOS
ISIDORO PONTEE.S.M.C. 56
Ejercicios complementarios personalizados
1. a) Dado el conjunto de datos d1,d2, d3,d4,d5,d6,d7,d8,ds, dm ( dígitos del DNI, su suma y su media) calcula la media, mediana, moda , varianza, desviación típica y los cuartiles
b) Representar el conjunto de datos usando dos representaciones distintas.
2. a) Dado el conjunto de datos 1,2, 7, d3,d4,d5,d6,d7,d8,2, dm calcula la media, mediana, moda , varianza, desviación típica y los cuartiles
b) Representar el conjunto de datos usando dos representaciones distintas.
3. a)Dado el conjunto 1,2,1,2,3,1,d3,0,0,2,3,1,6,3,3,5,d3,dm, d5,5,0,1,0 Calcula, usando listas exclusivamente, la media, la varianza y la desviación típica.
b) con los datos anteriores, representa las frecuencias relativas acumuladas. Usando esta gráfica ¿Cuál es el valor aproximado de la mediana?. Calcule el coeficiente de asimetría y el de curtosis.
4. Dada la lista de modalidades/frecuencias (d1,3),(d2,4),(d3+d5,4)(d5,x),(d6,y), calcula x e y sabiendo que la media es 11 y la desviación típica 6. Nota: usa el comando Solve .
5. Considera la lista d1,d2,d3,5,d2,4,5,7,2,1,3,5,6,d7,2 define un comando que calcule la desviación media de los datos respecto a un parámetro p , que viene dad por la fórmula ∑ − p i datos ) ( . representa gráficamente dicha desviación en función de p , para
) 10 , 0 ( ∈ p