Maximisation d'une fonction sous matlab

Fermé
jaghdali Messages postés 2 Date d'inscription samedi 27 septembre 2008 Statut Membre Dernière intervention 3 octobre 2008 - 28 sept. 2008 à 00:05
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 - 3 oct. 2008 à 03:18
Bonjour,
y aurait -il quelqu'un pour m'aider à créer la syntaxe sur matlab pour maximiser une fonction d'utilité U(x) sur x.

x est comprise entre 0 et 1.

j'ai essayer avec argmax mais en vain..

merci d'avance
A voir également:

3 réponses

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 832
3 oct. 2008 à 03:18
Salut
Apparemment la réponse venait pas assez vite...
http://www.commentcamarche.net/forum/affich 8707715 simulation maximisation d utilite plots
J'en suis désolé, j'avais oublié que mon devoir en tant que bénévole était de résoudre ton exercice en quatrième vitesse.
http://www.commentcamarche.net/faq/sujet 10925 demander de l aide pour vos exercices sur ccm
Bonne nuit
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 832
28 sept. 2008 à 23:25
Salut
[maxU xloc] = max(U);
xloc=x(xloc);
À plus
-1
jaghdali Messages postés 2 Date d'inscription samedi 27 septembre 2008 Statut Membre Dernière intervention 3 octobre 2008
3 oct. 2008 à 03:03
merci beaucoup pour votre réponse concise

mais puisque je suis presque nulle en programmation ... cela ne m'a pas suffit pour résoudre mon problème toute seule et je reviens à votre appui svp en vous posant cette fois ci tout mes soucis en bloc (désolée).

tous mes calculs se font d'une manière itérative pour:
rho_I=0:0.01:1 et
rho_G=0:0.01:1

première étape:
%simulation de la prime d'assurance =P(rho_I,rho_G)%

pour cela j'ai réussi à générer un échantillon de taille 1000 pour rho_G=0.5 et rho_I=0.5 pour simuler P

j'ai commencé par créer une matrice A pour une valeur rho_G=0.5
cette matrice doit avoir 1 en diagonale et rho_G ailleurs

>> A=0.5*ones(10,10);
>> for i=1:10;
A(i,i)=1;
end

en fait il me faut une fonction qui génère plusieurs matrices : une matrice pour chaque valeur de rho_G.

je continue quand même la simulation avec A (pour rho_G=0.5) et rho_I=0.5

s = chi2rnd(1,1000,1);
u=tcdf(randn(1000,10)*chol(A).*( sqrt(1./s)*ones(1,10) ),1);
x = binoinv(u,100,betainv(u,0.1*(1/rho_I -1),0.9*(1/rho_I -1)));

y=[sum(x'(:,i))];
P=mean(y)/10000+0.01*(quantile(y,0.995)-mean(y))/10000

et je me suis arrêtée là !!!

maintenant je dois représenter graphiquement les niveaux de P dans le plan en mettant en abscisse rho_I=0:0.01:1 et en ordonnées rho_G=0:0.01:1

Pourriez vous m'aider à parvenir à ces résultats en faisant varier rho_I et rho_G

deuxième étape:
%maximisation de l'utilité%

voici ma fonction d'espérance d'utilité:


EU= somme (p(i,rho_I) * f(i,a,P)) pour i=1:100
p(i, rho_I) est une fonction de probabilité définie pour rho-I =0:0.01:1

p(i, rho_I)=beta(100-i+0.9*(1/rho_I -1),0.1*(1/rho_I -1)+i)/(101*beta(101-i,i+1)*beta(0.1*(1/rho_I -1),0.9*(1/rho_I -1)))

f(i,a, sigma,P) est la fonction d'utilité pour 0<=a<=1 et sigma=1.5:0.5:3

f(i,a, sigma,P)=(1-sigma)^(-1)*(101-100*a*P-(1-a)*i )^(1-sigma)

alors je dois maximiser EU en "a"pour chaque valeur de rho_I , chaque valeur de P et chaque valeur de sigma sachant que P se calcule en fonction de rho_I et rho_G comme indiqué plus haut.

ensuite représenter graphiquement (colorer par exemple) les point dans le plan (rho_I , rho_G) pour lesquels les EU "maximiseés" (pour chaque rho_I ) sont supérieures à une valeur initiale EU_0 = somme (p(i,rho_I) * (1-sigma)^(-1)*(101-i )^(1-sigma).

au total on aura 4 graphique: un pour chaque valeur de sigma.

je sais que c'est un exercice pénible! mais je serait reconnaissante si vous pouvez m'aider.

mes remerciements d'avance
-1