最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
c語(yǔ)言插值函數(shù)lag12 c語(yǔ)言插值函數(shù)庫(kù)

拉格朗日插值法用C語(yǔ)言表示

我的程序是牛頓插值和拉格朗日插值合起來(lái),你自己看下,用的是C++

創(chuàng)新互聯(lián)建站專(zhuān)注于喀左企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。喀左網(wǎng)站建設(shè)公司,為喀左等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

#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"請(qǐng)輸入X的個(gè)數(shù):";

cinn;

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

{

cout"請(qǐng)輸入X"k"的值:";

cinx[k];

cout"請(qǐng)輸入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"請(qǐng)輸入所求x的值:";

cinxx;

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

{

cout"輸入錯(cuò)誤,請(qǐng)重新輸入:";

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();

}

高分懸賞 求三維數(shù)據(jù)點(diǎn)C語(yǔ)言插值計(jì)算程序

問(wèn)題補(bǔ)充,因字?jǐn)?shù)限制,挪到這

1.拉格朗日插值簡(jiǎn)介:

對(duì)給定的n個(gè)插值節(jié)點(diǎn)x1,x2,…,xn,及其對(duì)應(yīng)的函數(shù)值y1=f(x1), y2=f(x2),…, yn=f(xn);使用拉格朗日插值公式,計(jì)算在x點(diǎn)處的對(duì)應(yīng)的函數(shù)值f(x);

2.一維拉格朗日插值c語(yǔ)言程序:

Int lagrange(x0, y0, n, x, y)

Float xo[], yo[], x;

Int n;

Float *y

{

Int i, j;

Float p;

*y=0;

If (n1)

{

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

{

P=1;

For(j=1;jn;j++)

{

If(i!=J)

P=p*(x-x0[j]/x0[i]-x0[j]);

}

*y=*y+p*y0[i];

Return(0);

}

Else

Return(-1);

}

3.例題。已知函數(shù)如下表所示,求x=0.472處的函數(shù)值:

X 0.46 0.47 0.48 0.49

Y 0.484655 0.4903745 0.502750 0.511668

計(jì)算這個(gè)問(wèn)題的c語(yǔ)言程序如下:

#minclude stdio

#includeMnath.h

Main()

{

Float x0[4]={ 0.46, 0.47,0.48,0.49};

Float y0[4]={ 0.484655 ,0.4903745 ,0.502750 ,0.511668};

Float x, y;

Int n, rtn;

N=4;

X=0.472;

Rth=lagrange(x0,y0,n,x,y);

If(rtn=0)

{

Prinf(“Y(0.472)=:%f\n”,y);

}

Else

{

Prinf(“n must be larger than 1.\n”);

}

}

計(jì)算結(jié)果:Y(0.472)=:0.495553

4.問(wèn)題補(bǔ)充

我的問(wèn)題與上面的例子類(lèi)似,計(jì)算三維空間一點(diǎn)(x,y,z)對(duì)應(yīng)的函數(shù)值(Vx,Vy,Vz).不同的是自變量(point_coordinate.txt)為三維空間散亂點(diǎn)(不是正方體的頂點(diǎn)),因變量(point_data.txt)為矢量(向量 )。插值算法比較多,常數(shù)法,拉格朗日插值,埃特金插值,三階樣條插值等。最簡(jiǎn)單的就是常數(shù)法,查找離目標(biāo)點(diǎn)(x,y,z)距離最近的已知自變量(Xi,Yi,Zi),把該點(diǎn)的函數(shù)值賦給目標(biāo)點(diǎn)做函數(shù)值,求高手幫忙寫(xiě)寫(xiě)。

C語(yǔ)言拉格朗日插值法,求幫忙看一下程序哪里出錯(cuò)了,0 error但是運(yùn)行出不來(lái)結(jié)果……

ncludestdio.h

#includemath.h

#includestdlib.h

#includeiostream

int?main()

{

double?t,?z=0,?tmp;

double?x[12]?=?{?0,?8.8,?20.2,?30.0,?39.7,?48.9,?59.2,?70.0,?80.3,?90.3,?95.0,?100.0?};

double?y[12]?=?{?110.6,?106.1,?102.2,?98.6,?95.2,?92.1,?89.4,?86.8,?84.4,?82.3,?81.2,?80.2?};

t?=?45.0;

int?i,?j,?k,?p;

k?=?0;

p?=?12;

for?(i?=?k;?i??k?+?p;?i++)

{

tmp?=?1;

for?(j?=?k;?jp+k;?j++)

if?(j?==?i)//j=i??

tmp?=?tmp*(t?-?x[j])?/?(x[i]?-?x[j]);//j=i?x[i]?-?x[j]=0?0作為分母??

z?=?z?+?tmp*y[i];//z沒(méi)有初始化

}

//return?z;//遇到return?后面的就不會(huì)執(zhí)行

printf("%2.5f°C\n",?z);

return?0;

}

用C語(yǔ)言實(shí)現(xiàn)拉格朗日插值、牛頓插值、等距結(jié)點(diǎn)插值算法

#includestdio.h

#includestdlib.h

#includeiostream.h

typedef struct data

{

float x;

float y;

}Data;//變量x和函數(shù)值y的結(jié)構(gòu)

Data d[20];//最多二十組數(shù)據(jù)

float f(int s,int t)//牛頓插值法,用以返回插商

{

if(t==s+1)

return (d[t].y-d[s].y)/(d[t].x-d[s].x);

else

return (f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x);

}

float Newton(float x,int count)

{

int n;

while(1)

{

cout"請(qǐng)輸入n值(即n次插值):";//獲得插值次數(shù)

cinn;

if(n=count-1)// 插值次數(shù)不得大于count-1次

break;

else

system("cls");

}

//初始化t,y,yt。

float t=1.0;

float y=d[0].y;

float yt=0.0;

//計(jì)算y值

for(int j=1;j=n;j++)

{

t=(x-d[j-1].x)*t;

yt=f(0,j)*t;

//coutf(0,j)endl;

y=y+yt;

}

return y;

}

float lagrange(float x,int count)

{

float y=0.0;

for(int k=0;kcount;k++)//這兒默認(rèn)為count-1次插值

{

float p=1.0;//初始化p

for(int j=0;jcount;j++)

{//計(jì)算p的值

if(k==j)continue;//判斷是否為同一個(gè)數(shù)

p=p*(x-d[j].x)/(d[k].x-d[j].x);

}

y=y+p*d[k].y;//求和

}

return y;//返回y的值

}

void main()

{

float x,y;

int count;

while(1)

{

cout"請(qǐng)輸入x[i],y[i]的組數(shù),不得超過(guò)20組:";//要求用戶(hù)輸入數(shù)據(jù)組數(shù)

cincount;

if(count=20)

break;//檢查輸入的是否合法

system("cls");

}

//獲得各組數(shù)據(jù)

for(int i=0;icount;i++)

{

cout"請(qǐng)輸入第"i+1"組x的值:";

cind[i].x;

cout"請(qǐng)輸入第"i+1"組y的值:";

cind[i].y;

system("cls");

}

cout"請(qǐng)輸入x的值:";//獲得變量x的值

cinx;

while(1)

{

int choice=3;

cout"請(qǐng)您選擇使用哪種插值法計(jì)算:"endl;

cout" (0):退出"endl;

cout" (1):Lagrange"endl;

cout" (2):Newton"endl;

cout"輸入你的選擇:";

cinchoice;//取得用戶(hù)的選擇項(xiàng)

if(choice==2)

{

cout"你選擇了牛頓插值計(jì)算方法,其結(jié)果為:";

y=Newton(x,count);break;//調(diào)用相應(yīng)的處理函數(shù)

}

if(choice==1)

{

cout"你選擇了拉格朗日插值計(jì)算方法,其結(jié)果為:";

y=lagrange(x,count);break;//調(diào)用相應(yīng)的處理函數(shù)

}

if(choice==0)

break;

system("cls");

cout"輸入錯(cuò)誤!!!!"endl;

}

coutx" , "yendl;//輸出最終結(jié)果

}

拉格朗日插值用c語(yǔ)言怎么編程?各位高手幫幫忙啦

#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("請(qǐng)輸入你要輸入點(diǎn)的個(gè)數(shù),,1=n=%d:\n",N);

printf("n=");

scanf("%d",n);

printf("\n");

printf("\n請(qǐng)輸入對(duì)應(yīng)的點(diǎn)數(shù)\n");

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

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

printf("\n");

printf("輸入插值點(diǎn)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);

}


當(dāng)前名稱(chēng):c語(yǔ)言插值函數(shù)lag12 c語(yǔ)言插值函數(shù)庫(kù)
文章來(lái)源:http://fisionsoft.com.cn/article/docsjsi.html