Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Recherche des solutions positives d'un système linéaire

Posté par
Triton972
07-08-11 à 00:55

Bonjour,

Je dois trouver uniquement les solutions positives d'un système linéaire. Je m'explique :

Je dispose d'un ensemble de "p" objets qui chacun peuvent exercer une influence sur "n" paramètres en fonction de leur poids respectifs. Le but est, en fixant la valeur des "n" paramètres comment trouver les poids des "p" objets qui satisfont à cette exigence.

Soit Xi un élément des "p" objets et Yj un des "n" paramètres on a un coefficient Cij qui représente l'influence de Xi sur Yj.
Chaque Xi à un poids Pi. La somme de Pi = PT (c'est un calcul de barycentre en gros ...)
On a donc pour chaque Yj :

Yj=(Pi x Cij) / PT



Je suis orienté vers un calcul matriciel, en posant :
(P) matrice des poids des "p" objets => dimension (1,p). C'est la matrice à trouver
(Y) matrice des "n" paramètres => dimension (1,n). C'est l'objectif à atteindre
(C) matrice des coefficients => dimension (p,n). Ce sont les paramètres du problème.

voilà mon calcul. (C)t est la transposée de (C) et (C)i est l'inverse de (C)


(P)x(C) = (Y) (P)x(C)x(C)t=(Y)x(C)t (P)=(Y)x(C)tx((C)x(C)t)i


A priori le raisonnement me parait juste ...
Mon problème est que je trouve parfois des éléments de (P) qui sont négatifs et je souhaite trouver exclusivement des valeurs positives.
Quelqu'un pourrait-il orienter mes recherches ?
Autre information : Les valeurs de (Y) sont encadrées. C'est à dire qu'elles doivent toutes être comprises en une valeur mini et maxi.

Merci de votre contribution

Posté par
sandro
re : Recherche des solutions positives d'un système linéaire 25-08-11 à 10:13

Bonjour,
je doit avouer ne pas trop m'y connaitre en matrice, mais si le problème vient uniquement du fait qu'il faut suprimer les valeurs négatives d'une matrie, je pense que l'algorthme suivant devarit fonctionner même si ce n'est peut-être pas le plus rapide (comme en plus je ne sais pas à quoi cet algorithme est destiné).

Soit [A] la matrice de départ

Pour X allant de 1 à "dimmention horizontale de [A]"
   Pour Y allant de 1 à "dimmention verticale de [A]"
      Si [A](Y,X)<0
         alors
         [A](Y,X) prend la valeur de 0                //ou alors de i (complexe) selon l'utilisation
       Fin Si
   Fin Pour
Fin Pour

à la fin de cet algorithme, les valeurs négatives devraient toute être renplacées par 0 ou par i (je conseillerais 0 si la réponse 0 n'est pas une solution, sino plutôt i ou une autre contante).

En espérant d'avoir put t'aider
Sandro



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 !