De - ISIDORO PONTEISIDORO PONTEE.S.M.C. 4 PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS Cada alumno...

56
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

Transcript of De - ISIDORO PONTEISIDORO PONTEE.S.M.C. 4 PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS Cada alumno...

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 01­02: Elementos básicos de MATHEMATICA(I).

PRÁCTICAS 03­04: Elementos básicos de MATHEMATICA(II).

PRÁCTICAS 05­06: Estadística descriptiva de un carácter (I).

PRÁCTICAS 07­08: Estadística descriptiva de un carácter (II).

PRÁCTICAS 09­10: Variable bidimensional: regresión y correlación (I).

PRÁCTICAS 11­12: Variable bidimensional: regresión y correlación (II).

PRÁCTICAS 13­14: Probabilidad y variable aleatoria(I).

PRÁCTICAS 15­16: Probabilidad y variable aleatoria(II).

PRÁCTICAS 17­18: Estimación y contraste de hipótesis(I).

PRÁCTICAS 19­20: Resumen estadística. Nociones de errores.

PRÁCTICAS 21­22: Resolución numérica de ecuaciones.

PRÁCTICAS 23­24: Interpolación.

PRÁCTICAS 25­26: Derivación e integración numérica. Integración aproximada.

PRÁCTICAS 27­28: Métodos numéricos de resolución de ecuaciones diferenciales.

PRÁCTICAS 29­30: Práctica resumen.

PRÁCTICAS DE LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 MS­DOS. 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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 input­output 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 input­output: 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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 x­dx 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 x­1

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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C. 26

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 05­06: 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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.S.M.C. 38

PRACTICAS DE LABORATORIO MÉTODOS NUMÉRICOS

PRÁCTICA 07­08: 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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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 LABORATORIO­MÉTODOS NUMÉRICOS

ISIDORO PONTE­E.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