//Lagrange插值多项式
成都创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为隆安企业提供专业的网站设计制作、网站设计,隆安网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
//算法描述:
// 1、输入:插值节点控制数n,插值点序列(x_i,y_i),i=0,1,...n,要计算的函数点x。
// 2、for(i=0,1,2,...,n)
// {
// temp=1;
// for(j=0,1,...i,i+1,...n)
// !x要事先给定
// temp=temp*(x-x_j)/(x_i-x_j);
// }
// fx=fx+temp*y_i;
// }
#includestdio.h
#includestring.h
#define MAX_n 20
typedef struct tagPOINT
{
double x;
double y;
}POINT;
double Lagrange()
{
int n,i,j;
double x,temp,fx=0;
POINT points[MAX_n];
printf("Now,please input the n value: \n");
scanf("%d",n);
if(n=1||nMAX_n)
{
printf("The value of n should be between 2 and %d\n",MAX_n);
return 1;
}
printf("Now,please input the (x_i,y_i),i=0,...,%d\n",n-1);
for(i=0;in;i++)
scanf("%lf%lf",points[i].x,points[i].y);
printf("Now,please input the x value:\n");
scanf("%lf",x);
for(i=0;in;i++)
{
temp=1;
for(j=0;jn;j++)
if(i==j)continue;
else temp=temp*(x-points[j].x)/(points[i].x-points[j].x);
fx=fx+temp*points[i].y;
}
printf("So,when x=%lf,the Lagrange(%lf)=%lf\n",x,x,fx);
}
int main()
{
char s[10];
Lagrange();
gets(s);
while(strcmp(s,"exit"))
{
if(strcmp(s,"con")==0)
{
Lagrange();
getchar();
}
printf("继续(输入con),退出(输入exit)!\n");
gets(s);
}
return 0;
}
#include stdio.h
int main(void)
{
double x = 0;
double y = 0;
const double t = 0.005;
for(int i = 0; i = 230; ++i)
{
y = 9 + t * i;
x = (y - 10.086) / ((-2 / 10000000) - 0.00053);
printf("y%d = %lf, x = %lf\n",i,y,x);
}
return 0;
}
c++里没有一元函数这种概念。只有
一元运算符(+=、-=、++、--、*=、/=、%等等)、二元运算符(+、-、*、/等等)和三元运算符(?:1:2)