2010-12-08 11 views
6

Duplicar posibles:
Solving a linear equationmejor manera de resolver una ecuación lineal en el código

que necesito para resolver programación un sistema de ecuaciones lineales en C# y VB

He aquí una ejemplo de las ecuaciones:

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 

Me gustaría obtener la mejor aproximación para a, b y tx.

¿Debo usar algún tipo de clase de matriz o algo así?

+0

Usted dice mejor aproximación, por lo que sabes que siempre será cuadrado y bien acondicionado de su matriz? –

+0

Ver también: http://stackoverflow.com/questions/769/solving-a-linear-equation –

Respuesta

1

Creo que hemos visto esta pregunta ya: Solving a linear equation

+0

El lenguaje es un poco diferente, pero el método es el mismo y parece que estamos hablando de algoritmos de todos modos, así que sí, no hay nada nuevo en esta pregunta. –

+5

Comentarios. La identificación de duplicados pertenece a los comentarios. – dmckee

+0

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

3

de Gauss-Jordan es el más sencillo y más fácil de entender el método para resolver un sistema de ecuaciones lineales simultáneas como esta. La descomposición de LU es un poco más numéricamente estable, pero su matriz no se ve mal condicionada, así que no creo que necesite la complejidad adicional.

+0

Eliminación gaussiana fue lo que quise decir, pero a las 3.55 a. M., Por alguna razón mi cabeza dijo ¡Simplex! Rectificado. http://en.wikipedia.org/wiki/Gelian_elimination – Orbling

+0

ah sí, simplex tiene un paso que implica la eliminación gaussiana, los otros pasos se usan para determinar qué combinaciones de ecuaciones dan una solución en la región factible, y para moverse a vértices adyacentes en la dirección de una función de objetivo mejorada. Por supuesto, tengo la ventaja de que son solo las 10 de la noche aquí y mi cerebro aún no es tan confuso. –

Cuestiones relacionadas