Rechercher : dans
Par :

Maximisation d'une fonction sous matlab

jaghdali, le 28 sep 2008 à 00:05:39
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « maximisation d'une fonction sous matlab » dans :
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
La vectorialisation sous MatLab VoirVectorialisation sous Matlab Sommaire I. Le logiciel MatLab II. Configuration matérielle pour les tests III. Comment vectorialiser un calcul IV. Expérience sur un exemple concret IV.1. Exemple concret choisi IV.2. Programme non...

1

Sacabouffe, le 28 sep 2008 à 23:25:17

Salut

[maxU xloc] = max(U);
xloc=x(xloc);
À plus Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"

2

jaghdali, le 3 oct 2008 à 03:03:19

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

3

 Sacabouffe, le 3 oct 2008 à 03:18:22

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 Thought I heard a rumbling, calling to my name
Two hundred million guns are loaded, Satan cries "Take aim!"