//Solve equation:AX=b
#include <cv.h>
using namespace std;
int main( int argc, char** argv )
{
printf("\n\tSolve equation:AX=b\n\n");
CvMat *A=cvCreateMat(6,6,CV_32FC1);
CvMat *X=cvCreateMat(6,1,CV_32FC1);
CvMat *b=cvCreateMat(6,1,CV_32FC1);
printf("\n\tA=\n\n");
for(int row=0,value=0;row<6;row++)
{
for(int col=0;col<6;col++)
{
cvmSet(A,row,col,++value);
printf("\t%.0f",cvmGet(A,row,col));
}
printf("\n");
}
printf("\n\tb=\n\n");
for(int row=0,value=0;row<6;row++)
{
for(int col=0;col<1;col++)
{
cvmSet(b,row,col,++value);
printf("\t%.0f",cvmGet(b,row,col));
}
printf("\n");
}
cvSolve(A,b,X,CV_SVD);
printf("\n\tX=\n\n");
for(int row=0;row<6;row++)
{
for(int col=0;col<1;col++)
{
printf("\t%f",cvmGet(X,row,col));
}
printf("\n");
}
cvReleaseMat(&A);
cvReleaseMat(&b);
cvReleaseMat(&X);
getchar();
return 0;
}