Maximisation d'une fonction sous matlab

Fermé
jaghdali Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1 835
 
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   Statut Membre Dernière intervention   1 835
 
Salut
[maxU xloc] = max(U);
xloc=x(xloc);
À plus
-1
jaghdali Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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