- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分段低次插值闽江学院Lag.cpp
#ifndef Lag1
#define Lag1
#includeiostream
#includevector
#includeiomanip
#include Lag.h
using namespace std;
double Lagrange::Round(double r,int pos)
{
long int N=10;
long int m;
{
for(int i=0;iabs(pos)-1;i++)
N*=10;
if(r=0)
m=(r*N+5)/10;
else
m=(r*N-5)/10;
if(m/N==0)
m*=10;
r=m*(1.0/N);
}
return r;
}
/********************保证插值结点是从小到大排序的*******************************/
int Lagrange::Judge()
{
int i,j;
for(i=0;iXi.size()-1;i++)
for(j=i+1;jXi.size();j++)
if(Xi[i]Xi[j])
return 1;
return 0;
}
/************************输入插值结点************************************/
void Lagrange::f()
{
Xi.clear();
Yi.clear();
int N=0,i=-1;
cout请输入插值节点个数N+1(x0,x1,...,xN):;
cinN;
char a;
while(i++N)
{
long double j,k;
cout请输入点(xi,yi): ;
cinajaka;
Xi.push_back(j);
Yi.push_back(k);
}
if(!Lagrange::Judge()||N=6)
{
cout f(x)的在各节点处的数据为\n;
cout┌────┬;
for(i=0;iN;i++)
cout────┬;
cout────┐endl;
for(i=-1;i=N;i++)
{
if(i=0)
cout│setiosflags(ios::left)setw(8)i;
else
cout│ i ;
}
cout│;
coutendl;
cout├────;
for(i=0;i=N;i++)
cout┼────;
cout┤endl;
for(i=-1;i=N;i++)
{
if(i=0)
cout│setiosflags(ios::left)setw(8)Xi[i];
else
cout│ xi ;
}
cout│;
coutendl;
cout├────;
for(i=0;i=N;i++)
cout┼────;
cout┤endl;
for(i=-1;i=N;i++)
{
if(i=0)
cout│setiosflags(ios::left)setw(8)Yi[i];
else
cout│ yi ;
}
cout│;
coutendl└────;
for(i=0;i=N;i++)
cout┴────;
cout┘;
coutendl;
}
else
{
if(N6)
coutendl;
else
cout输入有错!x0,x1,...,xXi.size()-1不是升序序列。\n;
}
}
/***********************输入要求解的点*****************************/
void Lagrange::g()
{
int N=0,i=0;
char a;
cout请输入求解个数n:;
cinN;
cout请输入(X0,X1,...,XN): ;
while(N--0)
{
long double j;
cinaj;
Zi.push_back(j);
}
cina;
}
/*************************线性分段插值求解过程**********************************/
void Lagrange::Solve()
{
F.clear();
int pos=0,k;
while(posZi.size())
{
i
文档评论(0)