等距点插值公式文档格式.docx
- 文档编号:13499951
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:10
- 大小:84.05KB
等距点插值公式文档格式.docx
《等距点插值公式文档格式.docx》由会员分享,可在线阅读,更多相关《等距点插值公式文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
二、算法框图
三、算法程序
classInterpolation
{
public:
Interpolation(intnum,doublex1,doublex2,doublefunc[]);
doubleComputeForwardValue(doublex);
//computeforwardinterpolationvalue
~Interpolation();
private:
voidGetForwardTable();
//gettheforwarddifferentialtable
intm_num;
//thenumberofinterpolationpoints
doublem_x1,m_x2;
//thefirstpointm_x1andlastpointm_x2
doublem_step;
//theinterpolationstep
double*m_func;
//thefunctionvalueofinterpolationpoints
double*m_ftable;
//theforwarddifferentialtable
};
#include<
iostream>
limits>
usingnamespacestd;
#defineNUM11
//上¦
?
面?
输º
入¨
需¨
¨
要°
a多¨
¤
少¦
´
个?
样¨
本À
#defineMIN0
区?
间?
的Ì
最Á
小?
值¦
Ì
#defineMAX10
大ä
®
intmain()
//下?
y的Ì
doublefunc[NUM]=
{
0,1,4,9,16,25,36,49,64,81,100
};
//上¦
doublex1=MIN,x2=MAX,x;
intnum=NUM;
charflag='
Y'
;
Interpolationtest(num,x1,x2,func);
while(flag=='
)
{
cout<
<
"
Inputx:
"
cin>
>
x;
if(!
cin)//checkingfailurestate
{
cin.clear();
//clearfailuretag
cin.ignore(numeric_limits<
int>
:
max(),'
\n'
);
//clearinputbuffer
continue;
}
if(x<
x1||x>
x2)
{
---Invalidinput:
x<
---"
endl;
Onlythenumberbetween"
x1<
and"
x2<
isvalid..."
}
else
Forwardinterpolationvalue:
test.ComputeForwardValue(x+0.001)<
cout<
endl<
Doyouwanttoprocess?
pleaseinput(Y/N):
cin>
flag;
return0;
}
Interpolation:
Interpolation(intnum,doublex1,doublex2,doublefunc[])
m_num=num;
m_x1=x1;
m_x2=x2;
m_step=(m_x2-m_x1)/(num-1);
m_func=newdouble[m_num];
m_ftable=newdouble[m_num];
for(inti=0;
i<
m_num;
++i)
m_func[i]=func[i];
m_ftable[i]=func[i];
GetForwardTable();
~Interpolation()
deletem_func;
deletem_ftable;
voidInterpolation:
GetForwardTable()
inti,j;
for(i=1;
for(j=m_num-1;
j>
=i;
--j)
m_ftable[j]=m_ftable[j]-m_ftable[j-1];
doubleInterpolation:
ComputeForwardValue(doublex)
double*coef;
//coefficienttalbe
doubleresult,t;
inti;
coef=newdouble[m_num];
t=(x-m_x1)/m_step;
for(i=1,coef[0]=1;
++i)//computethecoefficienttable
coef[i]=coef[i-1]*(t-i+1)/i;
for(i=0,result=0;
result+=m_ftable[i]*coef[i];
deletecoef;
returnresult;
四、算法实现
例1.当
时求
在范围
内任意
的值。
解:
(1)在程序中输入11个样本:
0,1,4,9,16,25,36,49,64,81,100、
且输入MIN:
0,MAX:
10,样本容量:
11。
(2)在运行程序中输入范围内的任意
的值,如:
1.2,1.4等。
(3)程序提示答案和提示是否继续,是则输入大写Y,否则输入大写N。
例2.当给出15个
:
1.38,1.48,1.58,1.69,1.81,
1.94,2.10,2.28,2.50,2.76,
3.06,3.41,3.83,4.33,4.93,
且给出范围:
求出任意
(1)给出15个题目上显示的值:
4000,MAX:
11000,样本容量:
15。
1001,5200等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 等距 点插值 公式