Podemos fazer algumas operações matemáticas simples utilizando o R. Vejamos alguns exemplos calculando as seguinte somas:
> (10:20) > (10:20)^2 > sum((10:20)^2)Note que só precisamos do último comando para obter a resposta, mas é sempre útil entender os comandos passo a passo!
> sum(sqrt(log(10^(0:6))))
Para ilustrar como podemos fazer gráficos de funções vamos considerar cada uma das funções a seguir cujos gráficos são mostrados
na Figura .
A idéia básica é criar um vetor com valores das abscissas (valores de ) e calcular o valor da função (valores de
) para cada elemento da função e depois fazer o gráfico unindo os pares de pontos.
Vejamos os comandos para o primeiro exemplo.
> x1 <- seq(0,50, l=101) > y1 <- 1 - (1/x1) * sin(x1) > plot(x1, y1, type="l")Note que este procedimento é o mesmo que aprendemos para fazer esboços de gráficos a mão em uma folha de papel!
plot.function
conforme pode ser visto
no comando abaixo que nada mais faz que combinar os três comandos acima em apenas um.
> plot(function(x) 1 - (1/x) * sin(x), 0, 50)
Agora vamos ver o gráfico para o segundo exemplo.
> x2 <- seq(80, 120, l=101) > y2 <- (1/sqrt(50*pi)) * exp(-0.02 * (x2-100)^2) > plot(x2, y2, type="l")Note que esta função é a densidade da distribuição normal o o gráfico pode também ser obtido com:
> y2 <- dnorm(x2, 100, 5) > plot(x2, y2, type="l") ## ou ainda: > plot(function(x) dnorm(x, 100, 5), 85, 115)
A função integrate
é usada para integração numérica em uma dimensão.
Como exemplo vamos considerar resolver a seguinte integral:
integrate
conforme este exemplo:
> fx <- function(x) x^2 > integrate(fx, -3, 3) 18 with absolute error < 2e-13A integral acima corresponde à área mostrada no gráfico da Figura
Esta figura é obtida com os seguinte comandos:
> x <- seq(-4, 4, l=100) > x2 <- x^2 > plot(x, x^2, ty='l') > x <- seq(-3, 3, l=100) > x2 <- x^2 > polygon(rbind(cbind(rev(x),0),cbind(x,x2)), col='gray')
Vejamos mais um exemplo.
Sabemos que para distribuições contínuas de probabilidades
a integral está associada a probabilidade em um intervalo.
Seja uma f.d.p. de uma variável contínua,
então
.
Por exemplo, seja
v.a. com distribuição
e portanto
.
A probabilidade
pode ser calculada das três formas diferentes mostradas a seguir.
> fx <- function(x){(1/(9*sqrt(2*pi))) * exp(-(1/162)*(x-100)^2)} > integrate(fx, 85, 105) 0.6629523 with absolute error < 7.4e-15 > integrate(function(x) dnorm(x, 100, 9), 85, 105) 0.6629523 with absolute error < 7.4e-15 > pnorm(105, 100, 9) - pnorm(85, 100, 9) [1] 0.6629523
As funções rep e seq do R são úteis para criar vetores de
dados que seguem um certo padrão.
Clique aqui
para ver um arquivo
de dados.
vamos ver os comandos que podem ser usados para criar vetores para cada
uma das três colunas iniciais deste arquivo.
## Primeira coluna > rep(1:4, each=12) ## ou > rep(1:4, rep(12,4)) ## Segunda coluna > rep(rep(1:3, each=4),4) ## Terceira coluna > rep(1:4, 12)
prod
.
Por exemplo o valor de prod(1:5)
.
gamma(6)
.