欢迎来到天天文库
浏览记录
ID:58488013
大小:62.00 KB
页数:5页
时间:2020-05-16
《牛顿拉格朗日或等距节点插值.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值分析实验报告(六)(信息一班-----陈宣羽----107)一、实验名称牛顿、拉格朗日或等距节点插值二、实验目的用牛顿、拉格朗日或等距节点插值实现插值法三、题目已知插值点利用牛顿、拉格朗日或等距节点求当x=3.6时y的值四、程序#include#includetypedefstructdata{floatx;floaty;}Data;Datad[20];//最多二十组数据floatlagrange(floatx,intcount){floaty=0.0;for(intk=0;k2、unt;k++)//这儿默认为count-1次插值{floatp=1.0;for(intj=0;j>count;//获得各组数据for(inti=0;i3、){cout<<"请输入第"<>d[i].x;cout<<"请输入第"<>d[i].y;}cout<<"请输入x的值:";//获得变量x的值cin>>x;cout<<"拉格朗日插值计算方法,其结果为:"<#includetyped4、efstructdata{floatx;floaty;}Data;Datad[15];floatf(ints,intt)//牛顿插值法,用以返回插商{if(t==s+1)return(d[t].y-d[s].y)/(d[t].x-d[s].x);elsereturn(f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x);}floatNewton(floatx,intcount){intn;cout<<"请输入n值(即n次插值):";//获得插值次数cin>>n;floatt=1.0;floaty=d[0].y;5、floatyt=0.0;for(intj=1;j<=n;j++){t=(x-d[j-1].x)*t;yt=f(0,j)*t;y=y+yt;}returny;}voidmain(){floatx,y;intcount;cout<<"请输入x[i],y[i]的组数,不得超过20组:";//要求用户输入数据组数cin>>count;for(inti=0;i>d[i].x;cout<<"请输入第"<>d[i].y;6、}cout<<"请输入x的值:";//获得变量x的值cin>>x;y=Newton(x,count);cout<<"x="<#includetypedefstructdata{doublex;doubley;}Data;Datadata[50];doubleDengju(doublex,intnumber){doublea[50][50],y=data[0].y,h,t,ji=1;{h=data[0]7、.x-data[1].x;t=(x-data[0].x)/h;for(intk=0;k8、入x[i],y[i]的组数,number:"<>number;//获得各组数据for(inti=0;i>data[i].x;cou
2、unt;k++)//这儿默认为count-1次插值{floatp=1.0;for(intj=0;j>count;//获得各组数据for(inti=0;i3、){cout<<"请输入第"<>d[i].x;cout<<"请输入第"<>d[i].y;}cout<<"请输入x的值:";//获得变量x的值cin>>x;cout<<"拉格朗日插值计算方法,其结果为:"<#includetyped4、efstructdata{floatx;floaty;}Data;Datad[15];floatf(ints,intt)//牛顿插值法,用以返回插商{if(t==s+1)return(d[t].y-d[s].y)/(d[t].x-d[s].x);elsereturn(f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x);}floatNewton(floatx,intcount){intn;cout<<"请输入n值(即n次插值):";//获得插值次数cin>>n;floatt=1.0;floaty=d[0].y;5、floatyt=0.0;for(intj=1;j<=n;j++){t=(x-d[j-1].x)*t;yt=f(0,j)*t;y=y+yt;}returny;}voidmain(){floatx,y;intcount;cout<<"请输入x[i],y[i]的组数,不得超过20组:";//要求用户输入数据组数cin>>count;for(inti=0;i>d[i].x;cout<<"请输入第"<>d[i].y;6、}cout<<"请输入x的值:";//获得变量x的值cin>>x;y=Newton(x,count);cout<<"x="<#includetypedefstructdata{doublex;doubley;}Data;Datadata[50];doubleDengju(doublex,intnumber){doublea[50][50],y=data[0].y,h,t,ji=1;{h=data[0]7、.x-data[1].x;t=(x-data[0].x)/h;for(intk=0;k8、入x[i],y[i]的组数,number:"<>number;//获得各组数据for(inti=0;i>data[i].x;cou
3、){cout<<"请输入第"<>d[i].x;cout<<"请输入第"<>d[i].y;}cout<<"请输入x的值:";//获得变量x的值cin>>x;cout<<"拉格朗日插值计算方法,其结果为:"<#includetyped
4、efstructdata{floatx;floaty;}Data;Datad[15];floatf(ints,intt)//牛顿插值法,用以返回插商{if(t==s+1)return(d[t].y-d[s].y)/(d[t].x-d[s].x);elsereturn(f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x);}floatNewton(floatx,intcount){intn;cout<<"请输入n值(即n次插值):";//获得插值次数cin>>n;floatt=1.0;floaty=d[0].y;
5、floatyt=0.0;for(intj=1;j<=n;j++){t=(x-d[j-1].x)*t;yt=f(0,j)*t;y=y+yt;}returny;}voidmain(){floatx,y;intcount;cout<<"请输入x[i],y[i]的组数,不得超过20组:";//要求用户输入数据组数cin>>count;for(inti=0;i>d[i].x;cout<<"请输入第"<>d[i].y;
6、}cout<<"请输入x的值:";//获得变量x的值cin>>x;y=Newton(x,count);cout<<"x="<#includetypedefstructdata{doublex;doubley;}Data;Datadata[50];doubleDengju(doublex,intnumber){doublea[50][50],y=data[0].y,h,t,ji=1;{h=data[0]
7、.x-data[1].x;t=(x-data[0].x)/h;for(intk=0;k8、入x[i],y[i]的组数,number:"<>number;//获得各组数据for(inti=0;i>data[i].x;cou
8、入x[i],y[i]的组数,number:"<>number;//获得各组数据for(inti=0;i>data[i].x;cou
此文档下载收益归作者所有