?? 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,"被逼近函數(shù)");//文字?jǐn)⑹? 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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -