- 积分
- 0
- 注册时间
- 2006-1-11
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2006-3-8 19:42:56
|
显示全部楼层
来自 湖南长沙
Re:拉格朗日插值算法怎样用matlab描述
//Lagrange插值的C++代码
//对给定的每个插值点,用Lagrange插值的方法求出每个自变量输入的输出值
#include<iostream>
//#include<vector>
using namespace std;
float Lagrange(float x,int n,float *x_i,float *y_i)
{
int k,j;
float y=0.0,t;
for(k=0;k<n;k++)
{ t=1;
for(j=0;j<n;j++)
{
if(j==k) continue;
else t=t*(x-x_i[j])/(x_i[k]-x_i[j]);
}
y=y+t*y_i[k];
}
return y;
}
void main(void)
{
float x=0.6,x_i[]={0.40,0.50,0.70,0.80},y_i[]={-0.916291,-0.693147,-0.356675,-0.223144};
double y;
int n=4;
y=Lagrange(x,n,x_i,y_i);
cout<<"在"<<x<<"处的拉个朗日插值的结果是:"<<y<<"\n";
} |
|