¿Resolver un sistema de ecuaciones de forma progtwigble?

Posible duplicado:
Sistema de ecuaciones lineales en C ++?

Tengo los siguientes 2 sistemas de ecuaciones:

Para a, b, c, d:

0 = a * r1_x + b * r1_x * r1_y + c * r1_y + d 1 = a * r2_x + b * r2_x * r2_y + c * r2_y + d 0 = a * r3_x + b * r3_x * r3_y + c * r3_y + d 1 = a * r4_x + b * r4_x * r4_y + c * r4_y + d 

Para e, f, g, h:

 0 = e * r1_x + f * r1_x * r1_y + g * r1_y + h 0 = e * r2_x + f * r2_x * r2_y + g * r2_y + h 1 = e * r3_x + f * r3_x * r3_y + g * r3_y + h 1 = e * r4_x + f * r4_x * r4_y + g * r4_y + h 

Conozco los valores de r1_x, r1_y, r2_x, r2_y, r3_x, r3_y, r4_x, r4_y, y necesito resolver para a, b, c, d en el primero y, e, f, g, h, en el segundo .

Sé cómo resolvería esto con lápiz y papel, pero no estoy seguro de cómo progtwigrlo. ¿Cómo podría resolver las ecuaciones anteriores en C o C ++ (o psuedocode).

Gracias

Puede asignarlo a un sistema de matriz, A x = b , donde A es la matriz de coeficientes, b es el vector de solución y x son las incógnitas. Puede implementar la eliminación gaussiana o usar una biblioteca bien conocida. Si usas LAPACK, la rutina que quieras es dgesv .

Álgebra lineal y matricias son tus amigos aquí.

Eigen parece una reciente biblioteca de álgebra lineal de C ++. Mira si te puede ayudar.

Así es como se ve tu sistema de ecuaciones. Esta es la matriz:

texto alternativo http://sofes.miximages.com/equation/de5b4238674080766b05b44170baef75.gif

Este es el vector de las incógnitas:

texto alt http://sofes.miximages.com/equation/92402dd682f5ec7a4e7055b5c955dace.gif

Aquí está el vector del lado derecho:

texto alternativo http://sofes.miximages.com/equation/506142f0da0bf28e3058eb664d8909ec.gif

Resuelves este sistema de ecuaciones resolviendo

texto alternativo http://sofes.miximages.com/equation/19820cbc1d00c66b7890ef08175810ca.gif

Como su matriz es diagonal de bloques, también lo es su solución.

Puede ingresar su ecuación lineal en Wolfram Alpha y obtener una solución simbólica.

Aquí está la solución para uno de sus sistemas. Puedes ver la forma que toma la matriz.

Puedes usar la eliminación gaussiana , pero eso probablemente sea excesivo si solo tendrás 4 ecuaciones con 4 variables.

Si puede resolverlo en papel, luego resuélvalo en papel, encuentre las fórmulas para a, b, c, d y e, f, g, h luego conéctelos a su progtwig.