c语言拉格朗日插值函数 c语言实现拉格朗日插值

拉格朗日插值法用C语言表示

我的程序是牛顿插值和拉格朗日插值合起来,你自己看下,用的是C++

临河网站建设公司成都创新互联,临河网站设计制作,有大型网站制作公司丰富经验。已为临河近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的临河做网站的公司定做!

#include iostream

#include iomanip

#include stdlib.h

using namespace std;

#define N 100

void lagrange()

{

int n,k,m,q=1;

float x[N],y[N],xx,yyy1,yyy2,yy1,yy2,yy3;

cout"请输入X的个数:";

cinn;

for(k=0;k=n-1;k++)

{

cout"请输入X"k"的值:";

cinx[k];

cout"请输入Y"k"的值:";

ciny[k];

}

system("cls");

cout"则Xi与Yi表格如下:"endl;

cout"Xi"" ";for(k=0;k=n-1;k++)coutsetiosflags(ios::left)setw(10)x[k];

coutendl;

cout"Yi"" ";for(k=0;k=n-1;k++)coutsetiosflags(ios::left)setw(10)y[k];

coutendl;

while(q)

{

cout"请输入所求x的值:";

cinxx;

while(xxx[k-1]||xxx[0])

{

cout"输入错误,请重新输入:";

cinxx;

}

for(k=0;k=n-1;k++)

{

if(xxx[k])

{

m=k-1;

k=n-1;

}

}

yyy1=y[m]*((xx-x[m+1])/(x[m]-x[m+1]))+y[m+1]*((xx-x[m])/(x[m+1]-x[m]));

cout"则拉格朗日分段线性插值为:"yyy1endl;

for(k=0;k=n-1;k++)

{

if(xxx[k])

{

m=k-1;

k=n-1;

}

}

if((xx-x[m])(x[m+1]-xx))m=m+1;

else m=m;

yy1=y[m-1]*((xx-x[m])*(xx-x[m+1]))/((x[m-1]-x[m])*(x[m-1]-x[m+1]));

yy2=y[m]*((xx-x[m-1])*(xx-x[m+1]))/((x[m]-x[m-1])*(x[m]-x[m+1]));

yy3=y[m+1]*((xx-x[m-1])*(xx-x[m]))/((x[m+1]-x[m-1])*(x[m+1]-x[m]));

yyy2=yy1+yy2+yy3;

cout"则拉格朗日分段二次插值为:"yyy2endl;

cout"是否输入其余要求x的值[是(1),否(0)]:";

cinq;

}

system("cls");

}

void main()

{

lagrange();

}

拉格朗日差值多项式的c语言

function =lagrange(x1,y1,xx)

%本程序为Lagrange1插值,其中x1,y1

%为插值节点和节点上的函数值,输出为插值点xx的函数值,

%xx可以是向量。

syms x

n=length(x1);

for i=1:n

t=x1;t(i)=[];L(i)=prod((x-t)./(x1(i)-t));% L向量用来存放插值基函数

end

u=sum(L.*y1);

p=simplify(u) % p是简化后的Lagrange插值函数(字符串)

=subs(p,x,xx);

clf

plot(x1,y1,'ro',xx,,'*')

拉格朗日插值用c语言怎么编程?各位高手帮帮忙啦

#includestdio.h

#includestring.h

#define N 100

typedef struct tag{

double x;

double y;

}POINT;

void main()

{

int i,j,n;

double x,temp,Ln=0;

POINT pt[N];

printf("请输入你要输入点的个数,,1=n=%d:\n",N);

printf("n=");

scanf("%d",n);

printf("\n");

printf("\n请输入对应的点数\n");

for(i=0;in;i++)

scanf("%lf,%lf",pt[i].x,pt[i].y);

printf("\n");

printf("输入插值点x的值:\n");

scanf("%lf",x);

printf("\n");

for(i=0;in;i++)

{

for(j=0,temp=1;jn;j++)

{

if(j!=i)

temp=temp*(x-pt[j].x)/(pt[i].x-pt[j].x);

}

Ln=Ln+temp*pt[i].y;

}

printf("输出:\nLn(%lf)=%lf\n",x,Ln);

}


分享文章:c语言拉格朗日插值函数 c语言实现拉格朗日插值
文章网址:http://pwwzsj.com/article/hgcpcj.html