Re: [C(++)] Interpolation Cubique.
Publié : 11 févr. 2010 22:38
Voila pour ceux qui seraient intéressés :
Ce bout de code génère l'équation d'une courbe polynomiale de degré 3 qui passe par les points d'ordonnée Y2 et Y3 et tel que les tangentes en P2 et P3 passent respectivement par P1 et P4.
x correspond à l'abscisse du point P1.
Code : Tout sélectionner
#include <iostream>
using namespace std;
void interpolation(int x,double Y1,double Y2,double Y3,double Y4);
int main()
{
int x;
double Y1,Y2,Y3,Y4;
cout<<"Abcisse :";
cin>>x;
cout<<"Y1:";
cin>>Y1;
cout<<"Y2:";
cin>>Y2;
cout<<"Y3:";
cin>>Y3;
cout<<"Y4:";
cin>>Y4;
cout<<endl<<endl;
interpolation(x,Y1,Y2,Y3,Y4);
return 0;
}
void interpolation(int x,double Y1,double Y2,double Y3,double Y4)
{
double a=(double)(Y4-Y3-Y1+Y2);//(Y2+Y4-Y1-Y3);
double b=(double)(Y1-Y2-a);//(Y3-2*Y2-Y4);
double c=(double)(Y3-Y1);//(Y3-Y1);
double d=(double)(Y2);//(Y2);
cout<<"f(x)=("<<a<<")(x-("<<x+1<<"))^3+("<<b<<")(x-("<<x+1<<"))^2+("<<c<<")(x-("<<x+1<<"))+"<<d<<endl;
}
x correspond à l'abscisse du point P1.