Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/01/2013, 16h36   #1
SKone
Membre actif
 
Avatar de SKone
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 309
Points : 189
Points : 189
Envoyer un message via MSN à SKone
Par défaut Chercher minimum : Résoudre système linéaire (sous contraint & matrice réctangulaire)

Bonjour,

Il y a deux situation :
Pour la première, je pense que le titre résume assez bien la situation.
J'ai un système du genre :
Ax=b
A a aucune particularité intéressante, ni symétrique, ni creuse, ni carré, A est rectangulaire, dans le pire des cas 69x3000.
Je ne sais pas si le système est soluble, je dois donc trouver x pour minimiser la distance entre
Ax et b.
Comme vous pouvez le voir j'ai beaucoup moins d'équation que d'inconnu. Existe-t-il une méthode pour résoudre ce système numériquement.
Je dois trouver x pour faire faire converger Ax vers b.

La seconde situation est exactement la même a la différence près que A est carré. Donc même question comment trouver x pour faire converger, Ax vers b ou minimiser la distance entre Ax et b.

Merci
SKone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 21h49   #2
davcha
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 246
Points : 1 358
Points : 1 358
x=pinv(A)*b.

C'est la plus petite solution au problème des moindres carrés.
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 22h25   #3
SKone
Membre actif
 
Avatar de SKone
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 309
Points : 189
Points : 189
Envoyer un message via MSN à SKone
pinv == Pseudo Inverse ? => Moore-Penrose Pseudo Inverse ?
SKone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 15h00   #4
davcha
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 246
Points : 1 358
Points : 1 358
Oui.

Dans ton cas, si ta matrice 69x3000 est M, pinv(M) = M'(MM')^-1, où M' est la transposée de M et X^-1 l'inverse de X.
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 15h51   #5
SKone
Membre actif
 
Avatar de SKone
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 309
Points : 189
Points : 189
Envoyer un message via MSN à SKone
Mais comme le système est sous contraint (fortement 69 équations, 1500 inconnus), il me cela ne suffira pas...

Quel méthode utiliseriez-vous pour faire converger le système vers une solution ?
SKone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 21h15   #6
galerien69
Membre chevronné
 
Homme
F5(){F5}
Inscription : avril 2008
Messages : 450
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : F5(){F5}
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2008
Messages : 450
Points : 689
Points : 689
qu'attendrais-du comme résolution pour le système
Ax=b
avec A=[1 1], et b=2
le système est sous contraint, il admet une infinité de solutions..
(x=[1,1], x=[2,0],[3,-1]...)
galerien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 22h49   #7
SKone
Membre actif
 
Avatar de SKone
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 309
Points : 189
Points : 189
Envoyer un message via MSN à SKone
Je cherche la solution qui minimise la distance entre Ax et b.
Comme on ne peut pas être sur d'être dans le minimum globale je voudrais une distance inférieur à 10^-2 (distance euclidienne).
SKone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 08h41   #8
galerien69
Membre chevronné
 
Homme
F5(){F5}
Inscription : avril 2008
Messages : 450
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : F5(){F5}
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2008
Messages : 450
Points : 689
Points : 689
davcha a déjà répondu à ton problème (je sais pas d'ailleurs pourquoi tu écartes sa solution, il te propose du pinv pour pallier le problème de la matrice rectangulaire. Je sais pas pourquoi ca minimise la distance des moindres carrés, mais ca serait plutot la question à poser plutot que d'écarter la solution!
)
Citation:
C'est la plus petite solution au problème des moindres carrés.
si tu veux pas pinv, utilises levenberg marquardt par exemple
min ||Ax-b|| se réécrit
min somme_i=0^taille_de_x (f(x_i) - b_i)^2
avec f(x_i) = A(i,: )x
galerien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 11h50   #9
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 588
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 588
Points : 11 920
Points : 11 920
Citation:
Envoyé par SKone Voir le message
Comme vous pouvez le voir j'ai beaucoup moins d'équation que d'inconnu. Existe-t-il une méthode pour résoudre ce système numériquement.
oui..

Algorithme du simplexe
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 17h09   #10
davcha
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 246
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 246
Points : 1 358
Points : 1 358
Citation:
Envoyé par SKone Voir le message
Je cherche la solution qui minimise la distance entre Ax et b.
Comme on ne peut pas être sur d'être dans le minimum globale je voudrais une distance inférieur à 10^-2 (distance euclidienne).
Si tu as 1500 inconnues et 69 équations, alors seules 69 inconnues sont contraintes. Les 1431 autres sont libres. Au final, l'espace de tes solutions est un espace à 1431 dimensions. N'importe quel vecteur dans cet espace minimise ta distance à zéro.

C'est dans le cas inverse, où tu as plus d'équations linéairement indépendantes que d'inconnues que tu ne peux pas trouver une solution exacte qui satisfasse toutes tes contraintes.

Et dans les deux cas, la solution que je t'ai proposée est suffisante.
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 18h47   #11
souviron34
Expert Confirmé Sénior
 
Inscription : janvier 2007
Messages : 9 588
Détails du profil
Informations personnelles :
Âge : 55

Informations forums :
Inscription : janvier 2007
Messages : 9 588
Points : 11 920
Points : 11 920
Citation:
Envoyé par davcha Voir le message
C'est dans le cas inverse, où tu as plus d'équations linéairement indépendantes que d'inconnues que tu ne peux pas trouver une solution exacte qui satisfasse toutes tes contraintes.
tu as raison je me suis mélangé les pinceaux en lisant trop vite.. Bien entendu le simplex est pour ce cas...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java

Je ne réponds pas aux MP techniques
souviron34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 16h13   #12
SKone
Membre actif
 
Avatar de SKone
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 25

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 309
Points : 189
Points : 189
Envoyer un message via MSN à SKone
En effet c'est très mal formuler je reformulé :
http://www.developpez.net/forums/d12...on-contrainte/

En tout cas ce problème là est [Résolu]

Merci
SKone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web