Lagrange des différences divisées dans C
fleurita
Messages postés
3
Statut
Membre
-
FD -
FD -
Bonsoir,
j'ai un projet à réaliser ,je dois programmer lagrange des différences divisées en langage C et s'il vous plait je demande de l'aide pour faire ceci.
je vous prie si c'est possible de m'aider
merci d'avance
j'ai un projet à réaliser ,je dois programmer lagrange des différences divisées en langage C et s'il vous plait je demande de l'aide pour faire ceci.
je vous prie si c'est possible de m'aider
merci d'avance
Configuration: Windows 2000 Internet Explorer 6.0
2 réponses
-
Salut
Tu veux de l'aide, ok, mais faudrait que tu poses ce qui te gêne. Fais déjà tout ce que tu sais faire, post le. Et dis nous en quoi on peut t'aider.-
merci de m'avoir répondu:
voila ce que j'ai pu faire pour le moment ,et j'arrive pas à terminer la fin
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define NMAX 500
void tab_diff_div (int n,double x[NMAX],double f[NMAX],double ** d)
{
int i,j;
double xi;
//rentrer les valeurs de x[i]
for(i=0;i<=n-1;i++)
{
printf(" entrer les valeurs de x[%d]:",i );
scanf( "%d" ,&xi );
}
//rentrer les valeurs de x[i]
for(i=0;i<=n-1;i++)
{
printf(" entrer les valeurs de f(x%d ,i):",i );
scanf( "%d" ,&f(xi) );
}
// affichage d'un x[i]
for(i=0;i<n-1;i++)
{
printf(" xi %10.2f\n\n",x.d[i]);
}
for(i=0;i<=n;i++)
{
d[i][0]=f[i];
}
for(j=1;j<=n;j++)
{
for(i=0;i<=n-j;i++)
{
d[i][j]=(d[i+1][j-1]-d[i][j-1])/(x[i+j]-x[i]);
}
}
}
double poly_diff_div (int n,double x[NMAX],double ** d,double alpha)
{
int i;
double p;
p=d[0][n];
for(i=0;i<=n;i++)
p=p*(alpha-x[n-i])+d[0][n-i];
{
return (p);
}
}
void main()
{
int n;
double x[NMAX],
double f[NMAX],
double ** d,
tab_diff_div ( n, x[NMAX], f[NMAX],d)
} -
merci de m'avoir répondu:
voila ce que j'ai pu faire pour le moment ,et j'arrive pas à terminer la fin
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define NMAX 500
void tab_diff_div (int n,double x[NMAX],double f[NMAX],double ** d)
{
int i,j;
double xi;
//rentrer les valeurs de x[i]
for(i=0;i<=n-1;i++)
{
printf(" entrer les valeurs de x[%d]:",i );
scanf( "%d" ,ξ );
}
//rentrer les valeurs de x[i]
for(i=0;i<=n-1;i++)
{
printf(" entrer les valeurs de f(x%d ,i):",i );
scanf( "%d" ,&f(xi) );
}
// affichage d'un x[i]
for(i=0;i<n-1;i++)
{
printf(" xi %10.2f\n\n",x.d[i]);
}
for(i=0;i<=n;i++)
{
d[i][0]=f[i];
}
for(j=1;j<=n;j++)
{
for(i=0;i<=n-j;i++)
{
d[i][j]=(d[i+1][j-1]-d[i][j-1])/(x[i+j]-x[i]);
}
}
}
double poly_diff_div (int n,double x[NMAX],double ** d,double alpha)
{
int i;
double p;
p=d[0][n];
for(i=0;i<=n;i++)
p=p*(alpha-x[n-i])+d[0][n-i];
{
return (p);
}
}
void main()
{
int n;
double x[NMAX],
double f[NMAX],
double ** d,
tab_diff_div ( n, x[NMAX], f[NMAX],d)
} -
-
deja je te remercie infinement de m'avoir vite répondu .
en fait mon problème c'est que je bloque en ce moment,j'arrive pas à avancer.
j voudrais savoir est ce que deja,j dois utiliser un double pointeur sur le tableau ou pas.
et d'après toi j dois utiliser les allocations dynamiques.
et est ce que le programme te semble correct. -
Tout dépend de tes besoins pour l'allocation dynamique.
Ton tableau d est de taille fixe ? Auquel cas, un tableau statique suffit. Sinon le tableau dynamique s'impose.
Dans les deux cas, float **d; ne suffit pas.
int i;
float **d;
d= (float **)malloc (NBCOLONNES * sizeof (float*));
for (i = 0; i < NBCOLONNES; i++)
d[i] = malloc (NBLIGNES * sizeof (float));
NBCOLONNES et NBLIGNES représentent respectivement le nombre de colonnes et de lignes que tu souhaites avoir dans ta matrice d.
-
-
slt,
qui peut me proposer un code source ou meme un algorithme d'un programme C qui traite l'interpolation de lagrange.
merci pour votre aide,je crois quc'est plus dur!!!!!