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

問題


以下の3次方程式の解をもとめよ。
その他条件:
 実根のみでよい。

(x + 1)(x + 2)(x + 3) = 0 ⇔ x^3 + 6*x^2 + 11*x + 6 = 0

答え


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

using namespace std;

double coeffs[] =
{
1,6,11,6
};



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

CvMat Mat_COF = cvMat (1,4, CV_64F, coeffs);// 縦1、横4


CvMat *Mat_Ans;
Mat_Ans = cvCreateMat(1, 3, CV_64F); //答えの方は縦1,横3

int ans_num;
ans_num = cvSolveCubic(&Mat_COF, Mat_Ans);



cout << ans_num << " answers ! " << endl;

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

cvReleaseMat(&Mat_Ans);

return 0;
}

メモ

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






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


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

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