ITPub博客

首页 > 应用开发 > IT综合 > 埃尔米特Hermite插值(C++版)

埃尔米特Hermite插值(C++版)

原创 IT综合 作者:chenjinglzz 时间:2007-10-07 15:35:06 0 删除 编辑
本程序为本人参考一些资料后编写,在visual c++6.0下调试通过。[@more@]///////////////////
/////埃尔米特Hermite插值
//////////////////
#include
using namespace std;
////////////
double Hermite(int n,double x,double *tx,double *ty,double *tyl);
////////////
////////////
int main()
{
int i,n;
double x,y;
x=y=0.0;
cout<<"请输入埃尔米特Hermite插值的节点数: n=";cin>>n;
while(n<2)
{
cout< cout<<"请重新输入埃尔米特Hermite插值的节点数: n=";cin>>n;
}
double *tx=new double[n];
double *ty=new double[n];
double *tyl=new double[n];
cout< for(i=0;i {
cout<<"x["<>tx[i];
cout<<"对应的函数值: ";cin>>ty[i];
cout<<"对应的导数值: ";cin>>tyl[i];
}
cout< delete [] tx;
delete [] ty;
delete [] tyl;
return 0;
}
////////////
////////////
double Hermite(int n,double x,double *tx,double *ty,double *tyl)
{
double h,a;
double y=0.0;
int i,j;
for(j=0;j {
h=1.0;
a=0.0;
for(i=0;i {
if(j!=i)
{
h=h*(x-tx[i])*(x-tx[i])/(tx[j]-tx[i])/(tx[j]-tx[i]);
a=a+1.0/(tx[j]-tx[i]);
}
}
y=y+h*((tx[j]-x)*(2*a*ty[j]-tyl[j])+ty[j]);
}
return (y);
}
////////////

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11355887/viewspace-974953/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    17
  • 访问量
    334475