可能重复: 在C中的线性方程组的++?
我有公式如下2系统:
有关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
有关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
我知道r1_x,r1_y,r2_x,r2_y,r3_x,r3_y,r4_x,r4_y值, 和需要解决的一个,B,C,在第二D在第一个,并且,E,F,G,H
I know the values of r1_x, r1_y, r2_x, r2_y, r3_x, r3_y, r4_x, r4_y, and need to solve for a,b,c,d in the first one, and ,e,f,g, h in the second.
我知道我会怎样解决这些用铅笔和纸,但我真的不知道该如何编程。我怎么能解决C或C ++(或伪code)。上述方程
I know how I would solve these with pencil and paper, but I'm really unsure how to program it. How could I solve the above equations in C or C++ (or psuedocode).
感谢
您可以将它映射到一个矩阵系统,一λ= B
,其中 A
是系数矩阵, B
是解向量, X
是未知数。既可以实现高斯消去法,或使用公知的文库。如果您使用LAPACK,例行你想让它 dgesv
。
You can map it to a matrix system, A x = b
, where A
is the coefficient matrix, b
is the solution vector, and x
are the unknowns. You can either implement Gaussian elimination, or use a well known library. If you use LAPACK, the routine you want it dgesv
.