Résolution d’un système de n équations/16 inconnues

Tibal

XLDnaute Nouveau
Bonjour à tous !

Je suis actuellement bloqué dans un problème et mes recherches n’ont pas porté leurs fruits.
J’espère donc que ce n’est pas une demande déjà traitée et me lance :

Je souhaite déterminer 16 inconnues (des temps : t1,t2,…t16).
A ma disposition, j’ai un certain nombre d’équations linéaires issues d’observation. (Donc 16 équations ou plus).
A1•t1 + B1•t2 + … +N1•t15 +1•t16 = T1
A2•t1 + B2•t2 + … +N2•t15 +1•t16 = T2

An•t1 + Bn•t2 + … +Nn•t15 +1•t16 = Tn

Dans un premier temps j’ai choisi de prendre 16 équations et d’utiliser droitereg .
Seulement voilà, mes inconnues étant des temps, ils doivent être positifs (c’est mieux il parait) et la fonction droitereg me renvoie une solution avec des valeurs positives et négatives.

Ici on se rend donc compte qu’il y a un problème : Si je ne m’abuse, un système de n équations linéaires a n inconnues n’admet qu’une solution unique (ou 0 ou une infinité, mais dans ce cas j’aurais obtenu une erreur non ?).

J’en déduis que mes données sont erronées (ce dont je me doutais car ce sont des observations).
Je modifie donc mes équations pour prendre en compte ces erreurs (e1…en) et j’obtiens:

A1•t1 + B1•t2 + … +N1•t15 +1•t16 + e1= T1
A2•t1 + B2•t2 + … +N2•t15 +1•t16 + e2 = T2

An•t1 + Bn•t2 + … +Nn•t15 +1•t16 + en = Tn

J’ai donc n inconnues de plus …

J’ai donc essayé le solveur et j’ai rajoute à ma liste d’équations les contraintes suivantes :
t1>0
t2>0

t16>0

J’ai demandé au solveur de trouver une solution tel que la somme au carré des erreurs soit minimale (e1²+e2²+ … en²).
Mais cela ne fonctionne pas, et je ne sais que faire…

C’est pour cela que je demande gracieusement votre aide.
Comment résoudre mon système ?
L’erreur est-elle une erreur de raisonnement, de limites logicielles, d’un réglage mal fait ?
Enfin, si celamarche un jour, est il possible de prendre en compte plus d'equations (20, 30), pour avoir une meilleure estimation des parametres ?

Merci d’avance :)

Ci-joint, mon fichier dans l’état actuel des choses.
 

Pièces jointes

  • demande.xlsm
    78.6 KB · Affichages: 65
  • demande.xlsm
    78.6 KB · Affichages: 75
  • demande.xlsm
    78.6 KB · Affichages: 79

job75

XLDnaute Barbatruc
Re : Résolution d’un système de n équations/16 inconnues

Bonjour Tibal, bienvenue sur XLD,

Je ne comprends pas votre problématique.

Vous voulez résoudre un système d'équation linéaires du type A * T = B, la matrice A et le vecteur B étant composés de constantes.

Le vecteur solution T dépend de A et B, et contiendra donc des valeurs positives ou négatives.

Un point c'est tout.

Voyez le fichier joint avec cette formule en U3 :

Code:
=INDEX(PRODUITMAT(INVERSEMAT(A$3:P$18);R$3:R$18);LIGNES(U$3:U3))
Je ne vois pas ce qu'on peut dire de plus :confused:

A+
 

Pièces jointes

  • Equations à 16 inconnues(1).xls
    41 KB · Affichages: 110

job75

XLDnaute Barbatruc
Re : Résolution d’un système de n équations/16 inconnues

Re,

Dans la colonne Vérification, si l'on affiche les nombres avec 15 décimales, on constate qu'ils diffèrent un peu du vecteur B.

Cela est dû au maximum de chiffres (15) utilisés par Excel dans les calculs.

Fichier (2).

A+
 

Pièces jointes

  • Equations à 16 inconnues(2).xls
    41 KB · Affichages: 61

Tibal

XLDnaute Nouveau
Re : Résolution d’un système de n équations/16 inconnues

Bonjour Job75 et merci pour votre réponse =)


Vous voulez résoudre un système d'équation linéaires du type A * T = B, la matrice A et le vecteur B étant composés de constantes.

Le vecteur solution T dépend de A et B, et contiendra donc des valeurs positives ou négatives.

Un point c'est tout.

Je suis tout à fait d’accord, d’ou ma tentative d’introduire des erreurs dans le calcul. Mais j’ai mal expliqué mon problème. Le voici donc plus en détail :

Disons qu’un certain Bob ait à réaliser un certain nombre d’activités, un certain nombre de fois par jour. On associe à chaque activité un temps d’exécution (t1 à t16).
Le but de cette résolution serait de déterminer à l’avance le temps total que va mettre Bob à tout réaliser un fois que l’on connaît son programme de la journée (ex : le lundi 18, Bob va réaliser 13 fois l’activité 2 puis 4 fois l’activité 5 → équation magique : cela devrait lui prendre 1h30).

On modélise alors de la façon suivante :

A1•t1 + A2•t2 + … +A15•t15 +A16•t16 = Ttotal
(avec Ai le nombre de fois que il réalise l’activité i)

Il ne reste plus qu’à déterminer les coefficients ti.
On mesure alors 16 jours de suite le Ttotal(jour j) et les Ai(jour j).
On obtient 16 équations, 16 inconnues, on applique la méthode que vous m’avez enseignée et c’est bon.

Seulement voilà, ici commencent les problèmes :

Notre Bob n’est pas parfait et ne va pas toujours mettre le même temps pour exécuter la même activité
Les ti(jour j) ne sont pas des constantes mais des « observations » (des valeurs particulières) des densités de probabilité Ti.

Ce que j’aimerai ici serait donc de déterminer des ti moyens, notons : ti’

Ainsi, chaque équation sera :

A1•t1’ + A2•t2’ + … +A15•t15’ +A16•t16’ = Ttotal + erreur(jour j)

Et si nous mesurons n jours de suite nous aurons :

A1(1)•t1’ + A2(1)•t2’ + … +A15(1)•t15’ +A16(1)•t16’ = Ttotal(1) + erreur(1)
A1(2)•t1’ + A2(2)•t2’ + … +A15(2)•t15’ +A16(2)•t16’ = Ttotal(1) + erreur(2)
A1(3)•t1’ + A2(3)•t2’ + … +A15(3)•t15’ +A16(3)•t16’ = Ttotal(1) + erreur(3)

A1(n)•t1’ + A2(n)•t2’ + … +A15(n)•t15’ +A16(n)•t16’ = Ttotal(1) + erreur(n)
J’aimerai donc déterminer les fameux ti’ en minimisant les erreurs.

Comment faire ça avec Excel ?

Si le solveur n’arrive pas à trouver de valeur tel que les erreurs soient faibles, dois-je en déduire que mon modèle est à revoir ?

En tout cas, merci pour votre réponse. =)
J’espère avoir été plus clair cette fois ci.

Bonne soirée
 

job75

XLDnaute Barbatruc
Re : Résolution d’un système de n équations/16 inconnues

Re,

Je pense que dans beaucoup de cas il y a toujours des valeurs de T négatives, quel que soit B.

Donc le solveur ne trouvera pas de solution.

Ce que je ne comprends pas c'est pourquoi ces valeurs négatives vous embêtent.

A+
 

Dranreb

XLDnaute Barbatruc
Re : Résolution d’un système de n équations/16 inconnues

Bonsoir.
J'ai repris le classeur de Job75 j'y ai ajouté en Feuil2 de quoi obtenir une solution approchée (méthode des moindre carrés) lorsqu'il y a plus d'observations que d'inconnues.

P.S. Je suis d'accord que la solution ne devrait pas comporter de temps négatifs si la somme des temps observés est bien celle de toutes les durées d'opérations multipliées par le nombre de fois qu'elles ont été effectuées. Mais de nombreux facteurs mal cernés peuvent fausser le résultat.

P.S.2 Je l'ai modifié en calculant des "Observations" qui s'écartent aléatoirement (écart type = 1) d'une somme de produit des nombres d'exécutions portés dans la matrice par des durées élémentaires imposées.
 

Pièces jointes

  • Equations à 16 inconnues.xls
    91 KB · Affichages: 117
Dernière édition:

Tibal

XLDnaute Nouveau
Re : Résolution d’un système de n équations/16 inconnues

Re-Bonjour,

Merci pour vos reponses.


P.S. Je suis d'accord que la solution ne devrait pas comporter de temps négatifs si la somme des temps observés est bien celle de toutes les durées d'opérations multipliées par le nombre de fois qu'elles ont été effectuées. Mais de nombreux facteurs mal cernés peuvent fausser le résultat.

En effet le problème semble venir de là.
Fichtre qu’il est difficile de modéliser un phénomène, aussi simple soit il ^^.
Le phénomène étant en plus assez instable, je ne pense pas que j’obtiendrai des résultats comme cela.

J’ai donc décidé de changer d’échelle, et de moyen de mesure.
La suite du problème aura certainement 17 inconnues mais 200 équations au minimum.
En espérant arriver à des choses plus réalistes.

Votre feuille me sera donc d’une grande utilité au moment de la résolution.

Au passage, une échelle intermédiaire de mesure m’a permis hier de faire trouver au solveur des solutions positives pas totalement absurdes, serais-je sur la bonne voie ? =)

Merci encore.
 

Statistiques des forums

Discussions
312 689
Messages
2 090 966
Membres
104 716
dernier inscrit
volotruc