Análisis numérico
Fuentes: Esteve Comas, Jordi y Costa Cor, M. Teresa
Resumen en powerpoint: Analisis numérico
Resumen de la 2a parte: Analisis numérico 2parte
.
Miercoles, 8 de Junio de 2011
.
Casi todo el temario de la asignatura está recogido en estos dos resúmenes una linea más arriba. La asignatura ha consistido en resolver los problemas planteados, y conocer el lenguaje de programación R.
Haciendo los 2 exámenes de evaluación continuada y los de las prácticas, se puede sacar la asignatura tranquilamente. No es interesante, y a ratos parece matemática de bachillerato. Sin embargo, introducirse al lenguaje R es fundamental para matemática actuarial vida.
.
Jueves, 25 de noviembre de 2010
.
Para la segunda práctica de hoy en programación R…
1. para sumar dos matrices nº a nº
>matriz1+matriz2
2. para multiplicar dos matrices nº a nº
>matriz1*matriz2
3. para hacer el producto matricial y vectorial
sujeto a que el nº de filas del primero = nº columnas del segundo,
no cumple la propiedad conmutativa
>matriz1%*%matriz2
con vectores
>vector1%*%vector2
o también
>vector%*%matriz
(el sistema pone él solo al vector en forma de fila para poderlo multiplicar matricialmente)
>matriz%*%vector
(el sistema pone él solo al vector en forma de columna para poderlo multiplicar matricialmente)
si se hace el producto matricial entre una matriz 2×3 y otra 3×2 el resultado es una
matriz 2×2
4. suma y suma acumulada de los elementos de la matriz
>sum(matriz1)
>cumsum(matriz1)
5. operaciones sobre sólo las filas o columnas
Si se quiere aplicar sobre las filas(1) una suma (sum)
>apply(matriz,1,sum)
Si se quiere aplicar sobre las columnas(2) una suma acumulada (cumsum)
>apply(matriz,2,cumsum)
6. hacer la traspuesta
Para colocar las filas en columnas
>t(matriz)
7. ordenar de menor a mayor un vector
>vectorordenado<-sort(vector)
8. ordenar una matriz ordenando de mayor a menor los vectores “x”, “y”
[,1] [,2] [,3] [,4] <— en la fila vector y desordenado
[1,] 0 5 3 1
[2,] 3 5 2 8
[3,] 1 4 8 0 <—- matriz desordenada
[4,] 3 10 1 4
en la columna el vector x desordenado
>matrizordenada<-matriz[order(x),order(y)]
9. calcular las marginales de las filas
Es calcular la suma por filas de la matriz ordenada
>marginalesx<-apply(matrizordenada,1,sum)
10. la media ponderada de las marginales respecto al vector x
será la suma de los valores ordenados de x * el valor marginal
dividido la suma total de las marginales de x
>mediax<-sum(xord*marginalesx)/sum(marginalesx)
o también usando la función
>mediax<-weighted.mean(xord,marginalesx)
11. la covarianza de la matriz respecto x e y
“outer” obliga a multiplicar cada valor de “x” por el valor de “y”
…outer(vector1,vector,”operación que queremos aplicar entre ambos vectores”)
>Sxy<-sum(outer(xord,yord,”*”)*matrizordenada/sum(matrizordenada)-mediax*mediay
12. para calcular la recta Y=a+bX a partir de una serie de valores de X y de Y
>Y<-c(4,10,11,25,16)
>X<-c(1:5)
>sol<-lsfit(x,y)
>sol$coefficients
donde “intercept” es = a
el valor “x” es =b
13. la media de un vector x
>mediavectorx<-mean(x)
14. la varianza de un vector x
>varianzax<-sum((x-mediax)^2)/lenght(x)
15. covarianza de dos vectores del mismo lenght
>Sxy<-sum(x*y)/lenght(x)-mediax*mediay
16. la recta de regresión
b=
>b<-(-)Sxy/varianzax
a=
>a<-mediay-b*mediax
17. resolución de sistemas de ecuaciones
Se crea una matriz con los coeficientes de las variables de filas=ecuaciones
Se crea un vector con el igual de cada ecuación
>solve(matriz,vector)
18. para calcular el producto y producto acumulado de los elementos de un vector
>prod(vector)
>cumprod(vector)
19. señalar la posición del elemento mayor (máximo) de un vector
>which.max(vector)
y para que lo nombre
>max(x)
20. crear un vector a partir de la comparación de los valores máximos (max) o mínimos de dos vectores)
Después de crear los 2 vectores
>pmax(vector1,vector2)
o “pmin”…
21. para revertir el orden de los elementos de un vector
>rev(x)
para que además los ordene
>rev(sort(x))
22. para relacionar un vector de factores con otro numérico
tapply(vector numérico, vector factor, operación)
si tenemos un vector “salarios” y otro con “provincias”
para calcular la media de salario por provincias
>tapply(sal,prov.factor,mean)
23. crear una matriz a partir de dos vectores o matrices o ambos
colocándolos por columnas
>cbind(x,y)
colocándolos por filas
>rbind(x,y)
24. crear una matriz identidad
diagonal con valores y el resto cero
>diag(1:4)
seleccionar la diagonal de una matriz ya creada
>diag(matriz)
25. la inversa de una matriz
debe ser cuadrada y con determinante no-cero
>solve(matriz)
26. para encontrar el determinante
>det(matriz)
.
Jueves, 28 de octubre de 2010
.
Para la primera práctica de hoy en programación…
Un pajarito me ha dicho que pueden preguntar sobre
1. introducir vectores y visualizarlos, y saber su longitud (length), visualizar elementos mayores a un nº
2. crear matrices de 3×4, y visualizar algunas filas y algunas columnas
3. crear vectores edad, estado civil, etc, y averiguar qué tipo son (mode)
4. crear un data.frame con los vectores anteriores y renombrar las filas, averiguar su estructura
5. escribir una función de segundo grado y solucionarla para x=0,..,15
6.visualizar todos los objetos del workspace
1. para introducir vectores en R
Nombrar un vector y añadirle sus componentes
>v1<-c(1,2,3,4,5)
para visualizarlo
>v1
para saber su longitud
>length(v1)
para visualizar elementos mayores a un nº (p.ej. los valores mayores a 3)
>v1[v1>3]
2. para crear una matriz 3×5 (3 filas, 5 columnas)
Crear el vector que lo va a formar, por defecto sigue el orden (columna1,columna2,columna3…)
>dades<-c(1,2,3,4,5,11,12,13,14,15,21,22,23,24,25)
nombrar una matriz y añadirle “dades”, indicando que me agregue los datos por filas, y no por columnas
>m1<-matrix(dades,3,5,byrow=T)
y saldría algo así
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
si no hubiera añadido el “byrow=T” habría rellenado la matriz por columnas
1 4 12 etc…
2 5 13
3 11 14
para seleccionar de la matriz m1 la primera fila
>m1[1,]
para seleccionar las dos primeras filas y todas las columnas menos la tercera
>m1[c(1,2),-3]
para seleccionar la primera columna
>m1[,1]
para crear una matriz 3×5 donde las 3 filas sean
una secuencia de 1 a 5
5 cincos seguidos
otra secuencia de 31 a 35
>dades<-c(1:5,rep(5,5)31:35)
>m1<-matrix(dades,3,5,byrow=T)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 5 5 5 5 5
[3,] 31 32 33 34 35
3. para crear un vector edad
>edad<-c(14,17,18,24)
para crear un vector estado civil
>estado<-c(“soltero”,”soltero”,”soltero”,”casado”)
para crear un data.frame llamado hogar con una matriz de lo anterior
>hogar<-data.frame(edad,estado)
para ver la estructura del dataframe
>str(hogar)
para ver el tipo de datos que componen el vector “estado”
>mode(estado)
para renombar las filas y que en lugar de numerito salgan nombres
>rownames(hogar)<-(“juan”,”pedro”,”sonia”,…)
para renombrar las columnas
>colnames(hogar)…
4.
5. para ver todo el workspace
>ls()
.
Martes, 26 de octubre de 2010
.
Métodos para encontrar el valor de x que anula la función. f(x) = 0
1. Método de las mitades
2. método de las partes proporcionales
3. método de las tangentes de newton
.
Jueves, 14 de octubre de 2010
.
Más clase de prácticas de lenguaje R, sumatorios, sumatorios acumulados, media, varianza y desviación.
.
Jueves, 30 de septiembre de 2010
.
Clase de prácticas de lenguaje R, hemos creado vectores, matrices, y data.frame
.
Martes, 28 de septiembre de 2010
.
Hemos hecho la clase en ordenadores, básicamente para ejemplificar la fórmula de simpson en la aproximación del cálculo de un área. Lo tengo en excel y derive por si alguien lo quiere (que me lo pida por email)
.
Jueves, 23 de septiembre de 2010
.
Estamos introduciéndonos en el lenguaje de R.
.
Martes, 21 de septiembre de 2010
.
Estamos con teoría sobre aproximación a una función curva. Las fórmulas de Newton-cotes:
http://es.wikipedia.org/wiki/F%C3%B3rmulas_de_Newton%E2%80%93Cotes
http://luda.uam.mx/curso2/tema5/integral.html
.
Jueves, 16 de septiembre de 2010
.
Clase de presentación. Nos han repetido el tema de cómo funciona la avaluación continuada, y que utilizaremos el entorno de programación R.
http://www.r-project.org/
.
Martes, 14 de septiembre de 2010
.
El profe se llama Jordi.
Los jueves de 16h-18h toca práctica en la sala de informática 8.
Hemos empezado ya con temario sobre conceptos matemáticos:
Teorema del valor medio.
Si tenemos un intérvalo cerrado (los extremos se incluyen) y afitado (no va de menos infinito a infinito, sino que los extremos son finitos), y este intérvalo (a,b) es continuo y derivable en todos sus puntos…
[a,b] significa continuo
(a,b) significa derivable, es decir, sin “esquinas”
… entonces tenemos un número “c” tal que su derivada coincide con la pendiente del segmento entre a y b.
f’(c) = [ f(b) - f(a) ] / b-a
http://es.wikipedia.org/wiki/Teorema_del_valor_medio
es difícil explicarlo en un editor de texto, así que sólo menciono que ha seguido con el teorema de Taylor
http://www.mat.uson.mx/eduardo/calculo2/soltaylor/soltaylorHTML/taylor.htm
y con la fórmula de Mac-Laurin
http://es.wikipedia.org/wiki/F%C3%B3rmula_de_Euler-Maclaurin