Bonjour,
je cherche à résoudre cette équation non-linéaire à une inconnue, j'ai déjà essayé avec tous les solvers de MATLAB mais je ne trouve toujours pas de solution.
L'équation en question est la suivante
où mu est la variable à trouver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part frac{\sum_{i=1}^{N}exp(\mu X_i)X_i}{\sum_{i=1}^{N}exp(\mu X_i)}=PI \quad (1)
Les X_i sont les discounted payoff d'une option asiatique, désignés par geopath dans le code MATLAB suivant:
geopath est un vecteur (1,N)
PI est également donné dans mon code
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
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
40
41
42
43
44
45
46
47
48
49
50
51
52 n=25;r=0.06;sig=0.2;S0=100;T=0.5;h=T/n;C=10^5;K=100; vect=randn(n,N); % formula I muo=(S0*exp(r*T)+C)^2; mu1=(S0^2)*exp(2*r*T)*(exp(T*sig^2)-1); mu2=muo+mu1; mu=log(muo/sqrt(mu2)); sigapp=log(1+(mu1/muo)); rho=sqrt(sigapp)/sqrt(T); alpha=((mu-log(S0+C))/T)+(rho^2)/2; mo=0; for k=1:n mo=mo+k*h; end m=(1/n)*(alpha-(rho^2)/2)*mo; vo=0; for t=1:n vo=vo+((n+1-t)^2)*h; end v=(rho/n)*sqrt(vo); d1=(log((S0+C)/(K+C))+m+v^2)/v; d2=(log((S0+C)/(K+C))+m)/v; PI=exp(-r*T)*(S0+C)*exp(m+(v^2)/2)*normcdf(d1)-exp(-r*T)*(K+C)*normcdf(d2) qrs=(alpha-rho^2/2)*h; geo=(S0+C)*exp(cumsum(qrs+rho*sqrt(h)*vect)); geopath=exp(-r*T)*max((geomean(geo)-(K+C)),0) % les X_i sont ds ce vecteur , ce un (1,N) vecteur % j'essaye d écrire l'objectif fonction (1) à résoudre ici, % la résolution sera donc à partir de ce fichier % mais je ne sais vraiment pas si la bonne manière % d'écrire cette l objective (1) dans MATLAB F1=0; F2=0; for k=1:N F1=F1+exp(x*geopath(1,k))*geopath(1,k); F2=F2+exp(x*geopath(1,k)); end F=(F1/F2)-PI; %(1)
Partager