Inscription / Connexion Nouveau Sujet
Niveau calculatrices
Partager :

maximisation sous contraintes - mathematica

Posté par mmarie3 (invité) 04-07-07 à 17:37

Bonjour,
Je dois résoudre un problème de maximisation (numérique - 11 variables) sous plusieurs contraintes d'égalités et d'inégalités. Pour cela, on m'a conseillé le logicel mathematica. J'ai donc à l'essai une version 5.2. Dans l'aide, il est écrit que l'on doit utiliser NMaximize.

NMaximize[0.6781×(-1.5×(-1 + Exp[-0.00001×(y1 - 0.038)])) + 0.1755×(1 - Exp[-0.00001×(y2 - 0.038)]) + 0.0577×(1-Exp[-0.00001×(y3 - 0.038)]) + 0.0212×(1 - Exp[-0.00001×(y4 -0.038)]), 0.81×y1 + 0.171×y2 + 0.0171×y3 + 0.0019×y4 ==0.003 && 0 <= y1 ≤ 0.038 && y2 ≥ 0.038 && y3 ≥ 0.038 && y4 ≥ 0.038, {y1, y2, y3, y4}]

Lorsque que je fais cela j'obtiens un message d'erreur qui me dit:
NMaximize::argrx: NMaximize called with 3 arguments; 2 arguments are expected.

Quelqu'un peut-il me dire ce que je fais de travers?

MERCI

Posté par
critou
re : maximisation sous contraintes - mathematica 04-07-07 à 19:03

Voici la syntaxe à utiliser pour NMaximize :
(Pour toi, c'est le deuxième exemple. Apparemment, il te manque les accolades encadrant f et les contraintes !)

Posté par mmarie3 (invité)rectificatif 04-07-07 à 21:30

Je me suis effectivement trompée dans les accolades mais mon problème n'est pas reglé pour autant. Je cherche à maximiser une fonction mais les résultats que j'obtiens ne correspondent pas à un maximum.
Par exemple:
NMaximize(0.998637864*(-1.5*(-1+exp(-0.0001*(y1-0.003375))))+ 0.00175482604*(1-exp(-0.0001*(y2-0.003375)))+0.0002729*(1-exp(-0.0001*(y3-0.003375)))+(0.00005098520)*(1-exp(-0.0001*(y4-0.003375)))+ 0.000030918077932*(1-exp(-0.0001*(y5-0.003375)))+ (4.26859877079*10^-6)*(1-exp(-0.0001*(y6-0.003375)))+(2.95999361738*10^-6)*(1-exp(-0.0001*(y7-0.003375)))+(1.66760417114*10^-6)*(1-exp(-0.0001*(y8-0.003375)))+(1.169151118957*10 ^-6) *(1-exp(-0.0001*(y9-0.003375)))+(8.323612721233*10 ^-7) *(1-exp(-0.0001*(y10-0.003375)))+(6.260871221161*10 ^-7) *(1-exp(-0.0001*(y11-0.003375))), 0.999958333×y1 + 0.0000393361×y2 + 0.0000020826×y3 + 0.00000017993×y4 + 0.0000000599768×y5 + 0.00000000426472×y6 + 0.00000000216621×y7 + 0.000000000880021×y8 + 0.000000000440011×y9 + 0.000000000203082×y10 + 0.0000000000676939×y11 == 0.0025 && 0 <= y1 ≤ 0.003375 && y2 ≥ 0.003375 && y3 ≥ 0.003375 && y4 ≥ 0.003375 && y5 ≥ 0.003375 && y6 ≥ 0.003375 && y7 ≥ 0.003375 && y8 ≥ 0.003375 && y9 ≥ 0.003375 && y10 ≥ 0.003375 &&y11 ≥ 0.003375, {y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11}]
J'obtiens les réponses suivantes:
{valeur de la fonction: 0.000011024932427910965 avec:
y1= -1.6411713243063297^10^-9,
y10 = 2465.8741388087487
y11 =2025.2584911334884
y2 = 0.0036456002629000096
y3 = 0.02526749718758299
y4 = 0.008648448410324168
y5= 40615.91718115063
y6 = 9770.94005654698
y7 = 7471.07462250891
y8 = 4518.18189319612
y9 = 3318.571525184928
Or je peux obtenir une valeur plus importante pour ma fonction avec:
avec y1 = 0
y10 = 233171.2998, y11 = 314554.973, y2 = 0.003375, y3 = 0.003375
y4 = 0.003375, y5 = 25843.95069, y6 = 92196.5357, y7 = 123326.4284,
y8 = 156025.3745   y9 = 189828.9767
Dans ce cas la valeur que va prendre cette fonction est de  0.0000153 > 0.0000110249

Savez vous pourquoi?
merci

Posté par
critou
re : maximisation sous contraintes - mathematica 04-07-07 à 21:42

Ai lu sur internet que NMaximize pouvait parfois retourner seulement un maximum local (ici : )
Je te reviens si je trouve autre chose...

Posté par mmarie3 (invité)merci 06-07-07 à 08:47

Bonjour,
Je te remercie pour l'info. Je vais essayer de voir si je peux trouver en plusieurs fois.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !