📄 hermite 插值.txt
字号:
int i,j,e,n;
float x,y,p_x,p_y,temp,xx[11],yy[11],mm[11],h0,h1,H0,H1,tt[11],sum,p_sum;
Form1->Canvas->Pen->Color=clBlack;//轴色
Form1->Canvas->MoveTo(100,300);Form1->Canvas->LineTo(450,300);//横轴
Form1->Canvas->MoveTo(300,50);Form1->Canvas->LineTo(300,400);//纵轴
Form1->Canvas->TextOut(x+150,-y+304,"-1");
Form1->Canvas->TextOut(x+290,-y+304,"0");
Form1->Canvas->TextOut(x+440,-y+304,"1");
Form1->Canvas->Pen->Color=clBlue;//线色
Form1->Canvas->MoveTo(x+20,-y+255);Form1->Canvas->LineTo(x+50,-y+255);//横线
Form1->Canvas->TextOut(x+50,-y+250,"被逼近函数");//文字叙述
Form1->Canvas->Pen->Color=clRed;//线色
Form1->Canvas->MoveTo(x+20,-y+210);Form1->Canvas->LineTo(x+50,-y+210);
Form1->Canvas->TextOut(x+50,-y+200,"hermite插值");
Form1->Canvas->Pen->Color=clBlue;//曲线颜色
x=-1.0,y=1/(1+25*x*x);
p_x=x*150+300,p_y=-y*150+300;
Form1->Canvas->MoveTo(p_x,p_y);
for (x=-1.0;x<=1.0;)
{
y=1/(1+25*x*x);
p_x=x*150+300,p_y=-y*150+300;
Form1->Canvas->LineTo(p_x,p_y);
x+=0.0001;
}
Form1->Canvas->Pen->Color=clRed;
x=-1.0;
for(i=0;i<=10;i++)
{
tt[i]=-50*x/((1+25*x*x)*(1+25*x*x));
yy[i]=1/(1+25*x*x);
xx[i]=x;
x+=0.2;
}
x=-1.0,y=1/(1+25*x*x);
p_x=x*150+300,p_y=-y*150+300;
Form1->Canvas->MoveTo(p_x,p_y);
for(e=0;e<=1000;e++)
{
for(j=1;j<=10;j++)
{
if(xx[j-1]<x&&x<xx[j])
{
h0 =(((x-xx[j])*(x-xx[j]))/((xx[j-1]-xx[j])*(xx[j-1]-xx[j])))*(1+2*(x-xx[j-1])/(xx[j]-xx[j-1]));
h1 =(((x-xx[j-1])*(x-xx[j-1]))/((xx[j-1]-xx[j])*(xx[j-1]-xx[j])))*(1+2*(x-xx[j])/(xx[j-1]-xx[j]));
H0 =(x-xx[j-1])*(((x-xx[j])*(x-xx[j]))/((xx[j-1]-xx[j])*(xx[j-1]-xx[j])));//(xx[j-1]-xx[j])*
H1 =(x-xx[j])*(((x-xx[j-1])*(x-xx[j-1]))/((xx[j]-xx[j-1])*(xx[j]-xx[j-1])));//(xx[j-1]-xx[j])*
sum=yy[j-1]*h0+ yy[j]*h1+tt[j-1]*H0+tt[j]*H1;
}
}
p_x=x*150+300,p_y=-sum*150+300;
Form1->Canvas->LineTo(p_x,p_y);
x+=0.002;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -