怎么用c++语言实现拉格朗日插值把源代码写一下

 我来答
呆萌小咖77
2016-11-07 · TA获得超过797个赞
知道小有建树答主
回答量:813
采纳率:96%
帮助的人:158万
展开全部
代码实现无非也是实现上面的公式,将值代进去。点(x,y)序列已知,被求y 匹配的x 点已知。

[cpp] view plain copy
typedef struct
{
double x;
double y;
}LAGRANG_DATA;
[cpp] view plain copy
//获取拉格朗日插值里的L(n)
bool GetLagrangeLn1(const vector<LAGRANG_DATA> &data, const double inX , double &outY)
{
int length = data.size();
if(length < 1)
return false;

outY = 0;
vector<LAGRANG_DATA>::const_iterator it1 = data.begin();

for (; it1 != data.end(); it1++)
{
double a = 1;
double b = 1;
vector<LAGRANG_DATA>::const_iterator it2 = data.begin();
for (; it2 != data.end(); it2++)
{
if(it1 != it2)
{
a *= (inX - (*it2).x);
b *= ((*it1).x - (*it2).x);
}
}
outY += a/b * (*it1).y;
}

return true;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式