Bonjour,

je ne comprend pas pourquoi j'ai cette erreur sur les lignes 12, 13, 14, 39 et 48. Cette fonction effectue du calcul matriciel et met à jour les parties réelles et imaginaires d'un tableau de complexe.

Code source.c : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}

Code fonction.h : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#ifndef fonctionsH
#define fonctionsH
 
// Declaration des librairies
#include <string.h>
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "complex.h"
 
// Declaration des constantes
#define NB_CHARGE 		5
#define NB_MES 			24
#define NB_TEMP 		7
#define LIGNES_1 		NB_TEMP*NB_MES
#define LIGNES_2 		120						//=NB_MES*NB_CHARGE
#define COLONNES 		7
#define SEP 			" ,',','\t'"
#define PI				3.141592654
#define NB_PT			295
 
/************--- Declaration des prototypes des fonctions ---*******************/
 
void calibration (void);
	double calc_erreur (double [], double [], double [][7], fcomplex[], fcomplex, fcomplex, fcomplex, fcomplex, fcomplex);
	double 	**allocation_dynamique (int ,int);
	void transposition (double**, double**, int, int);
	void inverse (double **,double **,int);
	void produit (double **,double **,int , int ,double **,int ,int);
	double puissance (double, int);
	void Add_Soust_Mat(char , double **, double **, int, int);
	double det(double **, int);
		void lmatrice(double **,double **, int , int);
 
 
typedef struct {double r; double i;} fcomplex;
 
extern fcomplex Complex(double re, double im);
#endif