Bonjour à tous,
je viens solliciter votre aide à propos d'un programme que j'ai a réalisé pour un projet. Je vous passe les détails, c'est la première année qu'il instaure cette matière, alors qu'on a tout juste appris des bases de programmation (C++) l'an passé. Le tout en C, donc sans classe. La galère. Enfin, je tiens quand même à remercier d'avance tous ceux qui se pencherais sur mon problème, qui est quand même assez conséquent.
Bref, j'ai à coder un programme qui, à partir d'un nombre de points fixés par l'utilisateur, recrache un polynome, par la méthode de lagrange.Petite explication: on rentre n points de coordonnées (x
i,y
i). On fixe T
i0 = y
i , polynome de degrée 0
. Les T sont des polynomes. Donc on prend T
i0 et T
i+10 qui va nous donnée T
i1, polynome de degrée 1, interpolant les points i et i+1, grace à cette formule:
T
ij+1(x)= ( (x
i-x) * T
i+1j(x) - (x
i+j+1-x) * T
ij(x) ) / x
i-x
i+j+1
Exemple: A(1,2) B(3,2) C(1,5)
On interpole y
A et y
B qui donne T
01 idem y
B et y
C qui donne T
11. On interpole T
01 et T
11 qui donne T
02 = P, le polynome que l'on cherche.
Les explications faites, passons au programme. Soyez indulgents envers mon code et mon niveau (au fait, je code sous solaris, vive printf et scanf )

Bon première idée, une structure pour un polynome:
struct poly
{ int degre;
float coeff[degre+1];
};
Ensuite:
int n;
printf("A partir de combien de points voulez-vous interpoler le polynome?\n");
scanf("%d",&n);
float x[n];
float y[n];
for (int i=0;i<n;i++)
{
printf("Entrer le point "%d" sous la forme: x y\n",i+1);
scanf("%f%f",x[i],y[i]);
};
C'est la qu'arrive les problèmes: Je me doute que y'a une boucle dans une boucle: on calcule la deuxième colonne des T
1 à partir de celle des T
0, puis celle des T
2 à partir des T
1, ect... Mais ma question est: comment à partir de ma pauvre structure, appliqué la formule si dessus, lui faire calculer des polynomes ect... je bloque complêtement sur quoi mettre dans ces boucles.
C'est la que j'aurais besoin de toutes vos suggestions et idées (aucune exigence dans le rouge, c'est pour les gens qui lirais en diagonnale) sur ce dont j'ai besoin pour le faire; peut être une autre classe, d'autres fonctions/procédures... for (int j=0;j<n;j++)
{
for(int k=j+1;k<n;j++)
{
}
}
Bon, pour l'affichage du polynome, je devrais m'en sortir:
void affiche_poly(poly P)
{printf("P(x)=")
for(int t=0;t=<P.degre;t++)
{ printf("%fx^%d",coeff[t],t)
}
};
Je vous remercie d'avoir tout lu, je m'excuse d'avoir abusé de votre patience et j'espère avec humilité qu'une bonne ame se penchera sur mon problème. Merci encore
