EXERCICE 1

M=10000

X1<-rexp(M,2)
X2<-rgamma(M,3,1)
X3<-rbinom(M,1,0.25)

X=cbind(X1,X2,X3) ###concatenation de X1, X2 et X3
head(X)  ##Affiche le début de la matrice X
##              X1       X2 X3
## [1,] 0.05491474 2.200301  1
## [2,] 0.09589971 1.543850  1
## [3,] 0.24962990 3.994584  1
## [4,] 0.83412089 3.424689  0
## [5,] 0.06474564 1.566574  0
## [6,] 0.12476121 4.849729  0
apply(X,2,mean) ##Applique la fonction moyenne sur les colonnes de X
##       X1       X2       X3 
## 0.506925 2.984463 0.253500
cov(X) ##Calcul la matrice de variance covariance empirique
##               X1           X2            X3
## X1  0.2645687713 -0.008496136  0.0006710965
## X2 -0.0084961364  2.974405110 -0.0107738249
## X3  0.0006710965 -0.010773825  0.1892566757
apply(X,2,var)
##        X1        X2        X3 
## 0.2645688 2.9744051 0.1892567

EXERCICE 2

rho  = 0.4
K = matrix(c(1,rho,rho,1),2,2)
eigen(K) ##La matrice a deux valeurs propres strict positive, 
## eigen() decomposition
## $values
## [1] 1.4 0.6
## 
## $vectors
##           [,1]       [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068  0.7071068
#donc K définie positive (sauf pour rho=1 ou rho=-1)

A=chol(K) ##matrice triangulaire supérieur
A=t(A) ##matrice triangulaire inférieur
A%*%t(A)
##      [,1] [,2]
## [1,]  1.0  0.4
## [2,]  0.4  1.0
Z = rnorm(2)
X = A%*%Z

MC1<-function(rho,M)
{
K = matrix(c(1,rho,rho,1),2,2) ##matrice de covariance souhaitée
A=chol(K) ##matrice triangulaire supérieur
A=t(A) ##matrice triangulaire inférieur
X=matrix(rep(0,M*2),M,2) ##Initialisation de la matrice
for(m in 1:M)
X[m,]=A%*%rnorm(2) ##Remplissage de la matrice X

plot(X[,1],X[,2],main=paste("rho=",rho))
}

##pour rho  proche de 0, nuage de point homogène centré en 0==> indépendance
##pour rho proche de 1 ou -1, dépendance linéaire parfaite (positive ou négative)

par(mfrow=c(2,2))
MC1(-0.9,5000)
MC1(-0.,5000)
MC1(0.4,5000)
MC1(0.99,5000)

###Exercice 2.2

m=c(-1,0,2)
K=matrix(c(14,8,3,8,6,-3,3,-3,26),3,3)
eigen(K) ##3 valeurs propres strict. positives =>matrice symétrique définie positive
## eigen() decomposition
## $values
## [1] 26.7838910 18.8274297  0.3886793
## 
## $vectors
##             [,1]       [,2]       [,3]
## [1,]  0.18634163  0.8297497  0.5261105
## [2,] -0.06973136  0.5453087 -0.8353299
## [3,]  0.98000731 -0.1189703 -0.1594733
MC2 = function(m,K,M) ##generation de M vecteurs aléatoires tri-variés d'esperence m et de var-covar K
{
d=nrow(K)
A=chol(K) ##matrice triangulaire supérieur
A=t(A) ##matrice triangulaire inférieur
X=matrix(rep(0,M*d),M,d) ##Initialisation de la matrice
for(i in 1:M)
X[i,]=A%*%rnorm(d)+m ##Remplissage de la matrice X
X
#plot3d(X[,1],X[,2],X[,3]) ###library(rgl)
}

X=MC2(m,K,M)
head(X)
##            [,1]       [,2]      [,3]
## [1,] -1.6431812 -0.1212526  8.536087
## [2,]  1.1383235  0.1510050  8.055221
## [3,] -3.9548874 -1.7326693  2.928104
## [4,]  0.1793859  0.7506220 -2.826689
## [5,] -1.2994883 -1.0332412 10.076699
## [6,]  0.8241827 -0.5627310  9.004122

Exercice 3

##Exercice 3.1
rho=0.4
panier=function(rho,M)
{
T=10
Gamma=T*matrix(c(1,rho,rho,1),2,2)
S1=100
S2= 80
r = 0.05 
sd1=0.3
sd2 = 0.4
K=90
p1=1/3
p2=2/3
W=MC2(c(0,0),Gamma,M)
X=rep(0,M)

ST1 = S1*exp((r-sd1^2/2)*T+sd1*W[,1])
ST2 = S2*exp((r-sd2^2/2)*T+sd2*W[,2])

for(i in 1:M)
X[i]=exp(-r*T)*max(0,p1*ST1[i]+p2*ST2[i]-K)

return(c(mean=mean(X),cor=cor(ST1,ST2)))
}

 panier(0.4,10000) ##Test
##      mean       cor 
## 44.498048  0.220486
k=1
Es=NULL
Corr=NULL
for(i in seq(-0.7,0.7,0.001))
{
Es[k]=panier(i,1000)[1]
Corr[k] = panier(i,1000)[2]

k=k+1
}

plot(seq(-0.7,0.7,0.001),Es,xlab="rho",ylab="Esperence")

plot(seq(-0.7,0.7,0.001),Corr,xlab="rho",ylab="Corr")
lines(seq(-0.7,0.7,0.001),seq(-0.7,0.7,0.001),col="red")