预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《数值计算》实验报告 实验名称拉格朗日插值方法的程序设计 姓名 学号 成绩实验报告内容要求: 实验二:编写拉格朗日插值法程序。并用该程序计算下表数据(在物理实验中,有一只对温度敏感的电阻,测得一组温度和电阻的数据)对应的插值函数的表达式及时的电阻。 20.532.751.073.095.77658268739421032 实验目的: 熟悉拉格朗日插值方法的程序设计;学会拉格朗日插值方法求函数值的近似值,以解决其他科学实验的计算问题。 实验原理: fz=(g-t[0])···(g-t[i-1])(g-t[i+1])···(g-t[n-1]) fm=(t[i]-t[0])···(t[i]-t[i-1])(t[i]-t[i+1])···(t[i]-t[n-1]) L[i]=fz/fm rc[n-1]=r[0]*L[0]+···r[i]*L[i]+···r[n-1]*L[n-1] 输入温度t的个数为n和温度为60时,输出温度为60时的电阻rc[n-1]。 实验环境 VisualC++6.0 实验过程(编写的程序) #include<iostream> usingnamespacestd; classA{ public: voidshuru(intn,floatg){ inti,j,m; floatt[5]; intr[5]; cout<<"请输入温度t的值:"<<endl; for(i=0;i<n;i++) { cout<<"t["<<i<<"]="; cin>>t[i]; } cout<<"请输入电阻R的值:"<<endl; for(i=0;i<n;i++) { cout<<"R["<<i<<"]="; cin>>r[i]; } floatL[5],fz[5],fm[5]; intrc[5]; fz[0]=1; fm[0]=1; for(i=0;i<n;i++) { intf=0; m=0; for(j=0;j<n-1;j++) { if(i==j) { if(f==0) { if(f==i) { f++; } fz[m]=(g-t[f]); fm[m]=(t[i]-t[f]); } else { if(f==i) { f++; } fz[m]=fz[m-1]*(g-t[f]); fm[m]=fm[m-1]*(t[i]-t[f]); } } else { if(f==0) { fz[m]=(g-t[f]); fm[m]=(t[i]-t[f]); } else { if(f==i) { f++; } fz[m]=fz[m-1]*(g-t[f]); fm[m]=fm[m-1]*(t[i]-t[f]); } } m++; f++; } L[i]=fz[j-1]/fm[j-1]; if(i==0) rc[i]=(int)(r[i]*L[i]); else rc[i]=rc[i-1]+(int)(r[i]*L[i]); } cout<<"温度t="<<g<<"所对应的电阻R的值:"<<rc[n-1]<<endl; } }; intmain() { Aob; intn; floatg; cout<<"请输入节点数的总个数:"; cin>>n; cout<<"请输入需要计算的温度:"; cin>>g; ob.shuru(n,g); return0; } 实验结果及分析 实验反思: 虽然自己学的软件工程专业,但是自己几乎不怎么编写程序,编写这个程序时,还有点混乱,在写程序中,因为粗心打错符号,大小写写错,重复符号,导致程序出错,经过细心观察,检查出错误,完成程序。