Il faut que m1+1 soit évalué à la compilation pour pouvoir étre utilisé. Dans ton cas tu ne peux rien faire.
Tout ce qui te reste c'est de passé un pointeur à la place de ton tableau et de faire les calculs à la main.
Ta fonction devient :
int resol_etha(int m1, int lx, double * matrice_cos, double a0[], double etha1[])
Et dans cette fonction tu fais :
*(matrice_cos+x+y*m1) au lieux de matrice_cos[x][y]
Enfin pour appeler resol_etha, tu n'as rien à changer normalement, mais plus proprement il faudrait faire :
resol_etha(m1, lx, & matrice_cos[0][0], a0, etha1);