# f(x) = x^2 + sin(x) 에대해 f'(0)구하라

f <- deriv (~ x^2 + sin(x), "x", func=T)

f(0)


#f(x)= e^(-x^2)에대 0부터1까지 0부터 무한대 적분

f<-function(x) exp(-x^2)

integrate(f,0,1)


#행렬 작성

matrix(1:6, nrow=2, ncol=3)

matrix(1:6, nrow=2, ncol=3 , byrow = T)


#행렬 꺼내기

x <-matrix(1:6, nrow=2, ncol=3 , byrow = T)

x[1, 2] #1 행 2열

x[c(1,2) ,2] #1,2행에서 2열 성분표시

x[2 ,c(1,2)] #2행에서 1,2열 성분표시


#논리 벡터를 이용한 데이터 출력or 미출력

x[-1, c(T,F,T)]


#행렬의 결합

x <- rbind(c(1,2,3), c(4,5,6)) #rowBind

x <- cbind(c(1,2,3) , c(4,5,6)) #colBind


#행렬 계산

a<- matrix(1:4, 2,2) # 22행렬

b<- matrix(0:3, 2,2) # 22행렬


#전치 행렬

t(x)


#제로 행렬

diag(0,3)


#전치 행렬

diag(1:3,4)


#연립 방정식의 해

a <- matrix(c(0,1,2,3,4,5,6,7,9), 3, 3) #     3y + 6z = 1

b<- matrix(c(1,0,-2))                   # x  +4y + 7z = 0

solve(a,b)                              #2x  +5y + 9z =-2


#역행렬 구하기

#A. b=x b에 A의 차수 의 단위 행렬 지정 후 solve()로 풀면 A의 역행렬 구할수 있다.

A <- array(runif(9),c(3,3))

B <- solve(A)#방법1

a <- matrix(c(0,1,3,4),2,2)

b <- matrix(c(1,0,0,1),2,2)

solve(a,b)#방법2


#일반 역행렬

A <- matrix(c(1,2,3,4,5,6,7,8,9),c(3,3))

B <- solve(A)

#Error in solve.default(A) : 

#  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

library(MASS) #library MASS 사용후 ginv(A)로 사용

B<-ginv(A)

B



#크로스 곱

#crossProd() 사용하면 A와 B의 크로스곱 t(A) %*% B 를 구할수 있다.

a<- matrix(c(1,2,3,4))

b<- matrix(c(0,-1,-2,1))

crossprod(a,b)


R에서 행렬이란

행과 열이 있는 2차원 배열을 가르킨다. 일반적으로 말하는 행렬은 각 요소가 수치로된 행렬만 다루지만, R에서의 행렬은 2차원 배열이므로 논리값이나 문자열 등을 요소로 행렬을 만들 수도있다. 따라서 행렬을 만드려면 matrix() 함수를 사용한다고 설명했지만 배열을 생성하는 의미에서는 array()를 사용해도 만들수 있다.



#image()이용 행렬 이미지 그림표시 바둑판 만들기

x <- matrix(rep(0:1, 81),9,9)

image(x, col=c(5,9))



시뮬레이션 

이장의 목적은 R로 간단한 시뮬레이션을 해본다. R에서는 간단하게 프로그램을 작성할 수 있으므로 시뮬레이션 상황만 설정하면 나머지 과정은 간단하며, 쉽게 시뮬레이션 실험을 할 수 있다. 여기서는 다음과 같은 흐름으로 몬테카를로 시뮬레이션을 소개한다.


시뮬레이션이란 모의실험을 의미한다. 실제로 실험 할 수 있을때는 직접해보는 것이 가장 손쉽고 빠르다. 실제로 실험하기에는 시간과 비용이 지나치게 들거나 실험환경을 설정하기 어려울때 결과 예측이 가능하면 실제로 실험을 할 필요가 없지만, 문제가 복잡해서 결과 예측이 곤란할때는 시뮬레이션을 선택할 수있다. 이장에서는 컴퓨터 시뮬레이션에 관해 설명하고, 이것을 시뮬레이션이라고 부르기로한다.


시뮬레이션 순서 

1. 시몰레이션의 목적을 확인하고 상황 설정을 한다.

2. 시뮬레이션을 하기위해 어떻게 하면 좋을지 실제 순서(알고리즘) 결정한다. R에서는 순서가 정해지면 함수를정의 한다.

3. 시뮬레이션 결과를 출력한다.

4. 결과를 정리하고 알아낸 내용을 검토한다.

5. 시뮬레이션 결과 분석에 필요한 통계처리를한다.

R에서는 실험 하는 작업순서를 프로그램 하게된다.

예를들어 동전 한개를 10회던졌을때 앞면이 몇번나오는지를 보기위해 다음순서로 진행한다.

1. 상황설정 : 동전 한개를 10회던진다. -> 동전을 한번던졌을때 앞면은 1/2 확률로 나온다 가정한다.

2. 순서설정 : 동전을 1회던진다 -> 결과를 기록한다. 컴퓨터로 10회 반복한다. R에서는 다음순서로 처리한다.

- 동전을 던진다. = 난수를 발생한다.

- 결과가 앞면이면 앞면이 나온 횟수를 카운트하는 함수를 만든다.

- 동전을 10회던진 후 앞면이 나온횟수를 출력한다.

3. 시뮬레이션 실행 = R함수 실행

4. 함수 실행 결과를 확인 



Posted by MIDDLE
,