2010-12-08 7 views
6

Possible en double:
Solving a linear equationLa meilleure façon de résoudre une équation linéaire dans le code

je dois résoudre par programmation d'un système d'équations linéaires en C# et VB

est ici un exemple des équations:

12.40 = a * 56.0 + b * 27.0 + tx 
-53.39 = a * 12.0 + b * 59.0 + tx 
14.94 = a * 53.0 + b * 41.0 + tx 

Je voudrais obtenir la meilleure approximation pour a, b et tx.

Dois-je utiliser une sorte de classe de matrice ou quelque chose?

+0

Vous dites meilleure approximation, donc savez-vous que votre matrice sera toujours carrée et bien conditionné? –

+0

Voir aussi: http://stackoverflow.com/questions/769/solving-a-linear-equation –

Répondre

1

Je pense que nous avons vu cette question déjà: Solving a linear equation

+0

La langue est légèrement différente, mais la méthode est la même et nous semblons parler d'algorithmes de toute façon, alors oui, il n'y a rien de nouveau dans cette question. –

+5

Commentaires. L'identification des doublons appartient aux commentaires. – dmckee

+0

@dmckee: +1 +1 +1 +1 –

3

élimination de Gauss-Jordan est le plus simple et plus facile à comprendre la méthode pour résoudre un système d'équations linéaires simultanées comme celle-ci. La décomposition de LU est un peu plus stable numériquement, mais votre matrice ne semble pas mal conditionnée, donc je ne pense pas que vous ayez besoin de la complexité supplémentaire.

+0

Gaussian Elimination était ce que je voulais dire, mais à 3.55am, pour une raison que j'ignore, ma tête disait Simplex! Rectifié. http://en.wikipedia.org/wiki/Gaussian_elimination – Orbling

+0

ah oui, le simplex a une étape impliquant l'élimination gaussienne, les autres étapes sont utilisées pour déterminer quelles combinaisons d'équations donnent une solution dans la région possible, et pour se déplacer vers les sommets adjacents dans le sens de la fonction d'objectif améliorée. Bien sûr, j'ai l'avantage qu'il est seulement 22h ici et mon cerveau n'est pas encore si fuzz. –

Questions connexes