Résolution d'une grosse équation

cs_liam Messages postés 5 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 12 septembre 2002 - 27 août 2002 à 11:23
cs_liam Messages postés 5 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 12 septembre 2002 - 28 août 2002 à 11:58
j'aimerai résoudre un systeme de 11 équations à 10 inconnues (impressionnant). cette résolution est enfantine quand on le fait à la main. cependant pour la programmer c plus chaud, car mon prog a des spécifités bien ch..., donc voila le topo:
ma matrice (6,5) avec en plus les totaux en lignes et en colonnes (en gras):

117 207 -5 -10 89 398
34 ........
0 .....
0 .........
-3 ...........
-152 ...........
-5

en faisant le calcul on voit qu'à certains endroits, à cause d'un probleme d'arrondi, la somme n'est pas exacte à + ou - 1 près. le prog va consister à calculer les nouveaux termes de la matrice afin d'avoir une somme correcte. pour ne pas trop déformer la réalité on décide de prendre comme inconnues, les valeurs max en ligne et en colonne en ne comptant qu'une fois la valeur max de la matrice, d'où 10 inconnues pour 11 equations.
on pose alors le calcul avec somme des termes en ligne, dans l'exemple:
117 + a -5 -10 + 89 = 398
.....
...
....
...
...
et en colonne:
117 + 34 + 0 + 0 -3 + b = -5
....
....
..
on résoud le système et on obtient nos bonnes valeurs.

ce systeme fonctionne avec tous les exemples que j'ai testé à la main.
il me maque donc le prog qui va sélectionner les inconnues, mettre le tout en équatio et surtout résoudre le système.

je sais c long mais si une star du vb pouvait me donner un petit tuyau je vous serais tres reconnaissant merci!

2 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
28 août 2002 à 11:45
Pour être tout à fait clair, peux-tu donner ton exemple complet ?
- matrice complète
- les 11 équations obtenues
0
cs_liam Messages postés 5 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 12 septembre 2002
28 août 2002 à 11:58
117 207 -5 -10 89 398 = somme des lignes
34 67 0 2 30 133
0 43 0 0 0 43
0 3 0 0 0 3
-3 -2 0 0 0 -5
-152 -197 -2 -9 -76 -436
-5 122 -8 -17 44 136 = somme des colonnes

on a des valeur importées d'une base et arrondies de maniere logique
des totaux importés de la base et arrondis de maniere logique
probleme: la somme des arrondis (matrice 6,5) est parfois differente des arrondis de la somme (totaux en ligne et colonne)
le prog doit calculer les valeurs à remplacer dans le bleu clair pour que la somme soit correcte
les chiffres en beige sont fixés grace au premier bouton "ajuster les arrondis des sommes"
il n'y a que des entiers relatifs
avec mon algo on selectionne les max en ligne et en colonnes puis on resoud
dans cet exemple
on selectionne
207 -152
67 207 (c le max de la matrice on le comptabilise comme max ligne et colonne pour avoir une inconnue en moins)
43 -5
3 -10
-3 89
-197
en ligne en colonne

on pose le systeme en appelant les variables a,b,c,d,e,f,g,h,i,j dans l'ordre ligne puis colonne, on a alors:
117 + a +b +c +d = 398 (1ere ligne)
34 + e + 0 + 2 + 30 = 133 (2eme ligne)
,,,,,,
,,,
c+2+0+0+0+9=-18 (1ere colonne)
d + 30 + 0 + 0 + 0 -76 = 44 (2eme colonne)

on trouve facilement:
a=306
b= -6
c=-9
d=90
e=67
f=43
g=3
h= -3
i= -153
j= -197

les totaux sont correctes et la marge d'erreur est acceptable, mais je ne sais commnent le programmer
0
Rejoignez-nous