Bonjour,

lorsque j' exécute mon code, le compilateur m'affiche le problème suivant "invalid type", je connais l'erreur mais j'ai pas de solution, en fait on ne peut faire la somme de deux matrice différents et au même temps je peux pas modifier l'expression. s'il vous plait quelqu'un m'aider. j'ai indiqué par un commentaire dans le code la ligne ou s'affiche l'erreur
Code : 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
float nu=0.6;
float a=0.25;
float b=0.5;
int n1=2;**
int n2=4;***
int n3=3;***
*
*
*
******/* Saisie des données*/
*
*float EntreesX[2]={0.9,0.2};
*
double mat_poids_w[2][4]= {{0.5,0.9,0.4,0.6},{0.8,0.9,0.7,0.5}};
double mat_poids_w2[4][3]= {{0.1,0.4,0.2},{0.4,0.9,0.3},{0.5,0.4,0.8},{0.5,0.4,0.8}};
float Sdesire[3]={0.3,0.2,0.90};
float E[4];
float y[4];
double y2[3];
float E2[3];
float erreur[3];
double mat_poids_w_new [2][4];
double mat_poids_w2_new[4][3];
float erreurq=1;
float sommeq;
float somme_produit;
double delta[2];
int i,j,k;
int l=0;
*
***float fct (float erreurq,double *mat_poids_w_new,double *mat_poids_w2_new){
*
*
while (erreurq!=0)
{
*
*
*
****for( j=1;j<n2;j++)
*****{
*********E[j]=0;
*********for(i=1;i<n1;i++)
*********{
*************E[j]+=(EntreesX[i])*(mat_poids_w[i][j]);
*
*
*******}
**y[j]=b+a*E[j];
/*RECUPERATION DES VALEURS DANS UN VECTEUR
AFFICHAGE PRINTF E*/
*
*
//printf("E[%d]==%f\n",j, E[j]);
//printf("y[%d]==%f\n",j, y[j]);
*
****}
****sommeq=0;
*
*****for( k=1;k<=n3;k++)
****{
********E2[k]=0;
*
********for( j=1;j<=n2;j++)
********{
********E2[k]+=(y[j]*mat_poids_w2[j][k]);
****************}
*
y2[k]=b+a*(E2[k]);
*//printf("E2[%d]==%f\n",k, E2[k]);
//printf("y2[%d]==%f\n",k, y2[k]);
*
erreur[k]=Sdesire[k]-y2[k];
*
sommeq=sommeq+pow((Sdesire[k]-y2[k]),2);
*
*
****}
****erreurq=0.5*sommeq;
****//printf("erreurq== %f\n", erreurq);
****/*for (k = 1 ; k <=n3; k++)
****{
***printf("erreur[%d]== %f\n", k, erreur[k]);
****}*/
*
****if(erreurq!=0)
{
*
**
****somme_produit=0;
*
for( k=1;k <= n3;k ++)
{
delta[k]=y2[k]*(1-y2[k])*(Sdesire[k]-y2[k]);
*
****for(j=1;j <= n2;j ++)
{
mat_poids_w2_new[j][k] += nu*(delta[k]*y2[k]);// ici ou le compilateur indique l'erreur*
*
somme_produit += erreur[k]*mat_poids_w2[j][k];// et ici aussi
delta[j]=y[j]*(1-y[j])*(somme_produit);
//printf("delta [%d]=%f\n",j, delta[j]);
*
****for(i=1;i <= n1;i ++){
mat_poids_w_new[i][j]= mat_poids_w[i][j]+((nu*delta[j])*EntreesX[i]);// de meme ici