1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
double calc_erreur (double ers[], double qpoix[], double p[][7], fcomplex unk[], fcomplex open, fcomplex etal1, fcomplex etal2, fcomplex etal3, fcomplex etal4)
{
double k = 0;
double temp[2][2] = {0};
double nenner = 0, x36 = 0, x46 = 0, x56 = 0, re36 = 0, re46 = 0, re56 = 0, im36 = 0, im46 = 0, im56 = 0, q3_2 = 0;
double q4_2 = 0, q5_2 = 0, q6_2 = 0, xd1 = 0, xd2 = 0, ersum = 0;
for(k = 1; k <= 7; k++)
{
x36 = p[1][k] / p[4][k] * qpoix[12] / qpoix[3];
x46 = p[2][k] / p[4][k] * qpoix[12] / qpoix[6];
x56 = p[3][k] / p[4][k] * qpoix[12] / qpoix[9];
re36 = qpoix[1] - qpoix[10] * x36;
re46 = qpoix[4] - qpoix[10] * x46;
re56 = qpoix[7] - qpoix[10] * x56;
im36 = qpoix[2] - qpoix[11] * x36;
im46 = qpoix[5] - qpoix[11] * x46;
im56 = qpoix[8] - qpoix[11] * x56;
q3_2 = pow(qpoix[1], 2) + pow(qpoix[2], 2);
q4_2 = pow(qpoix[4], 2) + pow(qpoix[5], 2);
q5_2 = pow(qpoix[7], 2) + pow(qpoix[8], 2);
q6_2 = pow(qpoix[10], 2) + pow(qpoix[11], 2);
// Definitions matrices
temp[0][0] = 1-x36; temp[0][1] = 1-x46; temp[0][2] = 1-x56;
temp[1][0] = re36; temp[1][1] = re46; temp[1][2] = re56;
temp[2][0] = im36; temp[2][1] = im46; temp[2][2] = im56;
//nenner = 2 * det(temp, 3);
temp[0][0] = 1-x36; temp[0][1] = 1-x46; temp[0][2] = 1-x56;
temp[1][0] = q3_2; temp[1][1] = q4_2; temp[1][2] = q5_2;
temp[2][0] = im36; temp[2][1] = im46; temp[2][2] = im56;
//xd1 = det(temp, 3);
temp[0][0] = x36; temp[0][1] = x46; temp[0][2] = x56;
temp[1][0] = 1; temp[1][1] = 1; temp[1][2] = 1;
temp[2][0] = im36; temp[2][1] = im46; temp[2][2] = im56;
//xd2 = det(temp, 3);
unk[k].r = (xd1 + q6_2 * xd2) / (nenner);
temp[0][0] = 1-x36; temp[0][1] = 1-x46; temp[0][2] = 1-x56;
temp[1][0] = q3_2; temp[1][1] = q4_2; temp[1][2] = q5_2;
temp[2][0] = re36; temp[2][1] = re46; temp[2][2] = re56;
//xd1 = det(temp, 3);
temp[0][0] = x36; temp[0][1] = x46; temp[0][2] = x56;
temp[1][0] = 1; temp[1][1] = 1; temp[1][2] = 1;
temp[2][0] = re36; temp[2][1] = re46; temp[2][2] = re56;
//xd2 = det(temp, 3);
unk[k].r = (xd1 + q6_2 * xd2) / (-nenner);
}
}
extern fcomplex Complex(double re, double im)
{
fcomplex c;
c.r = re;
c.i = im;
return c;
} |
Partager