最小二乘拟合法实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值计算方法》实验报告
专业:姓名:学号:班级:成绩:1.实验名称
实验5 最小二乘拟合法
2.实验题目
在某化学反应里,测得某物质的浓度y(单位:%)随时间t
(单位:min)的变化数据如表5—7所列。
理论上已知y与t间的关系为
b
t
,
y/
ae
其中a>0和b<0为待定系数。上式两端取对数可得ln y=ln
a+b/t.做变量替换
z=ln y,x=1/t,并记A=ln a,B=b,则有
z=A+Bx.
根据所测数据,利用最小二乘直线拟合法先确定系数A和B,
进而给出y与t间的关系。
3.实验目的
熟练使用最小二乘拟合法4.基础理论
最小二乘拟合法
5.实验环境
Microsoft Visual C++ 6.实验过程
7.结果分析
本次试验令我更加熟悉最小二乘拟法;
8.附录:程序清单
#include<>
#include<>
void main(){
int i=0;
double z[16],x[16],D,a,b;
double t[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
double y[16]={,,,,,,,,,,,,,,,};
double sum_x=0,sum_x2=0,sum_y=0,sum_xy=0;
for(i=0;i<16;i++){
x[i]=1/t[i];
z[i]=log(y[i]);
}
for(i=0;i<16;i++){
sum_x=sum_x+x[i];
sum_x2=sum_x2+x[i]*x[i];
sum_y=sum_y+z[i];
sum_xy=sum_xy+x[i]*z[i];
}
D=sum_x2*16-sum_x*sum_x;
a=(16*sum_xy-sum_x*sum_y)/D;
b=(sum_x2*sum_y-sum_x*sum_xy)/D;
printf("A=%,B=%\n\n",a,b);
printf("y=e^%*e^(%t)",a,b);
}