数值分析(一)拉格朗日插值法c++实现

来源:互联网 发布:网络推手阿建讲诚信 编辑:程序博客网 时间:2024/06/07 04:43
#include <iostream>#include <cstdio>#include <vector>using namespace std;typedef struct{    int x;    float  y;} LAGRANG_DATA;typedef vector<LAGRANG_DATA> LAGDATE;void print( LAGDATE &largeng,int m){    LAGDATE::iterator ite1,ite2;    float sum1,sum2,sum=0;    for(ite1=largeng.begin(); ite1!=largeng.end(); ite1++)    {        sum1=1;        sum2=1;        for(ite2=largeng.begin(); ite2!=largeng.end(); ite2++)        {            if(ite1==ite2)                continue;            sum1*=(m-(ite2->x));            sum2*=((ite1->x)-(ite2->x));        }        sum+=(ite1->y)*sum1/sum2;    }    cout<<"sum="<<sum<<endl;}int main(){    LAGRANG_DATA date;    LAGDATE lagrang;    int n,m;    cin>>n;  //输入多少组数据    cin>>m;  //输入要计算的值    for(int i=0; i<n; i++)    {        cin>>date.x;        cin>>date.y;        lagrang.push_back(date);    }    print(lagrang,m);//  cout<<"第一个lagrang:"<<endl;    //  cout<<&lagrang<<endl;    return 0;}/*3184 105 5.256 1*///18   -11

还有很多改进的地方

0 0
原创粉丝点击