現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::連立方程式

問題


以下の連立方程式をOpenCVの行列関係のライブラリを用いて、計算せよ。

2x + y - 2z = 10
3x + 2y + 2z = 1
5x + 4y + 3z = 4


その他条件:
 解法は「ピボット選択によるガウスの消去法」→CV_LUを指定する

答え(x,y,z)=(1,2,-3)


#include <cv.h>
#include <highgui.h>
#include <cstdio>

using namespace std;

float data[] =
{
2,1,-2,
3,2,2,
5,4,3
};

float y_data[]=
{
10,
1,
4
};

int main( int argc, char **argv)
{

CvMat Matrix_A = cvMat (3,3, CV_32F, data);
CvMat Matrix_Y = cvMat (3,1, CV_32F, y_data);// 縦3、横1

CvMat *Matrix_X;
Matrix_X = cvCreateMat(3, 1, CV_32F);


cvSolve( &Matrix_A, &Matrix_Y, Matrix_X, CV_LU );


for(int i = 0;i<3;i++)
{
printf("answer[%d] = %f\n",i+1,Matrix_X->data.fl[i]);
}


cvReleaseMat(&Matrix_X);

return 0;
}
×

この広告は60日間更新がないwikiに表示されております。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます